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

Вниз

Подскажите пожалуста процедуру   Найти похожие ветки 

 
ceval ©   (2005-03-06 13:02) [0]

Подскажите пожалуста процедуру или код поиска строки и ее удаления в текстовом файле


 
Palladin ©   (2005-03-06 13:11) [1]

Procedure RemoveString(Const p_strFileName,p_strWhat:String);
Var
F,T:Text;
S:String;
Begin
AssignFile(F,p_strFileName);Reset(F);
AssignFile(T,"temp"); Rewrite(T);
While Not Eof(F) Do
 Begin
  ReadLn(F,S);
  If S<>p_strWhat Then WriteLn(T,S);
 End;
CloseFile(F);
CloseFile(T);
DeleteFile(p_strFileName);
CopyFile("temp",p_strFileName);
DeleteFile("temp");
End;


 
ferr ©   (2005-03-06 13:11) [2]

pos и кампания


 
Anatoly Podgoretsky ©   (2005-03-06 13:59) [3]

Переписывать весь файл, другого варианта нет.


 
MU ©   (2005-03-06 14:22) [4]

если файл не очень большой
var SL : TStringList;
   i : Integer;
   ....
   SL.LoadFromFile("MyFile.txt");
   i  := SL.IndexOf(MyString);
   while i >= 0 do  
   begin
     SL.Delete(i);
     i := SL.IndexOf(MyString);
   end;
   SL.SaveToFile("MyFile.txt");


 
ceval ©   (2005-03-09 15:03) [5]

Procedure RemoveString(Const p_strFileName,p_strWhat:String);
Var
F,T:Text;
S:String;
Begin
AssignFile(F,p_strFileName);Reset(F);
AssignFile(T,"temp"); Rewrite(T);
While Not Eof(F) Do
Begin
 ReadLn(F,S);
 If S<>p_strWhat Then WriteLn(T,S);
End;
CloseFile(F);
CloseFile(T);
DeleteFile(p_strFileName);
CopyFile("temp",p_strFileName);
DeleteFile("temp");
End;
В этой страке выдает ошибку
[Error] Unit1.pas(102): Incompatible types: "String" and "PAnsiChar"
Почему ??


 
MU ©   (2005-03-09 15:09) [6]

CopyFile("temp", PAnsiChar(p_strFileName), false);


 
ceval ©   (2005-03-09 15:09) [7]

Мне подсказали процедуру,а как переделать,что бы удаляло всю строку,где есть искомая позиция.
Сейчас благодаря этой процедуре удаляется только в строке искомая позиции ,а не вся строка

procedure ReplaceInFile(const FileName, DelStr: string);
var MyText: TStringList;
   Position: integer;
   Str: string;
begin
 MyText := TStringList.Create;
 try
   MyText.LoadFromFile(FileName);
   Str := MyText.Text;
   repeat
     Position := pos(DelStr, Str);
     if Position > 0 then Delete(Str, Position, Length(DelStr));
   until Position = 0;
   MyText.Text := Str;
   MyText.SaveToFile(FileName);
 except
   on EFOpenError do ShowMessage("Не удалось открыть файл " + FileName);
   on EFCreateError do ShowMessage("Не удалось создать файл " + FileName);
 end;
 MyText.Free;
end;


 
ceval ©   (2005-03-09 16:52) [8]

Если не сложно то можно пример использывания Procedure RemoveString [1
]


 
MU ©   (2005-03-09 16:59) [9]

procedure ReplaceInFile(const FileName, DelStr: string);
var MyText: TStringList;
  Position: integer;
  Str: string;
  i : Integer;
begin
MyText := TStringList.Create;
try
  MyText.LoadFromFile(FileName);
  for i := MyText.Count - 1 downto 0 do
    if pos(DelStr, MyText.Strings[i]) > 0 then
      MyText.Delete(i);
  MyText.SaveToFile(FileName);
except
  on EFOpenError do ShowMessage("Не удалось открыть файл " + FileName);
  on EFCreateError do ShowMessage("Не удалось создать файл " + FileName);
end;
MyText.Free;
end;


 
Игорь Шевченко ©   (2005-03-09 17:05) [10]

MU ©   (09.03.05 16:59) [9]

Особенно хорошо эта процедура будет работать с большими файлами.


 
ceval ©   (2005-03-09 17:13) [11]

БОЛЬШОЕ СПАСИБО все ОСОБЕННО MU !!
Все хорошо работает


 
MU ©   (2005-03-09 17:17) [12]

Игорь Шевченко ©   (09.03.05 17:05) [10]
 файл был небольшой :))))


 
Fay ©   (2005-03-09 18:57) [13]

При удалении данных временный файл не нужен.



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

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

Наверх




Память: 0.49 MB
Время: 0.047 c
1-1110366264
Dyusha
2005-03-09 14:04
2005.03.20
Одна и та же процедура каждые 5 минут


14-1109416402
boriskb
2005-02-26 14:13
2005.03.20
Вот она - настоящая литература!


14-1109669964
DelphiN!
2005-03-01 12:39
2005.03.20
Навороченый компонент для потдержки плагинов в проекте


14-1109851963
DiamondShark
2005-03-03 15:12
2005.03.20
Беглый взгляд на первую страницу.


14-1109682549
SergP
2005-03-01 16:09
2005.03.20
Автоматизация MSOffice. Памагите!!!