Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.16;
Скачать: CL | DM;

Вниз

Копировать из мемо   Найти похожие ветки 

 
dennis   (2009-06-20 02:51) [0]

у меня есть мемо где много много текста.....и мне надо скопировать оттуда текст начиная с слова -начало- и до слова -конец-.....вот этот отрезок мне надо скопировать.....причем сами эти слова начало и конец))не надо))брать)подскажите пожалуйста как это сделать))
заранее спасибо


 
Игорь Шевченко ©   (2009-06-20 03:08) [1]

...сами мы не местные...

RTFM: TMemo.Lines.Text


 
Германн ©   (2009-06-20 03:17) [2]


> Игорь Шевченко ©   (20.06.09 03:08) [1]
>
> ...сами мы не местные...
>

:)

> dennis   (20.06.09 02:51)  

Это !учебное задание" или ... ?


 
dennis   (2009-06-20 09:58) [3]

да почему сразу учебное?
я прочитал руководство.....толком не нашел.....


 
dennis   (2009-06-20 10:23) [4]

Злые вы)))ну вот конкретнее на чем я застопился)))
var
ToFind: string; // сктрока что я ищу
FindIn: string; // где я ищу
Found: integer; // результат поиска
FoundLen: integer; //длинна текста что я нашел
st:string;
begin
ToFind := Label1.Caption; //поисковый запрос
FindIn := Memo1.Text;//сообсвтенно сам текст
FoundLen := Length(Label1.Caption);
Found := Pos(AnsiUpperCase(ToFind), AnsiUpperCase(FindIn));
IF Found > 0 then
begin
Memo1.SelStart:= Found-1;
Memo1.SelLength := 20;
edit1.Text := memo1.SelText;
end;

все бы ничего только.....в лабел я закидываю слово -начало- он находит его в мемо добовляю + 20 символов и он копирует...все это дело в эдит....проблема в том что у мя там всегда может быть различное кол-во симвлов(((как мне сделать атк что б он строго брал до слова -конец-


 
Anatoly Podgoretsky ©   (2009-06-20 10:34) [5]

Видимо ищешь только слово "-начало-", попробуй найти позицию и второго слова.


 
dennis   (2009-06-20 11:05) [6]

проблема вот в этом и есть что  я и незнаю как найти позицию второго слова(((


 
{RASkov} ©   (2009-06-20 11:19) [7]

> [6] dennis   (20.06.09 11:05)

Так же как и первое. Pos()-Length(-конец-) Еще есть PosEx но эт не для этого случая, а чтоб знал. если вдруг не знаешь :)
и лучше переделай [4] - там ужасно. :)


 
{RASkov} ©   (2009-06-20 11:29) [8]

> Так же как и первое. Pos()-Length(-конец-)

Т.е. так "первое" ищется, а "второе" проще :)

function GetTextTag(AText, BTag, ETag: String): String;
var IBTag: Integer
begin
 Result:="";
 if Всякие праверки на вшивость then Exit;
 IBTag:=Pos(BTag, AText)+Length(BTAg);
 Result:=Copy(AText, IBTag, IBTag-Pos(ETag, AText));
end;
примерно так....


 
dennis   (2009-06-20 11:48) [9]

вау вау )))ничерта не понял)))но спс хоть на этом....
чуточки пояснений бы(( пытался найти что то про эту функцию в инете ничерта не нашел)))


> и лучше переделай [4] - там ужасно. :)

что там такого?


 
sniknik ©   (2009-06-20 12:26) [10]

> он находит его в мемо добовляю + 20 символов
почему 20? должен найти позицию второго слова и вместо 20 брать разность между второй позицией и первой. ну еще учесть длину самого первого слова, т.к. позиция идет сначала, но подгонки можно потом, сделай хотя бы грубо.  

> проблема вот в этом и есть что  я и незнаю как найти позицию второго слова(((
что ставит под сомнение самостоятельность написания показанного кода. там то ты ищешь позицию. а поиск другой ничем не отличается. (если у тебя проблема именно со словом "второго" то напиши точно тоже самое и ищи его первым, без того что ищешь сейчас. потом совместишь)

{RASkov} ©   (20.06.09 11:19) [7]
> Еще есть PosEx но эт не для этого случая
а по моему как раз для этого. или у него конец может быть в любом месте, даже раньше начала, чтобы заново весь текст просматривать?

> пытался найти что то про эту функцию в инете ничерта не нашел
Ctrl+F1


 
{RASkov} ©   (2009-06-20 13:52) [11]

> [10] sniknik ©   (20.06.09 12:26)
> а по моему как раз для этого.

Ну фик знает..... если "тэги" разные и второй идет за первым и они одни в тексте, то нафик PosEx не нужен:
BegPos:=Pos(-начало-)+Length(-начало-);
EndPos:=Pos(-конец-);
Resultat:={Trim(}Copy(...,BegPos, EndPos-BegBos){)};
Если одинаковые, то да... PosEx тады можно приделать :)


 
sniknik ©   (2009-06-20 14:10) [12]

> PosEx тады можно приделать :)
в любом случае. как минимум чтобы не делать одну и ту же работу 2 раза.

> Если одинаковые
и это тоже, т.к. слова для поиска могут вводить (и скорее всего будут) пользователи. лучше делать так чтобы было поуниверсальнее тем более, что тут это же самое и быстрее будет работать.



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

Текущий архив: 2009.08.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1244790400
@!!ex
2009-06-12 11:06
2009.08.16
Шифрованием xor с ключом в 1 байт.


15-1244747440
AlexLLL
2009-06-11 23:10
2009.08.16
"И ИЛИ НЕ Программа"


4-1202326013
Velimir
2008-02-06 22:26
2009.08.16
Получить информацию о ресурсах PCI устройства


2-1245399017
Б
2009-06-19 12:10
2009.08.16
Скорость алгоритма.


2-1245257837
Bred
2009-06-17 20:57
2009.08.16
Unable to invoke Code Completion due to errors in source code