......................................
with RichEdit1 do
begin{ begin the search after the current selection if there is one }
{ otherwise, begin at the start of the text }if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
{ ToEnd is the length from StartPos to the end of the text in the rich edit control }
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
.................................
ситуация следующая нужна подсказка мы находим необходимый текст на этом этапе все ок , но теперь необходимо следующее:
пример строка — 18.00.01 pppppppppp rrrrrr
dffdf dfdfdfdf :Error: поиск идет по :Error: а теперь хочется скопировать весь текст
который содержится в строке + верхнюю позицию . Подскажите плиззззззз как можно это сделать ??? ( все действие происходит
в *.txt заранее спасибо
IK>а теперь хочется скопировать весь текст IK>который содержится в строке + верхнюю позицию . Подскажите плиззззззз как можно это сделать ??? ( все действие происходит IK>в *.txt заранее спасибо
А теперь еще раз объясни на примере, какой именно текст тебе надо выделить. Типа так:
"Вот текст, найденная подстрока выделена болдом"
some string number one
second string containing search word and other stuff
"Здесь болдом выделено то, что надо скопировать"
some string number one
second string containing search word and other stuff
... << RSDN@Home 1.0 beta 6a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>А теперь еще раз объясни на примере, какой именно текст тебе надо выделить.
впринципе да — мы ищем word ( т.е вхождение подстроки "word" в строку) при поиске выделяется енто слово , далее
необходимо скопировать целиком строку, где имело место это вхождение :some string number one S>second string containing search word and other stuff Вот вроде бы как и все.....(метод вызова файла
loadfromfile(..,..)) Не знаю, наверное туплю но уже второй день не могу добиться того что надо.
Заранее спасибо
IK>впринципе да — мы ищем word ( т.е вхождение подстроки "word" в строку) при поиске выделяется енто слово , далее IK>необходимо скопировать целиком строку, где имело место это вхождение :some string number one S>>second string containing search word and other stuff Вот вроде бы как и все.....(метод вызова файла IK>loadfromfile(..,..))
Кошмар. Ну ладно, знаками препинания тут мало кто владеет. Но хотя бы переводы строки можно делать??? Прочитай свое сообщение и отправь вариант, в котором будет понятно что к чему.
... << RSDN@Home 1.0 beta 6a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
S>Кошмар. Ну ладно, знаками препинания тут мало кто владеет. Но хотя бы переводы строки можно делать??? Прочитай свое сообщение и отправь вариант, в котором будет понятно что к чему.
напишу коротко ищем word в строке some string number one
second string containing search word and other stuff находим word , далее копируем всю строку some string number one
second string containing search word and other stuff вот и все, не получается скопировать.......Думаю все тут ясно...
Здравствуйте, Igor_kir, Вы писали:
IK>напишу коротко ищем word в строке some string number one IK>second string containing search word and other stuff находим word , далее копируем всю строку IK> some string number one IK>second string containing search word and other stuff вот и все, не получается скопировать.......Думаю все тут ясно...
Мне не ясно, как это мы ищем word в одной строке, а находим в другой. И неясно мне из-за того, что кто-то не трудится ставить разрывы строк между примером и пояснениями к нему, а также между разными строками своего примера.
Ладно, попробую зайти с другой стороны.
Какой селекшн надо получить при поиске по "word":
а)
string one
string two string three has our word and other stuff
б)
string one string two
string three has our word and other stuff
в)
string one
string two
string three has our word and other stuff
?
... << RSDN@Home 1.0 beta 6a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Igor_kir, Вы писали:
IK>Здравствуйте, Sinclair, Вы писали:
IK>Для поиска подойдет вариант б) — главное ухватить суть
Для него это делается так:
with RichEdit1 do
begin{ begin the search after the current selection if there is one }
{ otherwise, begin at the start of the text }if SelLength <> 0
then StartPos := SelStart + SelLength
else StartPos := 0;
{ ToEnd is the length from StartPos to the end of the text in the rich edit control }
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
SetFocus;
// Determine the line number of the found character
LineFound:= SendMessage(Handle, EM_EXLINEFROMCHAR, 0, FoundAt);
// Determine the previous line startif LineFound>0
then SelStart:= SendMessage(Handle, EM_LINEINDEX, FoundLine-1, 0)
else SelStart:= SendMessage(Handle, EM_LINEINDEX, FoundLine, 0);
SelLength := FoundAt-SelStart+Length(FindDialog1.FindText);
end;
end;
... << RSDN@Home 1.0 beta 6a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Igor_kir, Вы писали: IK>Конечно извеняюсь дико: а как подключить модуль содержащий EM_EXLINEFROMCHAR (где он содержится ? )
uses RichEdit;
З.Ы. Есть такая штука в Delphi — поиск по файлам. И в FAR тоже есть. С учетом наличия исходников VCL, задавание таких вопросов в форум выглядит странно.
... << RSDN@Home 1.0 beta 6a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.