46 |
|
implementation |
47 |
|
|
48 |
|
uses |
49 |
< |
SysUtils, Data, Functions, ABSDecUtil, DB, DatLinks; |
49 |
> |
SysUtils, Data, Functions, ABSDecUtil, DB, DatLinks, StrUtils; |
50 |
|
|
51 |
|
|
52 |
|
(* |
213 |
|
|
214 |
|
|
215 |
|
|
216 |
+ |
function CompareItems(List: TStringList; I1, I2: Integer): Integer; |
217 |
+ |
var |
218 |
+ |
fin: Boolean; |
219 |
+ |
pos: Integer; |
220 |
+ |
s1, s2: String; |
221 |
+ |
begin |
222 |
+ |
fin := False; |
223 |
+ |
s1 := MidStr(List[I1], 1, PosEx(';', List[I1], 6) - 1); |
224 |
+ |
s2 := MidStr(List[I2], 1, PosEx(';', List[I2], 6) - 1); |
225 |
+ |
pos := 1; |
226 |
+ |
Result := 0; |
227 |
+ |
repeat |
228 |
+ |
if Ord(s1[pos]) < Ord(s2[pos]) then |
229 |
+ |
begin |
230 |
+ |
Result := -1; |
231 |
+ |
fin := True; |
232 |
+ |
end |
233 |
+ |
else if Ord(s1[pos]) > Ord(s2[pos]) then |
234 |
+ |
begin |
235 |
+ |
Result := 1; |
236 |
+ |
fin := True; |
237 |
+ |
end; |
238 |
+ |
Inc(pos); |
239 |
+ |
until fin or (pos > Length(s1)) or (pos > Length(s2)); |
240 |
+ |
|
241 |
+ |
if not fin then |
242 |
+ |
begin |
243 |
+ |
if pos > Length(s1) then |
244 |
+ |
Result := -1 |
245 |
+ |
else |
246 |
+ |
Result := 1; |
247 |
+ |
end; |
248 |
+ |
end; |
249 |
|
|
250 |
|
function TAccess_OUP_ADB.GetFilesList(ext: String; pattern: String; |
251 |
|
NoEmptyFiles: Boolean; SortType: TSortType): TStrings; |
286 |
|
|
287 |
|
begin |
288 |
|
list := TStringList.Create; |
289 |
< |
list.CaseSensitive := True; |
290 |
< |
list.Sorted := True; |
289 |
> |
if SortType in [ST_ExtNameAsc, ST_ExtNameDesc] then |
290 |
> |
list.Sorted := False |
291 |
> |
else |
292 |
> |
list.Sorted := True; |
293 |
|
for i := 0 to GetFileCount - 1 do |
294 |
|
begin |
295 |
|
if ((Length(ext) = 0) or (Pos(Fdat_files[i].Extension, ext) > 0)) and |
311 |
|
end; |
312 |
|
end; |
313 |
|
end; |
314 |
+ |
if SortType in [ST_ExtNameAsc, ST_ExtNameDesc] then |
315 |
+ |
list.CustomSort(CompareItems); |
316 |
|
if not Assigned(Result) then |
317 |
|
Result := TStringList.Create; |
318 |
|
if list.Count > 0 then |