Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.016 c
1-95745
Сашечка
2002-08-18 23:47
2002.08.29
Графы - курсач


3-95674
zx
2002-08-08 12:20
2002.08.29
MDAC


1-95877
Dinara
2002-08-18 13:24
2002.08.29
Создать Word-документ с таблицей - куда копать?


1-95837
Akim2
2002-08-16 23:19
2002.08.29
Подправить ComCtrls


3-95644
Vladislav
2002-08-07 17:20
2002.08.29
Защита.