Как удалить строки из файла?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Вася
Сообщения: 3
Зарегистрирован: 29 май 2005, 21:36

Здравствуйте!
Подскажите, что мне в Дельфовом проекте прописать, чтобы в определенных файлах удалялось первые две верхние строки.
Пример
33333333 - нада убить
3333333 - тоже
вввввввв
вввввввв
вввввввв

и оставшееся поднять вверх.
Заранее спасибо.
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Код: Выделить всё

procedure DelFromText;
var S: TStringList;
begin
  S := TStringList.Create;
  try
    S.LoadFromFile('Filename.ext');
    S.Delete(0);
    S.Delete(0);
    S.SaveToFile('FileName.ext');
  finally
    S.Free;
  end;
end;
С уважением, Lost Angel...
Вася
Сообщения: 3
Зарегистрирован: 29 май 2005, 21:36

Спасибо большое!
Попробую :-)
Вася
Сообщения: 3
Зарегистрирован: 29 май 2005, 21:36

Работает! Я в программировании начинающий, поэтому еще вопросик:
Допустим у меня очень много таких файлов из которых надо вырезать две первые строки. Не подскажите ли уважаемые, что прописать дальше, что бы мне каждый раз не менять имя файла в LoadFromFile('Filename.ext'); и в SaveToFile('FileName.ext')?
Так сказать автоматизировать процесс. Например. В меню выбрал нужный мне файл, нажал на кнопку, вырезалось , сохранилось. Беру другой и т.д.??
Заранее благодарен!
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Кладешь на форму OpenDialog и, например, кнопку.
В обработчике нажатия кнопки пишешь:

Код: Выделить всё

Procedure Button1Click(Sender: TObject);
var S: TStringList; 
begin 
  if OpenDialog1.Execute then
  begin
    S := TStringList.Create; 
    try 
      S.LoadFromFile(OpenDialog1.FileName); 
      S.Delete(0); S.Delete(0); 
      S.SaveToFile(OpenDialog1.FileName); 
    finally 
      S.Free; 
    end; 
  end;
end; 
Нужно бы ещё, но идее, проверку организовать "Есть ли в файле эти строки, которые нужно удалить"
что-то вроде:

Код: Выделить всё

...
  if S.Count >= 2 then begin Delete(0); Delete(0) end;
С уважением, Lost Angel...
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

Кидаешь на форму OpenDialog1.FileName и потом

procedure DelFromText;
var S: TStringList;
begin
S := TStringList.Create;
try
if opendialog1.execute then begin
S.LoadFromFile(OpenDialog1.FileName);
S.Delete(0);
S.Delete(0);
S.SaveToFile(OpenDialog1.FileName);
end;
finally
S.Free;
end;
end;
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

:)
С уважением, Lost Angel...
Ответить