Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Вниз

TStringList   Найти похожие ветки 

 
DeMoN-777   (2002-10-07 18:06) [0]

Как в TStringList найти определённый текст(слово) и вставить после него свой текст(слово), а далше чтоб всё шло как и было. ?
Например есть текст "Маша сильно болеет туберкулёзом".
Мне надо после слова "Маша" вставить слово "очень", чтобы получилось "Маша очен сильно болеет туберкулёзом"


 
McSimm   (2002-10-07 18:14) [1]

Например так:
SL.Text := StringReplace(SL.Text, "Маша", "Маша очень", []);

Флаги в зависимости от задачи


 
Romkin   (2002-10-07 18:16) [2]

s := StringList1.Text;
mashaPos := ansipos("Маша", s);
if MashaPos > 0 then Insert(" очен",s,MashaPos);
StringList1.Text := s;
Так проще всего, имхо


 
DeMoN-777   (2002-10-07 18:49) [3]

Не работает =(

procedure TForm1.BbStartClick(Sender: TObject);
var pos,i: integer;
S :String;

begin
BbStart.Enabled:=False;//


 
McSimm   (2002-10-07 18:58) [4]

Что именно не работает?

MmFind.Lines.Text может содержать #13#10

(кстати, где TStringList.Free ?)


 
TTCustomDelphiMaster   (2002-10-07 19:03) [5]

Что не работает?
А где TStringList.Free?
Вы умеете пользоваться средствами отладки Delphi?


 
DeMoN-777   (2002-10-07 19:05) [6]

>TTCustomDelphiMaster © (07.10.02 19:03)
>Вы умеете пользоваться средствами отладки Delphi?

Нет, пока не дочитал.


 
DeMoN-777   (2002-10-07 19:10) [7]

Не добовляет =(


 
TTCustomDelphiMaster   (2002-10-07 19:14) [8]

Тогда дочитайте, а потом продолжите. Кучу времени съэкономит.


 
DeMoN-777   (2002-10-07 19:23) [9]

>TTCustomDelphiMaster © (07.10.02 19:14)

Естестенно.
Так-то я обычно сам со всем разбираюсь сам, только мне это срочно надо, а времени нет. Вот и прошу помощи мастеров.


 
TTCustomDelphiMaster   (2002-10-07 19:31) [10]


> а времени нет


Тогда скорее за книжку...


 
DeMoN-777   (2002-10-07 20:45) [11]

>TTCustomDelphiMaster © (07.10.02 19:31)

Я же говорюто щас некогда.


 
Набережных С.   (2002-10-07 20:58) [12]

А что тебе компилятор говорит?


 
McSimm   (2002-10-08 11:34) [13]

Попробуем помочь (хотя это и сложно в данном случае, приходится угадывать)
--
if LbDir.Items.Count >= 0 then
Это что? Вероятнее всего это условие всегда истинно.
--
Структура лучше такая:
SL := TStringList.Create;
try
// все действия
finally
SL.Free
end;
--
Pos := ansipos(MmFind.Lines.Text, s);
А что мы ищем?
Попробуй так: ansipos(MmFind.Lines[0], s);


 
DeMoN-777   (2002-10-08 13:22) [14]

>McSimm © (08.10.02 11:34)

Сасибо, разобрался, но я выбрал такой варинт, так как он кажется мне предпочтительней.

procedure TForm1.BbStartClick(Sender: TObject);
var pos,i: integer;
S :String;

begin
BbStart.Enabled:=False;//Делаем недоступной кнопку start
Progress.Progress:=0; //Онулируем прогрессбар
Progress.ForeColor:=ClBlack;//Делаем чёрным прогрессбар

if LbDir.Items.Count >=0 then
begin
Progress.MaxValue:=LbDir.Items.Count;//Махимальное значение прогрессбара
With TStringList.Create Do
begin
for i:=0 to LbDir.items.count-1 do
begin
LbDir.ItemIndex:=i;
LoadfromFile(LbDir.Items[LbDir.ItemIndex]);
s:=Text;
s:= StringReplace(s, MmFind.Lines.text,MmFind.Lines.text+MmPaste.lines.text,[rfReplaceAll]);
Text:=s;
Application.ProcessMessages;
Progress.Progress:=i+1;//Прибавляем процент к прогрессбару
SaveToFile(LbDir.Items[LbDir.ItemIndex]);
end;
Free;
end;
end;
Progress.ForeColor:=ClRed;
BbStart.Enabled:=True;
end;


 
Romkin   (2002-10-08 13:39) [15]

Мда... Прибил бы за free не в finally, сразу
Зачем тебе TStringList? насколько понимаю, читаешь файл, заменяешь кусок строки, потом записываешь обратно... Так и надо делать:
var
F1: File of byte;
s: string;
Len: integer;
begin
assignFile(f1,LbDir.Items[LbDir.ItemIndex]);
reset(f1);
Len := FileSize(f);
SetLength(s, len);
BlockRead(f1,s[0],len);
CloseFile(f1);
s:= StringReplace(s, MmFind.Lines.text,MmFind.Lines.text+MmPaste.lines.text,[rfReplaceAll]);
rewrite(f1);
Blockwrite(f1,s[0],length(s));
closefile(f1);
end;
Вроде должно прокатить


 
Romkin   (2002-10-08 13:41) [16]

блин, вместо s[0] надо s[1], совсем уже...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
3-55941
hogo
2002-09-24 11:24
2002.10.17
использование .db без BDE


7-56354
Mnch
2002-08-06 17:14
2002.10.17
Как сделать свою прогу e-mail клиентом по умолчанию?


1-56218
Shrek
2002-10-07 22:31
2002.10.17
Power OFF


14-56329
Nikolay
2002-09-25 01:10
2002.10.17
Дремучего с Днем Рождения!


3-55932
Bishop
2002-09-18 20:32
2002.10.17
Глюк грида





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский