Главная страница
    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.034 c
14-1109256058
}|{yk
2005-02-24 17:40
2005.03.20
Локализация 2003.


1-1109943377
100a
2005-03-04 16:36
2005.03.20
Стандартные функции удаления файлов


3-1108626722
sapsi
2005-02-17 10:52
2005.03.20
Программно добавить поля в таблицу


8-1101930249
TRyaSS
2004-12-01 22:44
2005.03.20
Где можно скачать FastDib??


14-1109575507
vajo
2005-02-28 10:25
2005.03.20
Закон. Сотовая связь





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский