Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.033 c
9-1103563229
Макс
2004-12-20 20:20
2005.03.20
Ландшафт.


14-1109613139
Petr V. Abramov
2005-02-28 20:52
2005.03.20
Ну хоть одной внешней угрозой стало меньше....


1-1109797832
Knight
2005-03-03 00:10
2005.03.20
Качать всем! Читать, а только потом с вопросами в основную... :)


14-1109784182
Гарри Поттер
2005-03-02 20:23
2005.03.20
Газпром + Роснефть = ?


14-1109790550
Jetus
2005-03-02 22:09
2005.03.20
Как работает Morphine?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский