![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с файлами
unknowing © (2006-02-02 08:20:00)Доброго времени суток! Вопрос такой: есть файл (текстовый) который содержит символы '-'. Необходимо все '-' заменить на какой-нибудь другой(например, на '!').
unknowing (2006-02-02 08:58:00) [21]
> ZeroDivide © (02.02.06 08:55) [7]
См.
> unknowing © (02.02.06 08:53) [5]
Не работает с большими файлами или... (Стою на асфальте в лыжи обутый, то ли лыжи не едут, то ли я еб..тый:)
КиТаЯц (2006-02-02 08:57:00) [22]
> unknowing © (02.02.06 08:51) [4]
> ...
> .. Файл очень большого размера.
Считывай - меняй - сохраняй построчно.
unknowing (2006-02-02 08:56:00) [23]
> Код не самый быстрый .............
> :)
Спасибо! Но,
> Код не самый быстрый .............
, критично.
unknowing (2006-02-02 08:56:00) [24]
> Код не самый быстрый .............
> :)
Спасибо! Но,
ZeroDivide (2006-02-02 08:55:00) [25]var
//TStringList - самый подходящий класс для этих целей
SL: TStringList;
begin
// Создаем экземпляр этого класса
SL := TStringList.Create;
// Заружаем файл в SL
SL.LoadFromFile('YourFileName.txt');
//Меняем символ в тексте
SL.Text := AnsiReplaceStr(SL.Text, '-', '!');
//Сохраняем файл
SL.SaveToFile('YourFileName.txt');
// Убиваем объект
SL.Free;
end;
Loginov Dmitry (2006-02-02 08:53:00) [26]Вот самый простой способ:
procedure TForm1.Button1Click(Sender: TObject);
var
F: File of Byte;
C, Simbol: Byte;
begin
Simbol := Ord('!');
AssignFile(F, 's.s');
Reset(F);
while not Eof(F) do
begin
Read(F, C);
if C = Ord('+') then
begin
Seek(F, FilePos(F) - 1);
Write(F, Simbol);
end;
end;
CloseFile(F);
end;
Код не самый быстрый .............
:)
unknowing (2006-02-02 08:53:00) [27]
> КаПиБаРа © (02.02.06 08:50) [3]
Вот именно про этот класс я и использовал. См.
> unknowing © (02.02.06 08:51) [4]
unknowing (2006-02-02 08:51:00) [28]
> КиТаЯц © (02.02.06 08:47) [2]
Спасибо. Но я пробывал через стандартную процедуру ReplaceString, в качестве параметра которой передается строка и все зависло... Файл очень большого размера.
КаПиБаРа (2006-02-02 08:50:00) [29]F1 - TStringList, TStringList.LoadFromFile, TStringList.SaveToFile, Pos, Pos Example
КиТаЯц (2006-02-02 08:47:00) [30]
function StringReplaceAll (Text, Chto, Chem: string): string; //где менять, что менять, чем менять
var IsPos : integer;
begin
while pos(Chto, Text) > 0 do begin
IsPos := pos(Chto, text);
delete (Text, IsPos, length(Chto));
insert (Chem, Text, IsPos);
end;
result := Text;
end;
EvS (2006-02-02 08:38:00) [31]И в чём проблема?