Rev 3043 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3043 | Rev 3157 | ||
---|---|---|---|
Line 22... | Line 22... | ||
22 | } |
22 | } |
Line 23... | Line 23... | ||
23 | 23 | ||
24 | 24 | ||
25 | void Sort_by_Type(int a, b) // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1 |
- | |
26 | { |
- | |
27 | int jst, ist=a; |
25 | void Sort_by_Type(int a, b) // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1 |
28 | int n; |
26 | { |
29 | unsigned char filename1[256], filename2[256]; |
- | |
30 | unsigned char ext1[256], ext2[256]; |
27 | dword filename1, filename2, ext1, ext2; |
31 | 28 | int n, isn = a; |
|
32 | IF (a >= b) return; |
29 | IF (a >= b) return; |
33 | for (jst = a; jst <= b; jst++) |
- | |
34 | { |
30 | for (j = a; j <= b; j++) |
35 | ext1[0]=ext2[0]=filename1[0]=filename2[0]=NULL; |
31 | { |
- | 32 | filename1 = file_mas[j]*304 + buf+72; |
|
36 | copystr(file_mas[jst]*304 + buf+72, #filename1); |
33 | filename2 = file_mas[b]*304 + buf+72; |
37 | copystr(file_mas[b]*304 + buf+72, #filename2); |
34 | |
38 | n=strlen(#filename1)-1; |
35 | n=strlen(filename1)-1; |
39 | WHILE (filename1[n]<>'.') && (n>0) n--; |
36 | WHILE (n>0) && (ESBYTE[filename1+n]<>'.') n--; |
40 | IF (n) copystr(#filename1+n+1, #ext1); |
37 | IF (n) ext1 = filename1+n+1; else ext1=0; |
41 | n=strlen(#filename2)-1; |
38 | n=strlen(filename2)-1; |
42 | WHILE (filename2[n]<>'.') && (n>0) n--; |
39 | WHILE (n>0) && (ESBYTE[filename2+n]<>'.') n--; |
43 | IF (n) copystr(#filename2+n+1, #ext2); |
40 | IF (n) ext2 = filename2+n+1; else ext2=0; |
44 | 41 | ||
45 | n=strcmp(#ext1, #ext2); |
42 | n=strcmp(ext1, ext2); |
46 | IF (n<0) { file_mas[ist] >< file_mas[jst]; ist++;} |
43 | IF (n<0) { file_mas[isn] >< file_mas[j]; isn++;} |
47 | IF (n==0) && (strcmp(#filename1, #filename2)<=0) { file_mas[ist] >< file_mas[jst]; ist++;} |
44 | IF (n==0) && (strcmp(filename1, filename2)<=0) { file_mas[isn] >< file_mas[j]; isn++;} |
48 | } |
45 | } |
49 | Sort_by_Type(a, ist-2); |
46 | Sort_by_Type(a, isn-2); |