Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с файлами


Страницы:   1 2

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]

И в чём проблема?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо