Текущий архив: 2002.08.29;
Скачать: CL | DM;
ВнизЧтение из текстового файла Найти похожие ветки
← →
Sniffer (2002-08-19 00:02) [0]Уважаемые мастера, помогите плиз. Надо считать, скажем сотую строку из текстового файла. Можно ли это сделать не так :
for i := 1 to 100
ReadLn(MyTextFile, S)
а как-то иначе? Ведь не охота считывать 99 строк, для того, чтобы считать сотую. Если чего не так сказал, сильно не ругайте :).
Спасибо.
← →
Ученик (2002-08-19 00:09) [1]TStringList.LoadFromFile
← →
Sniffer (2002-08-19 00:21) [2]Гм...Спасибо и на этом. Но всё же, мне всё-таки интересно узнать,можно ли это сделать через AssignFile(MyTextFile, "MyTextFile.txt");
← →
Ученик (2002-08-19 00:25) [3]>Sniffer © (19.08.02 00:21)
Позиционироваться к определенной строке текстового файла нельзя
← →
/\/\AXIM (2002-08-19 01:45) [4]Без ReadLn(F)
var
F : file;
A : array of byte;
I,k,g : cardinal;
S : PChar;
label 01;
begin
Write("String num >>> ");
ReadLn(g);
AssignFile(F,"txt.txt");
Reset(F,1);
SetLength(A,FileSize(F));
BlockRead(F,A[Low(A)],Length(A));
k:=1;
for I:=0 to High(A) do
begin
If A[I] = 13 then Inc(k);
If k = g then
for k:=I+1 to High(A) do
If A[k] = 13 then goto 01;
end;
01:
A[k]:=0;
Inc(I);
Inc(I);
S:=@A[I];
WriteLn(S);
ReadLn;
end.
← →
RV (2002-08-19 09:43) [5]объявить его как офСтринг?
← →
Anatoly Podgoretsky (2002-08-19 10:08) [6]Sniffer © (19.08.02 00:02)
Простыми методами нельзя.
Доступ к строками только последовательный.
Вариант есть только единственный, провести индексацию файла и в дельнейшем с ним работать не как с текстовый, использую позиционирование и считывая ихвестное количество символов.
Другие варианты только чтение всех строк до нужной, не важно с помощью ReadLn или загрузков в список, на самом деле это не так и медленно файл размером в 120 мегабайт загружается примерно 6 секунд, если конечно у компьютера есть достаточные ресурсы или черт знае сколько если иъ нет.
Вариант c ReadLn можно сделать немного более оптимальным
for i := 1 to N-1 do
begin
ReadLn(MyTextFile)
end;
ReadLn(MyTextFile,S)
← →
kull (2002-08-19 11:37) [7]Есть вариант, если это возможно, если сделать все строки фиксированной длинны.
Страницы: 1 вся ветка
Текущий архив: 2002.08.29;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c