CODE:string PathToFile = "C:\test.txt"; // путь к файлу
string array[99999];
int result[99999][3];
string tmp[3];
if(fopen(PathToFile, "r")) // открыть файл
{
int count = freadlineall(#array[0], 99999); // прочитать по строкам
fclose(); // закрыть файл
messagebox("Всего строк прочитано: "+format(count));
if(count>0)
{
// записать числа в двухмерный массив
for(int i=0; i<count; i++)
{
if(regexsearch(3, #tmp[0], array[i], "\d+")==3)
{
result[i][0] = formatsn(tmp[0]);
result[i][1] = formatsn(tmp[1]);
result[i][2] = formatsn(tmp[2]);
}
else messagebox("В строке нет трёх чисел");
}
sort_array(#result[0][0], count, sizearray(result[])); // сортировка
///////// вывод массива в textout (можно убрать)
int textoutY=100;
textbkcolor(16777215, 255);
for (int n=0; n<count; n++)
{
textout(n, 500, textoutY, format(result[n][0])+" "+format(result[n][1])+" "+format(result[n][2]), 1);
textoutY=textoutY+20;
}
/////////////
messagebox(format(result[0][0])+" "+format(result[0][1])+" "+format(result[0][2]));
messagebox(format(result[1][0])+" "+format(result[1][1])+" "+format(result[1][2]));
messagebox(format(result[2][0])+" "+format(result[2][1])+" "+format(result[2][2]));
}
}
else messagebox("Файл не открылся");
function sort_array(int #m, int row, int column)
{
int min, imin, z;
for(int i=0; i<row-1; i++)
{
min=m[i][0]; imin=i;
for(int j=i+1; j<row; j++)
{
if(m[j][0] < min){min=m[j][0];imin=j;}
else
{
if(m[j][0] == min)
{
for(int k=1; k<column; k++){if(m[j][k] != m[imin][k])break;}
if(m[j][k] < m[imin][k]){min=m[j][0];imin=j;}
}
}
}
for(int l=0; l<column; l++){z=m[i][l]; m[i][l]=m[imin][l]; m[imin][l]=z;}
}
} |