Форум: "Основная";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизФайлы Найти похожие ветки
← →
Александр (2002-07-28 18:37) [0]Здравствуйте. Я столкнулся со следующей задачей. Мне надо найти все файлы по маске в определенном каталоге (включая подкаталоги) и найти (если есть) и заменить например символ "р" на "х".
Я нашел все файлы по нужной мне маске в нужной папке включая подкаталоги, выяснил что в них есть этот символ "р" и в ListBox1 занес полный пусть с именем файла. Но я не догоняю как теперь заменить?
Как это сделать? Ч пробовал при помощи ReplaceDialog но это думаю смешно:)
← →
TTCustomDelphiMaster (2002-07-28 19:32) [1]MoveFileEx
MoveFile
← →
Александр (2002-07-28 19:39) [2]Нет, мне не надо переименовывать имя файла, мне надо например в папке есть 10 тестовых файлов и во всех надо найти кусок текста и замнеить его на другой.
← →
TTCustomDelphiMaster (2002-07-28 20:22) [3]Александр © (28.07.02 19:39)
А в чем проблема? Читаешь файл, находишь текст (или все таки букву?), заменяешь, записываешь обратно. Что тут сложного?
← →
Александр (2002-07-28 20:44) [4]как айти и заменить текст?
← →
TTCustomDelphiMaster (2002-07-28 20:55) [5]F1 - Pos, Copy, Delete, Insert и др. строковые функции
← →
TTCustomDelphiMaster (2002-07-28 21:53) [6]И еще, советую воспользоваться объектом TStringList. У него есть такие полезные методы, как TStringList.LoadFromFile и TStringList.SaveToFile
← →
Александр (2002-07-28 21:57) [7]Это я уже давно сделал. Но как мне нацти кусок и заменитьь так и не понял. Стоит сразу заметить, что к справке меня посылать бесплозно..ни к чему хорошему это не приводит:(
← →
msalex (2002-07-29 00:13) [8]Можно заполнить ListBox именами файлов с нужным расширением,
послав ему соответствующее сообщение.
var
s:string;
...
ListBox1.Clear;
s:=DataDir+"*.расшырение"#0; // обязательно надо добавить к
// строке #0
ListBox1.Perform(LB_DIR, DDL_READWRITE, Longint(@s[1]));
← →
Александр (2002-07-29 00:19) [9]Спсибо, но это я уже все сделал.
У меня сейчас открыт текстовый файл в RichEdit1 и мне надо заменить в нем слово Delphi на Дельфи. Программно, без участия пользователя.
← →
TTCustomDelphiMaster (2002-07-29 05:06) [10]
> Александр © (28.07.02 21:57)
> Это я уже давно сделал. Но как мне нацти кусок и заменитьь
> так и не понял. Стоит сразу заметить, что к справке меня
> посылать бесплозно..ни к чему хорошему это не приводит:(
Печально :(
А делается это примерно так:
k:= Pos("Delphi",StringList1.Items[i]);
if k<>0 then
begin
Delete(StringList1.Items[i],k,length("Delphi"));
Insert(StringList1.Items[i],k,"Дельфи");
end;
← →
SVM (2002-07-29 09:04) [11]StringReplace
← →
Александр (2002-07-29 11:36) [12]Привожу кусок кода. Не работает. На выделенной строчке пишет ошибку.
var i: integer;
k: integer;
g: integer;
begin
for i:= 0 to ListBox1.Items.Count - 1 do
begin
RichEdit1.Lines.LoadFromFile(ListBox1.Items[g]);
k:=Pos(Memo1.Text,RichEdit1.Lines[g]);
if k <>0 then
begin
Delete(RichEdit1.Lines[g], k , length (Memo1.Text));
Insert(RichEdit1.Lines[g], k , Memo2.Text);
end;
end;
[Error] Unit1.pas(86): Constant object cannot be passed as var parameter
← →
MetalFan (2002-07-29 11:52) [13]
> Александр ©
я вижу такой выход:
копировать строку из ричэдита во временную, анализировать ее, заменять что нужно и возвращать в ричедит обратно.
var i: integer;
k: integer;
g: integer;
TempStr:String;
begin
for i:= 0 to ListBox1.Items.Count - 1 do
begin
RichEdit1.Lines.LoadFromFile(ListBox1.Items[g]);
k:=Pos(Memo1.Text,RichEdit1.Lines[g]);
if k <>0 then
begin
TempStr:=RichEdit1.Lines[g];
Delete(TempStr, k , length (Memo1.Text));
Insert(TempStr, k , Memo2.Text);
RichEdit1.Lines[g]:=TempStr;
end;
end;
← →
Александр (2002-07-29 13:47) [14]В обоих случаях еще есть ошибка в ствроке
Insert(TempStr, k , Memo2.Text);
[Error] Unit1.pas(103): Incompatible types
← →
Александр (2002-07-29 22:58) [15]Вот и глухо. На вопрос, который всем известен ответ нужно искать его 3 недели:(
← →
alena.svt (2002-07-29 23:09) [16]А еще бы типы совпадали!!!
string и strings.
← →
Александр (2002-07-30 00:58) [17]Извините, но я так и не понял как правильно должен выглядеть этот код. Не получается.
← →
MetalFan (2002-07-30 10:12) [18]используй вместо TMemo TEdit
или введи еще одну переменную типа string
смотри:
procedure Insert(Source: string; var S: string; Index: Integer);
-так описана процедура Insert...
делай выводы :))))
← →
Александр (2002-07-30 12:52) [19]Бр..............
Не получается. Что только не пробовал. И заменял Мемо на Едит и менял все местами ну никак..все ошибку пишет. Не выходит. Так с ума сойти можно:((((((((((((((((
← →
Александр (2002-07-30 13:51) [20]Как же я жутко тормозил. Все разобрался. Спасибо:)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c