Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Поиск в текстовом файле

Автор: OdesitVadim
Дата сообщения: 03.06.2005 15:30
DroN_S
например так

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

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

а ещё варианты какие-нибудь есть...
Автор: OdesitVadim
Дата сообщения: 04.06.2005 13:39
DroN_S

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

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

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

Мне непонятно что должно быть на этом месте?
Автор: OdesitVadim
Дата сообщения: 05.06.2005 12:19
DroN_S

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

то что здесь должно быть, ты читаеш с файла, построчно.
Автор: DroN_S
Дата сообщения: 05.06.2005 20:28
Спасибо мужики, разобрался...
Особая благодарность OdesitVadim за помощь..

Можно ещё один вопрос, как сделать более упорядоченный файл, хотя бы чтобы чтобы пробелы между фамилией, адресом и номером были одинаковые?
Автор: OdesitVadim
Дата сообщения: 06.06.2005 10:57
DroN_S
самый просой способ - заменить 2 пробела одним. так как тебе надо это сделать один раз, то лучше открой в текстовом редакторе (в блокноте на худой конец) и сделай замену двух пробелов на один (заменить всё). После того как он сделает это, ещё раз нажимаеш заменить всё. И так до тех пор, пока не скажет что больше нечего заменять. Даже если текст очень большой , через мин 5 всё будет ок. Если последовательности пробелов есть достаточно большие (например 20 штук), то вначале делаеш замену 10 пробелов на один.
Почему не писать прогу? Да потому что на написание и отладку уйдёт больше время. Если всё таки хочеться программно - пиши, попробуем помочь
Автор: DroN_S
Дата сообщения: 07.06.2005 22:12
OdesitVadim
Тоесть, программно можно сделать через замену?
Автор: Sleepwalker
Дата сообщения: 07.06.2005 22:26
DroN_S
я бы на твоем месте разделителем полей (колонок) сделал не пробел, а табуляцию например. тогда бы было потом проще импортировать его куда-нить...
Автор: OdesitVadim
Дата сообщения: 08.06.2005 10:16
DroN_S
можно, всё можно. Но если тебе один файл обработать, то зачем. Проще блакнот напрячь
Автор: DroN_S
Дата сообщения: 08.06.2005 11:26
OdesitVadim
А если у меня файл не совсем стандартный, т.е. в нём есть и организации, если пользоваться блокнотом, тогда он мне все единичные пробелы заменит на ту длинну, которую я укажу, но мне этого не надо, мне надо отделить название организаций от адреса и телефона, и чтиоб между ними была определённое расстояние...
Автор: OdesitVadim
Дата сообщения: 08.06.2005 11:35
DroN_S
тогда нужна прога. Приведи пример, чтобы стало понятно чем они отличаются. В принцпе могу и рабочий код написать, но это будет только после сдачи диплома (через 2 недели)
Автор: DroN_S
Дата сообщения: 08.06.2005 12:44
OdesitVadim
В общем вот такое различие:

АО "Тюменьэнерго" Тобольская ТЭЦ Тобольск 0 Гл.щит управления 5-20-48 - это ОРГАНИЗАЙЦИЯ

Загваздина Г.А. 2 Северная 47 4-46-58 - это ЧАСТНИКИ...
Автор: evle
Дата сообщения: 08.06.2005 15:53
Мда. Плавно переходим к искуственному интеллекту.
С фамилиями еще хоть как-то понятно, а вот как отдирать название организации от адреса - не очень. Если, конечно, оно не отделяется как минимум двумя пробелами и в названии организации двойные пробелы отсутствуют. В таком случае можно поколдовать с регулярными выражениями.
Автор: DroN_S
Дата сообщения: 08.06.2005 21:50
Структура написания для организации приведена, она одинаковая, а вот с фамилиями они меняются...
Автор: evle
Дата сообщения: 09.06.2005 06:06
DroN_S
Что значит одинакова? По этому примеру я вижу такую структуру: слово <пробел> "слово в кавычках" <пробел> еще два слова через пробел
И я что-то сомневаюсь, что так будет всегда.
Автор: mr_eoi
Дата сообщения: 09.06.2005 06:24
evle
07:06 09-06-2005
Цитата:
Что значит одинакова?

Наверное имеется ввиду, что после имени органицации/Ф.И.О всегда следует серия пробелов, завершающаяся числом.
Автор: evle
Дата сообщения: 09.06.2005 06:40
mr_eoi
12:24 09-06-2005
Цитата:
Наверное имеется ввиду, что после имени органицации/Ф.И.О всегда следует серия пробелов, завершающаяся числом.

Про серию пробелов я спросил напрямую (21:53 08-06-2005). Ответа не обнаружил. Интересует длина этой серии.
Числа перед названием города "Тобольск" также не обнаружил.
С фамилиями гораздо проще: там структура понятна сразу (надеюсь, полных имен и нескольких человек сразу там нет?)
Автор: mr_eoi
Дата сообщения: 09.06.2005 06:46
evle
07:40 09-06-2005
Цитата:
Числа перед названием города "Тобольск" также не обнаружил.

Процитирую саи себя
Цитата:
после имени органицации/Ф.И.О всегда следует серия пробелов, завершающаяся числом.
следовательно число предполагается после города "Тобольск". При этом число пробелов перед числом несущественно, главное - они есть.
Автор: evle
Дата сообщения: 09.06.2005 06:50
mr_eoi
12:46 09-06-2005
Цитата:
следовательно число предполагается после города "Тобольск"

Я так понял, название города входит в адрес, а не в название организации. Да и с чего там быть числу? "2 Северная" - это "Вторая Северная" (название улицы).
Автор: mr_eoi
Дата сообщения: 09.06.2005 06:53
evle
07:50 09-06-2005
Цитата:
Да и с чего там быть числу?

А что такое "0 Гл.щит управления"?
Автор: DroN_S
Дата сообщения: 09.06.2005 07:51

Цитата:
АО "Тюменьэнерго" Тобольская ТЭЦ
- это название организации

Цитата:
Тобольск 0 Гл.щит управления
- это адресс

Цитата:
5-20-48
- номер телефона

Спросите, почему такой большой пробел между
Цитата:
Тобольск 0 Гл.щит управления
, отвечу, что это сканированный текст....

evle

Цитата:
надеюсь, полных имен

Есть и полные имена и отчества...
Автор: mr_eoi
Дата сообщения: 09.06.2005 11:55
DroN_S
Организации и частники конечно идут вперемешку?
Автор: evle
Дата сообщения: 09.06.2005 12:00
DroN_S
Тьфу. Спрашиваю третий раз.
Всегда ли название организации или имя отделяются двумя и более пробелами? И всегда ли внутри каждой части есть только одинарные пробелы?
Автор: DroN_S
Дата сообщения: 09.06.2005 16:35

Цитата:
Всегда ли название организации или имя отделяются двумя и более пробелами?

Да, проктически всегда...

Цитата:
И всегда ли внутри каждой части есть только одинарные пробелы?

Это да, только одинарные...
Автор: evle
Дата сообщения: 09.06.2005 16:54
DroN_S
22:35 09-06-2005
Цитата:
Да, проктически всегда...

Нехорошо. Ошибки будут. Но нормально в таком случае только искусственным либо естесственным интеллектом обработается.
Предлагаю следующее решение: берем текстовый редактор либо еще что-либо, умеющее работать с регулярными выражениями. Шаблон для поиска: "^(.*?)\s{2,}(.*?)\s+([\d-]+)$". Шаблон для замены: "$1\t$2\t$3" (без кавычек, естесственно). Запускаем, на выходе получаем то же самое, но части отделены друг от друга одной табляцией. При необходимости перегоняем в базу данных.
Расчитано на то, что в конце строк пробелов нет (если есть, можно предварительно удалить), в номере телефоне должны быть только цифры и "-". Один телефон в строке. Все что идет до первой группы двух пробелов считается названием, между первой группой пробелов и номером телефона - адресом.
Писать прогу для такой задачи совершенно нецелесообразно.
Автор: DroN_S
Дата сообщения: 09.06.2005 17:44
evle
А как можно из простого текстового файла перегнать в базу данных?
Автор: evle
Дата сообщения: 09.06.2005 17:52
DroN_S
23:44 09-06-2005
Цитата:
А как можно из простого текстового файла перегнать в базу данных?

В Access через импорт можно (он понимает файлы, разделенные табуляцией)
Автор: DroN_S
Дата сообщения: 09.06.2005 20:05
evle
При импорте получается полный бред, либо всё в одном поле, либо полей очень много...
Автор: evle
Дата сообщения: 10.06.2005 03:17
DroN_S
02:05 10-06-2005
Цитата:
При импорте получается полный бред, либо всё в одном поле, либо полей очень много...

Ну так настрой. Я перед тем как писать проверил - работает. Нужно поставить разделитель - табуляцию.

Страницы: 123

Предыдущая тема: интегрирование


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.