Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Поиск в текстовом файле

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sleepwalker
База, это просто сканиный текст с телефонного справочника, поэтому редактировать файл просто не реально...  

Цитата:
зачем тебе проверка каждого слова в строке?

строка ведь состит из Ф.И.О. , места жительства и номера телефона, чтобы мне вывести строку, то мне и надо вводить полную строку, а мне надо чтобы вводя фамилию или номер телефона выводилась все похожие номера или фамилии. Или как Вы писали, ввели от фамилии три первые буквы и в поиске отражались все данные начинающиеся с этих трёх букв....

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 13:19 02-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DroN_S
можно парсер написать. он будет разгребать текст. Всё таки там есть некоторые "указатели". И сразу в базу записывать. Могу написать впринципе

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 13:55 02-06-2005
Sleepwalker



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
извините, может я тупой... или че не понимаю... но смысл в парсере?
Нужно найти вхождение в строку... ну и все.
Автор вопроса так и не уточнил, нужен ли ему просто поиск в строке или поиск по конкретному полю.

Всего записей: 1957 | Зарегистр. 19-10-2002 | Отправлено: 14:56 02-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sleepwalker
Смысл в том, что поиск по подстроке - это тоже парсер.
Ждём решения автора

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:52 02-06-2005
Sleepwalker



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
не вижу никакого смысла именно в парсинге как в разборе строки по элементам.
Поиск в строке является частью парсинга, но никак не равен ему
все же уже описали: берем искомый шаблон, перебираем все строки и те, в которых данных шаблон есть (где pos>0) - выводим эту строку

Всего записей: 1957 | Зарегистр. 19-10-2002 | Отправлено: 17:17 02-06-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
поиск по конкретному полю.

да, пользователь знает адрес, он вводит его и ему выводятся все похожие фамилии и номера с адреса, или знает номер или знает фамилию...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 17:52 02-06-2005
Sleepwalker



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
И чего? у нас семантически сходство между ними минимальное... по-моему, можно просто искать в строке и не париться

Всего записей: 1957 | Зарегистр. 19-10-2002 | Отправлено: 18:19 02-06-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
искать в строке и не париться

что и требуется....

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 14:41 03-06-2005
Sleepwalker



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
тогда тебе все уже давно написали, и не один раз

Всего записей: 1957 | Зарегистр. 19-10-2002 | Отправлено: 15:18 03-06-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sleepwalker

Цитата:
тогда тебе все уже давно написали, и не один раз

ткните пальцем на алгоритм поиска...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 16:12 03-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DroN_S
например так

Код:
 
if pos('строка, которая ищеться','строка в которой ищем')=0 then  
  ShowMessage('Облом, нет')
else ShowMessage('Ура нашли')
 


----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:30 03-06-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
if pos('строка, которая ищеться','строка в которой ищем')=0 then  
  ShowMessage('Облом, нет')  
else ShowMessage('Ура нашли')  

а ещё варианты какие-нибудь есть...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 21:48 03-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DroN_S

Цитата:
а ещё варианты какие-нибудь есть...

варианты были...
Читай внимательно на предыдущей станичке.
Просто этот метод самый простейший для понимания. Хотя и не самый быстрый (Далеко не самый но те хватит на первое время).
Ты хоть попробывал реализовать этот метод?

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 14:39 04-06-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
'строка в которой ищем'

Мне непонятно что должно быть на этом месте?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 00:02 05-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DroN_S

Цитата:
Мне непонятно что должно быть на этом месте?

то что здесь должно быть, ты читаеш с файла, построчно.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 13:19 05-06-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо мужики, разобрался...
Особая благодарность OdesitVadim за помощь..
 
Можно ещё один вопрос, как сделать более упорядоченный файл, хотя бы чтобы чтобы пробелы между фамилией, адресом и номером были одинаковые?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 21:28 05-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DroN_S
самый просой способ - заменить 2 пробела одним. так как тебе надо это сделать один раз, то лучше открой в текстовом редакторе (в блокноте на худой конец) и сделай замену двух пробелов на один (заменить всё). После того как он сделает это, ещё раз нажимаеш заменить всё. И так до тех пор, пока не скажет что больше нечего заменять. Даже если текст очень большой , через мин 5 всё будет ок. Если последовательности пробелов есть достаточно большие (например 20 штук), то вначале делаеш замену 10 пробелов на один.
Почему не писать прогу? Да потому что на написание и отладку уйдёт больше время. Если всё таки хочеться программно - пиши, попробуем помочь

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 11:57 06-06-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
Тоесть, программно можно сделать через замену?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 23:12 07-06-2005
Sleepwalker



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
я бы на твоем месте разделителем полей (колонок) сделал не пробел, а табуляцию например. тогда бы было потом проще импортировать его куда-нить...

Всего записей: 1957 | Зарегистр. 19-10-2002 | Отправлено: 23:26 07-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DroN_S
можно, всё можно. Но если тебе один файл обработать, то зачем. Проще блакнот напрячь

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 11:16 08-06-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Поиск в текстовом файле


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru