Answer the question
In order to leave comments, you need to log in
Sorting an array - where is the mistake?
There is a string array of arrays. 2D. Number of elements 37.
Number of entries - any. B_records_count = number of records.
The task is to sort the array in ascending order by the 37th element.
I use the bubble method.
{
Комментарии
Массив и его данные - пример.
B_TABLE:array of array [1..37] of string;
Массив начинается с первой строки и первого элемента.
Нулевых нет - там пусто и мы не работаем с ними.
B_TABLE[1,1]:='текст';
B_TABLE[1,2]:='текст2';
...
B_TABLE[1,36]:='текст36';
B_TABLE[1,37]:='2'; //Это число в виде текста по которому сортируем
B_TABLE[2,1]:='текст';
B_TABLE[2,1]:='текст2';
...
B_TABLE[2,36]:='текст36';
B_TABLE[2,37]:='1'; //Это число в виде текста по которому сортируем
и так далее
При сортировке запись 2 и все её элементы должны стать записью 1.
А запись 1 - записью 2. Проще говоря поменяться местами.
}
//Сортировка
//Начиная с первой "строки" массива (нулевой у нас нет - пустой, данные идут с 1 строки)
for i:=1 to B_records_count do
begin
for j:=1 to B_records_count-1 do
begin
//Меняем представление данных из строки в число
if strtoint(B_TABLE[j,37])>strtoint(B_TABLE[j+1,37]) then
begin
//Для всех элементов производим замену. Их у нас 37. С первого по 37 т.к. нулевого нет - пустой.
for k:=1 to 37 do
begin
sort_string:=B_TABLE[j,k]; //Поместили значение элемента в переменную для сортировки
B_TABLE[j,k]:=B_TABLE[j+1,k]; //Поменяли значения элементов
B_TABLE[j+1,k]:=sort_string;
end;
end;
end;
end;
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question