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

Вниз

Как удалить из файла N символов начиная с I?   Найти похожие ветки 

 
diww   (2003-09-30 12:54) [0]

Как удалить из тесктового файла N символов начиная с символа I?


 
Brahman ©   (2003-09-30 13:02) [1]

Загружать построчно, считать символы и контролировать на N
Если I в этой же строке - удалить от и до
Иначе удалить до конца строки
и искать I не записывая строки


 
PVOzerski ©   (2003-09-30 13:03) [2]

Закачать всё в строку (напр., через BlockRead), потом - Delete(s,I,N), потом - rewrite и blockwrite.


 
Izyum ©   (2003-09-30 13:07) [3]

1. Открывам файл для редактирования TFileStream.Create
2. Копируем во временный (второй) поток все от 0 до I-1
3. Дописываем во временный поток все, начиная с N+I-1 до конца
4. Удаляем все из первого потока
5. коприуем в основной из временного
6. сохраняем все на диск

Может не очень красиво, но первое что пришло в голову:)


 
Song ©   (2003-09-30 13:17) [4]

Если файл небольшой, загрузи в TStrings, потом удали циклом


 
Zergling ©   (2003-09-30 13:39) [5]

TStringList.Text и Delete вполне хватит.


 
VAleksey ©   (2003-09-30 14:55) [6]

Перекачать в другой файл до символа I.
Удалить исходный.
Переименовать временный.
:-))


 
Verg ©   (2003-09-30 15:53) [7]

var
Buffer : pchar; // фартук
Rp, // откель
Wp, // куды
readed : integer; // скока
Fs : file; // файло
.......................
Reset(Fs,1);
..........................

GetMem(Buffer, <да, там, сколь не жалко>);
try
Rp:= I+N;
Wp:= I;
repeat
Seek(Fs, Rp);
BlockRead(Fs,Buffer^,BufSize, Readed);
Rp:=FilePos(Fs);
if Readed>0 then
begin
Seek(Fs, Wp);
BlockWrite(Fs, Buffer^, Readed);
Wp:=FilePos(Fs);
end;
until Readed<=0;
Seek(Fs, Wp);
Truncate(Fs);
finally
FreeMem(Buffer);
end;
end;
finally
Close(Fs);
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
1-27567
Vasily_Ts
2003-09-26 20:45
2003.10.09
Проблема с архивированием каталога из собственной программы


3-27346
Saperxl
2003-09-19 20:00
2003.10.09
TIBUpdateSQL.ModifySQL


8-27609
VLoB
2003-06-05 01:38
2003.10.09
Прозрачность в DirectDraw


3-27404
Вероника
2003-09-18 07:42
2003.10.09
FireBird даёт ошибку. Неделю назад всё было нормально!


14-27665
MBo
2003-09-22 17:03
2003.10.09
Отчет о MS Developers Day в Новосибирске