![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чтение файла от конца к началу [D7, XP]
Bullfrog © (2007-06-12 19:40:00)Привет всем!
Меня интересует чтение файла от конца к началу, при том построково.
ситуация такова: читаю файл, например, по 10 строк и мне нужно изменить информацию этих десяти строк, как мне вернутся обратно, что-бы перезаписать этот участок?
homm (2007-06-13 01:39:00) [1]> что за компонента такая?
Чукча, однака.
Это класс. Объявляеш, создаеш, работаешь, уничтожаешь.
Bullfrog (2007-06-13 01:38:00) [2]
> TStringList.LoadFromFile
> TStringList.SaveToFile
>
что за компонента такая? где ее взять
homm (2007-06-13 01:38:00) [3]> ничего не понял, как посредством этого можно удалить кусок файла?
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 последних строк.
Bullfrog (2007-06-13 01:30:00) [4]ничего не понял, как посредством этого можно удалить кусок файла?
может можно с помощью другого файла?
допустим примерно так:
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 - начало обрабатываемой части.
все бы хорошо, но опять неувязочка, при запуске такой фигни программу приходится выключать через диспетчер задач... %(((
помогите, пожалуйста
Плохиш (2007-06-13 00:12:00) [5]TStringList.LoadFromFile
TStringList.SaveToFile
Bullfrog (2007-06-13 00:08:00) [6]
> Считываем весь файл,
> обрабатываем считанное (в конце, в начале, в середине :)),
>
> записываем обработанное взад в файл (перезаписываем файл).
> ..
>
как считать весь файл?
как перезаписать файл?
Bullfrog (2007-06-12 23:34:00) [7]
> Delphi syntax:
>
> procedure Seek(var F; N: Longint);
> вроде все же верно написано?
>
блин! так она ратает только с двоичными файлами?
тогда какая процедура нужна мне?
Bullfrog (2007-06-12 22:55:00) [8]Delphi syntax:
procedure Seek(var F; N: Longint);
вроде все же верно написано?
Bullfrog (2007-06-12 22:36:00) [9]даааа, тут я вообще попух....
Seek(F, 0); - на такую вещь выдает ошибку:
Incompatible types, что это такое?
В других местах этой же проги применял уже скока раз, там все работает, а здесь...
Johnmen (2007-06-12 20:18:00) [10]Считываем весьфайл,
обрабатываем считанное (в конце, в начале, в середине :)),
записываем обработанное взад в файл (перезаписываем файл)...
Bullfrog (2007-06-12 20:12:00) [11]
> Ты писатель, не читатель?
не могу понять к чему вопрос, наверное, ты решил, что я [1] не прочитал? Если так, то ошибаешься. Для того что бы записать исправленное в конец файла, нужно удалить из файла старое еще не исправленное и тут соответственно вылазит [2]
Или я че то мудрю?
Johnmen (2007-06-12 20:04:00) [12]Ты писатель, не читатель?
Bullfrog (2007-06-12 19:58:00) [13]не могу придумать как обработать первую строку этого участка, так как при поиске участка(который нужно отредактировать) все равно будет использоваться либо реад, либо реадлн и курсор будет находится уже внутри обрабатываемого участка, а нужно что-бы он был перед ним.
Johnmen (2007-06-12 19:48:00) [14]Считываем весь файл, обрабатываем считанное, записываем обработанное взад в файл...