|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.02.2010, 16:21 | #1 |
Пользователь
Регистрация: 28.01.2010
Сообщений: 16
|
Поиск в MEMO
Здрасте. Как осуществить поиск по полю MEMO? Например есть поле MEMO, с текстом книги, нужно сделать так, чтобы был поиск по етому полю и виводился номер символа первой буквы искомого слова неучитывая пробелы.
|
09.02.2010, 16:31 | #2 | |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Цитата:
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
|
09.02.2010, 16:33 | #3 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
pos() вам в помощь.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
09.02.2010, 21:04 | #4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Без обид, но это:
1. Медленно 2. Не универсально (только с начала текста) Использовать PCHAR на вашу строку String (ну там вроде Lines.Text, уже и не помню). Дальше в цикле while(PCHAR^ != #0) do ; и перебираете все так символы. То что надо запоминаете, что не надо отсеиваете. |
09.02.2010, 21:30 | #5 |
Форумчанин
Регистрация: 09.11.2009
Сообщений: 669
|
dimafe6, а поиск в Google или по форуму вам тоже не знаком?
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли |
09.02.2010, 21:30 | #6 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Цитата:
Код:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
09.02.2010, 21:38 | #7 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Alex Cones - а вы впихните 100 МБ текста, и попробуйте что работает быстрее
1. Мой вариант - это уже существует область памяти где расположен текст - мы просто пробегаемся по ней указывая на каждый символ PCHAR и дальше когда надо инкрементируем, и так пока не добежим до нуля (конца строки) 2. Ваш вариант: a) Pos - поиск только сначала строки до первого совпадения b) Delete - выполняет удаление/изменение строки - что значит, перевыделение (что ли) памяти для новой строки. c) Вы вызываете 2 раза Pos - некуда девать кванты ЦП ? Думаю спорить здесь и об этом, и так явном правильном решении, просто бессмысленно. raxp Это просто пример необязательно принимать дословно. Суть в том, чтобы делать производительный код, а не то как легче. Надеюсь хоть до кого-нибудь донес свою идею. TzX Сижу тут и отбиваюсь. Спасибо уважаемый, я в курсе, проходили. Как не крути, зачем вызывать отдельную функцию, которая по сути опять таки возьмет указатель на символ, просто смещенный относительно старта поиска (аргумента указанного в вами указанной функции, извините за тавтологию) и проделает туже самую работу что если бы сразу "бегали" по строке с указателем в руках. Edit: p.s. я уже даже не знаю что сказать. Либо люди специально придераються к словам не пытаясь уловить сути, либо уже на столько ленивые стали, что подумать и сделать лучше (даже если придется изобретать велосипед) уже не хотят. Не буду флудить, это Ваш выбор делайте как считаете лучше для себя, я просто хотел донести идею и свой опыт, видимо это лишнее. Извините. Последний раз редактировалось BOBAH13; 09.02.2010 в 22:07. |
09.02.2010, 21:44 | #8 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
насчет области памяти вы правы... но 100МВ текста, это что-то невероятное, даже для книжки, большой книжки...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
09.02.2010, 21:45 | #9 | |
Пользователь
Регистрация: 23.12.2009
Сообщений: 57
|
Цитата:
|
|
09.02.2010, 22:03 | #10 | |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Почитал. Ключевой термин - "поиск в Memo".
И где же вы Memo видели на 100 Mб? А, професора вы мои хорошие? Что вы мозги пудрите ТС с 2-мя сообщениями и 10 п. репутации (кролик). Цитата:
Можно a+b решить таким способом, что у профессоров из Института Космических исследований оставшиеся волосы дыбом встанут... Вопрос - а зачем ? Имхо. Михалыч.
И не сомневайся даже ... отдых - кайф, работа - лажа!
Последний раз редактировалось mihali4; 10.02.2010 в 02:59. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск слова в Memo | Rebel123 | Общие вопросы Delphi | 21 | 05.05.2012 20:30 |
Поиск по Memo | photozaz | Общие вопросы Delphi | 5 | 25.05.2008 17:55 |
Поиск в Memo | Terran | Общие вопросы Delphi | 4 | 07.05.2008 23:33 |
Поиск в поле Memo | omi | БД в Delphi | 6 | 01.03.2007 18:39 |