Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена совпадений во всех текстовых файлах, в выбранной директории 
:(
    Опции темы
dize
Дата 21.10.2010, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



Возник вопрос по работе с файлами. Хоть и довольно много информации в интернете, решение данной проблемы я так и не нашел, поэтому надеюсь на Вашу помощь.
Суть в том, что нужно произвести замену совпадений во всех текстовых файлах в выбранной директории.

Замена осуществляется следующим образом
Код

procedure TForm1.Replace(FileName: string; TextToFind: string; ReplaceWith: string);
var
FileContent: string;
Ix: Integer;
TTF_Length, RW_Length: Integer;
F: System.Text;
Symbol: Char;
begin
TTF_Length:= Length(TextToFind);
RW_Length:= Length(ReplaceWith);
AssignFile(F, FileName);
Reset(F);
FileContent:= '';
while not EOF(F) do
begin
Read(F, Symbol);
FileContent:= FileContent + Symbol;
end;
CloseFile(F);
Ix:= 1;
repeat
if Copy(FileContent, Ix, TTF_Length) = TextToFind then
begin
Delete(FileContent, Ix, TTF_Length);
Insert(ReplaceWith, FileContent, Ix);
Ix:= Ix + RW_Length;
end
else
Inc(Ix);
until Ix > Length(FileContent) - TTF_Length + 1;
ReWrite(F);
for Ix:= 1 to Length(FileContent) do
Write(F, FileContent[Ix]);
CloseFile(F);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
te,re:string;
begin
if Checkbox1.Checked=true then
begin
te:='SPBFUT589000,,';
re:='SPBFUT589000,SPBFUT00TP7/,';
end;
Replace('forts.txt',te,re);
end;

--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
superVad
Дата 21.10.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Чего то не уловил - совпадения чего надо искать и на что заменять?

Или тебе просто надо перебрать все файлы в директории?

Это сообщение отредактировал(а) superVad - 21.10.2010, 14:09
PM MAIL   Вверх
dize
Дата 21.10.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



Цитата(superVad @  21.10.2010,  14:07 Найти цитируемый пост)
Чего то не уловил - совпадения чего надо искать и на что заменять?Или тебе просто надо перебрать все файлы в директории?

Что в файле искать(te:='SPBFUT589000,,';) и на что заменять(re:='SPBFUT589000,SPBFUT00TP7/,';), указано в примере. Проблема в том, что нужно перебрать все текстовые файлы в выбранной пользователем директории и произвести последовательную замену этих совпадений внутри каждого файла, по заданному условию.

--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
Данкинг
Дата 21.10.2010, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(dize @  21.10.2010,  15:30 Найти цитируемый пост)
Проблема в том, что нужно перебрать все текстовые файлы в выбранной пользователем директории 

Ищи на форуме, неоднократно было, и в ДРКБ тоже. Затем, видимо, грузишь файл в TStrings, меняешь что нужно, и заново сохраняешь в файл под тем же именем.

Это сообщение отредактировал(а) Данкинг - 21.10.2010, 16:12


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.