Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
Внизчтение файла от конца к началу Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c