необходимо отсортировать данные, хранящиеся в типизированном файле по алфавиту
[syntax='delphi']
function Scan: LongInt;
var i: integer;
T1: TTrans;
begin
i:=0;
Assign(f, FileName);
Reset(f);
While not EOF(f) do
begin
Read(f, T1);
inc(i);
end;
Scan:= i;
Close(f);
end;
procedure Sort;
var count, j, n, k, s, i, poscurold, poscurnew, rr: integer;
begin
rr:=Scan;
Assign(f, FileName);
Reset(f);
For j:=1 to rr do
For k:=1 to rr-1 do
begin
Read(f, T1);
PosCurOld:= FilePos(f);
T2:=T1;
Read(f, T2);
PosCurNew:= FilePos(f);
if Length(T1.Eng)>length(T2.Eng) then count:=Length(T1.Eng) else
count:=Length(T2.Eng);
for i:=1 to Count do
begin
if T1.Eng<T2.eng then
begin
Seek(f, PosCurOld);
Write(f, T2);
Write(f, T1);
end;
end;
Seek(f, PosCurNew);
end;
Close(f);
end;
[/syntax]
я так понял, что надо посчитать кол-во записей в файле, затем читать их по 2 шт., сравнивать и перезаписывать в файл.
Сортировка данных в файле
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
писать надо в другой файл

А что делает процедура scan? Находит количество элементов в файле? Не проще ли размер файла разделить на sizeof(TTrans)?
Ну, и как правильно сказал Игорь Акопян, выводить надо в другой файл. А потом, если препод требует, из него всю инфу выводить в исходный.
Ну, и как правильно сказал Игорь Акопян, выводить надо в другой файл. А потом, если препод требует, из него всю инфу выводить в исходный.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Если записей немного, можно сортировать в памяти.
It's a long way to the top if you wanna rock'n'roll