Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: CL | DM;

Вниз

чтение файла от конца к началу   Найти похожие ветки 

 
Bullfrog   (2007-06-12 19:40) [0]

Привет всем!
Меня интересует чтение файла от конца к началу, при том построково.
ситуация такова: читаю файл, например, по 10 строк и мне нужно изменить информацию этих десяти строк, как мне вернутся обратно, что-бы перезаписать этот участок?


 
Johnmen ©   (2007-06-12 19:48) [1]

Считываем весь файл, обрабатываем считанное, записываем обработанное взад в файл...


 
Bullfrog   (2007-06-12 19:58) [2]

не могу придумать как обработать первую строку этого участка, так как при поиске участка(который нужно отредактировать) все равно будет использоваться либо реад, либо реадлн и курсор будет находится уже внутри обрабатываемого участка, а нужно что-бы он был перед ним.


 
Johnmen ©   (2007-06-12 20:04) [3]

Ты писатель, не читатель?


 
Bullfrog   (2007-06-12 20:12) [4]


> Ты писатель, не читатель?

не могу понять к чему вопрос, наверное, ты решил, что я [1] не прочитал? Если так, то ошибаешься. Для того что бы записать исправленное в конец файла, нужно удалить из файла старое еще не исправленное и тут соответственно вылазит [2]
Или я че то мудрю?


 
Johnmen ©   (2007-06-12 20:18) [5]

Считываем весь файл,
обрабатываем считанное (в конце, в начале, в середине :)),
записываем обработанное взад в файл (перезаписываем файл)...


 
Bullfrog   (2007-06-12 22:36) [6]

даааа, тут я вообще попух....

Seek(F, 0); - на такую вещь выдает ошибку:
Incompatible types, что это такое?
В других местах этой же проги применял уже скока раз, там все работает, а здесь...


 
Bullfrog   (2007-06-12 22:55) [7]

Delphi syntax:

procedure Seek(var F; N: Longint);
вроде все же верно написано?


 
Bullfrog   (2007-06-12 23:34) [8]


> Delphi syntax:
>
> procedure Seek(var F; N: Longint);
> вроде все же верно написано?
>

блин! так она ратает только с двоичными файлами?
тогда какая процедура нужна мне?


 
Bullfrog   (2007-06-13 00:08) [9]


> Считываем весь файл,
> обрабатываем считанное (в конце, в начале, в середине :)),
>
> записываем обработанное взад в файл (перезаписываем файл).
> ..
>

как считать весь файл?
как перезаписать файл?


 
Плохиш ©   (2007-06-13 00:12) [10]

TStringList.LoadFromFile
TStringList.SaveToFile


 
Bullfrog   (2007-06-13 01:30) [11]

ничего не понял, как посредством этого можно удалить кусок файла?
может можно с помощью другого файла?
допустим примерно так:
assignfile(f,"test");
reset(f);
assignfile(ef,"etest");
append(ef);
for i:=0 to str do begin ReadLn(f,buf); WriteLn(ef,buf); end;
while not eof(f) do inc(i);
for k:=str+13 to i do begin ReadLn(f,buf); WriteLn(ef,buf); end;


где str - начало обрабатываемой части.

все бы хорошо, но опять неувязочка, при запуске такой фигни программу приходится выключать через диспетчер задач... %(((

помогите, пожалуйста


 
Bullfrog   (2007-06-13 01:38) [12]


> TStringList.LoadFromFile
> TStringList.SaveToFile
>

что за компонента такая? где ее взять


 
homm ©   (2007-06-13 01:38) [13]

> ничего не понял, как посредством этого можно удалить кусок файла?



var
 SL: TStringList;
begin
...
SL.LoadFromFile;
for i := SL.Count-11 to SL.Count-1 do begin
 SL.Strings[i] := "!!Editet "+SL.Strings[i];
end;
SL.SaveToFile;


Делает то , что написано в сабже. Изменяет 10 последних строк.


 
homm ©   (2007-06-13 01:39) [14]

> что за компонента такая?

Чукча, однака.
Это класс. Объявляеш, создаеш, работаешь, уничтожаешь.



Страницы: 1 вся ветка

Текущий архив: 2007.07.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
15-1181375238
Gydvin
2007-06-09 11:47
2007.07.08
Вопрос


15-1180951393
rolex
2007-06-04 14:03
2007.07.08
ошибка tcp


1-1178710981
yaJohn
2007-05-09 15:43
2007.07.08
передача строк между Delphi и C#


15-1181235837
Interior
2007-06-07 21:03
2007.07.08
Умер ноутбук но винт живой


2-1181824457
XTD
2007-06-14 16:34
2007.07.08
Хочу проиграть трек с помощью MMAudioPlayer1 в новом потоке (TTh)