Subversion Repositories Kolibri OS

Rev

Rev 7422 | Rev 7972 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7422 Rev 7878
1
void Sort_by_Size(int a, b)   // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
1
void Sort_by_Size(int a, b)   // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
2
{                                        
2
{                                        
3
	int j;
3
	int j;
4
	int iss = a;
4
	int iss = a;
5
	if (a >= b) return;
5
	if (a >= b) return;
6
	for (j = a; j <= b; j++)
6
	for (j = a; j <= b; j++)
7
		if (ESDWORD[file_mas[j]*304 + buf+64] <= ESDWORD[file_mas[b]*304 + buf+64])	{ file_mas[iss] >< file_mas[j];   iss++;}
7
		if (ESDWORD[file_mas[j]*304 + buf+64] <= ESDWORD[file_mas[b]*304 + buf+64])	{ file_mas[iss] >< file_mas[j];   iss++;}
8
	Sort_by_Size (a, iss-2);
8
	Sort_by_Size (a, iss-2);
9
	Sort_by_Size (iss, b);
9
	Sort_by_Size (iss, b);
10
}
10
}
11
 
11
 
12
 
12
 
13
void Sort_by_Name(int a, b)   // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
13
void Sort_by_Name(int a, b)   // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
14
{                                        
14
{                                        
15
	int j;
15
	int j;
16
	int isn = a;
16
	int isn = a;
17
	if (a >= b) return;
17
	if (a >= b) return;
18
	for (j = a; j <= b; j++)
18
	for (j = a; j <= b; j++) {
19
		if (strcmp(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[isn] >< file_mas[j];   isn++;}
19
		if (strcmpi(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[isn] >< file_mas[j];   isn++;}
20
	Sort_by_Name(a, isn-2);
20
	}
-
 
21
	Sort_by_Name(a, isn-2);
21
	Sort_by_Name(isn, b);
22
	Sort_by_Name(isn, b);
22
}
23
}
23
 
24
 
24
	
25
	
25
void Sort_by_Type(int a, b)   // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
26
void Sort_by_Type(int a, b)   // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
26
{         
27
{         
27
	int j;      
28
	int j;      
28
	dword filename1, filename2, ext1, ext2;
29
	dword filename1, filename2, ext1, ext2;
29
	int n, isn = a;
30
	int n, isn = a;
30
	if (a >= b) return;
31
	if (a >= b) return;
31
	for (j = a; j <= b; j++)
32
	for (j = a; j <= b; j++)
32
	{
33
	{
33
		filename1 = file_mas[j]*304 + buf+72;
34
		filename1 = file_mas[j]*304 + buf+72;
34
		filename2 = file_mas[b]*304 + buf+72;
35
		filename2 = file_mas[b]*304 + buf+72;
35
 
36
 
36
		n=strlen(filename1)-1;
37
		n=strlen(filename1)-1;
37
		WHILE (n>0) && (ESBYTE[filename1+n]!='.') n--;
38
		WHILE (n>0) && (ESBYTE[filename1+n]!='.') n--;
38
		if (n) ext1 = filename1+n+1; else ext1=0;
39
		if (n) ext1 = filename1+n+1; else ext1=0;
39
		n=strlen(filename2);
40
		n=strlen(filename2);
40
		n--;
41
		n--;
41
		WHILE (n>0) && (ESBYTE[filename2+n]!='.') n--;
42
		WHILE (n>0) && (ESBYTE[filename2+n]!='.') n--;
42
		if (n) ext2 = filename2+n+1; else ext2=0;
43
		if (n) ext2 = filename2+n+1; else ext2=0;
43
 
44
 
44
		n=strcmp(ext1, ext2);
45
		n=strcmp(ext1, ext2);
45
		if (n<0) { file_mas[isn] >< file_mas[j];   isn++;} 
46
		if (n<0) { file_mas[isn] >< file_mas[j];   isn++;} 
46
		if (!n) && (strcmp(filename1, filename2)<=0) { file_mas[isn] >< file_mas[j];   isn++;}
47
		if (!n) && (strcmp(filename1, filename2) <= 0) { file_mas[isn] >< file_mas[j];   isn++;}
47
	}
48
	}
48
	Sort_by_Type(a, isn-2);
49
	Sort_by_Type(a, isn-2);
49
	Sort_by_Type(isn, b);
50
	Sort_by_Type(isn, b);
50
}
51
}
51
52
52
-
 
53
-