Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2011, 06:58   #1
victor5133
Форумчанин
 
Регистрация: 05.10.2010
Сообщений: 107
По умолчанию Удаление файла

Здравствуйте. У меня вот такая проблема:

Мне нужно в файле найти нужную строку и удалить ее.
Я вот так делаю. Сначала кидаю все что в файле в мемо, потом нахожу строку и удаляю ее. Потом удаляю сам файл и создаю новый и заполняю всем тем что в мемо. Но он всегда последнюю строчку только на половину записывает в файл. Как это исправить? Вот код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var f:TextFile;
k,n:integer;
s,d:string;
begin
assignFile(f,'text.txt');
reset(f);
While not Eof(f) do
begin
readln(f,d);
form2.Memo4.Lines.Append(d);
end;
CloseFile(f);
erase(f);
for k:=0 to Form2.Memo4.Lines.Count-1 do
begin
d:=form2.Memo4.Lines[k];
if d=s then Form2.Memo4.Lines[k]:='';
end;
assignFile(f,'text.txt');
rewrite(f);
CloseFile(f);
assignFile(f,'text.txt');
append(f);
for k:=0 to form2.Memo4.Lines.Count-1 do
begin
if form2.Memo4.Lines[k]<>'' then writeln(f,form2.Memo4.Lines[k]);
end;
end.
Спасибо.

У нас принято оформлять код специальным тегом. Кнопка #.
Модератор

Последний раз редактировалось dr.Chas; 06.08.2011 в 18:01.
victor5133 вне форума Ответить с цитированием
Старый 30.07.2011, 07:16   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

используй TStringList + IndexOfString + Delete
и записывай в тот же файл
ZuBy вне форума Ответить с цитированием
Старый 30.07.2011, 07:17   #3
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var 
  SL : TStringList;
begin
  SL := TStringList.Create;
  try
    SL.LoadFromFile('text.txt');
    k := 0;
    while k <= SL.Count-1 do begin
      if SL[k] = '' then
        SL.Delete(k)
      else
        Inc(k);
    end;
    SL.SaveToFile('text.txt');
  finally
    SL.Free;
  end;
end;
Прик вне форума Ответить с цитированием
Старый 30.07.2011, 07:22   #4
victor5133
Форумчанин
 
Регистрация: 05.10.2010
Сообщений: 107
По умолчанию

Все понял) Спасибо.
victor5133 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
УДаление строки из файла методом создания временного файла. dykatob Общие вопросы C/C++ 3 28.05.2011 01:46
Удаление файла gavrylyuk Microsoft Office Excel 9 26.11.2010 09:03
Удаление файла Яр|/||< (^_^) Общие вопросы Delphi 8 18.08.2009 09:05
Удаление из файла Шурик Общие вопросы Delphi 4 30.05.2009 23:08
Удаление файла Македонский Общие вопросы Delphi 5 06.09.2007 11:46