Форум: "Основная";
Текущий архив: 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