Вверх ↑
Этот топик читают: Гость
Ответов: 952
Рейтинг: 4
#1: 2009-10-05 09:29:08 ЛС | профиль | цитата
В Примерах не нашел похожего.
Есть текстовый файл, достаточно большой.
Приизвести подгрузку его в элемент Таблица не составляет труда. А вот как произвести поиск по всем строкам?
Т.е. например из всего файла нужны строик имеющие в себе 2 слова - адрес, квартира, расположенных в любой части строки, так вот как или каким компонентом производить данный поиск?
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#2: 2009-10-05 10:03:21 ЛС | профиль | цитата
По двум, совершенно разным и находящимся в разных столбцах, словам ни одна таблица искать не будет, это же не база. Можно искать последовательно, сначала ближайшее поле, затем следующее, но штатная таблица не обладает функцией поиска, только StrTableMT и MStrTbl, как искать в последней, есть пример на wiki. но для этих целей лучше использовать базу, в ней и искать.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#3: 2009-10-05 10:33:59 ЛС | профиль | цитата
user_asm, а так не пробовал ?
code_15126.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_15126.txt [573B] [196]
Ответов: 952
Рейтинг: 4
#4: 2009-10-05 10:50:16 ЛС | профиль | цитата
Именно что база то мне и не подходит
Прога нужна для чтения и поиска в лог-файле.
Попробую остановится на StrTableMT
Может получу желаемый результат.
спасибо за ответ.

Не получилось с StrTableMT
При указании для загрузки текстового файла-лога размером 180 Мб - приложение наглухо виснет
Жаль.
карма: 0

0
Ответов: 4641
Рейтинг: 334
#5: 2009-10-05 11:21:20 ЛС | профиль | цитата
user_asm писал(а):
Именно что база то мне и не подходит

а чем тебя вариант от Tad, не устраивает?
------------ Дoбавленo в 11.21:
user_asm писал(а):
наглухо виснет

оно не виснет, а грузится!
------------ Дoбавленo в 11.26:
а что бы не вис, посмотри Thread
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 8926
Рейтинг: 823
#6: 2009-10-05 11:40:41 ЛС | профиль | цитата
user_asm, да и зачем обязательно элемент Таблица, поскольку "адрес, квартира, расположенных в любой части строки", чем хуже, например, Список строк
nesco, часто возникает вопрос по большим файлам, иногда напрягает ожидание полной загрузки 180 Мб ; можно-ли сделать компонент для загрузки не всего файла, а его определённой части
карма: 19

0
Ответов: 952
Рейтинг: 4
#7: 2009-10-05 11:43:46 ЛС | профиль | цитата
Я понимаю что грузится.
Сейчас пробую вариант Tad
Выставил в свойствах сразу открытие файла с логом. В 27 минут запустил.
Сейчас 31 минута - все еще не открылось.

Открылось - в строках таблицы только первое слово из всей строчки файла-лога
Убрал стрингдэлимитер - то же самое.
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#8: 2009-10-05 11:44:53 ЛС | профиль | цитата
Леонид писал(а):
можно-ли сделать компонент для загрузки не всего файла, а его определённой части

А что, разве это нельзя реализовать через копии стрима, переместив Position на нужное место и сделав копию определенного количества байт
------------ Дoбавленo в 11.49:
Tad писал(а):
а так не пробовал ?

Ну ты и предложил, загружать файл в 189 Мб в одну таблицу и потом лопатить эту таблицу для получения результата. Вы хоть отдаленно представляете, что вы делаете
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2009-10-05 12:36:29 ЛС | профиль | цитата
фильтрацию строк из лога надо делать до его загрузки куда бы то ни было. В зависимости от формата исходного файла с логами это делается через потоки(Stream) элементом DataToFile в режиме AnsiStringLines.
карма: 27
0
Ответов: 952
Рейтинг: 4
#10: 2009-10-05 13:08:08 ЛС | профиль | цитата
В принципе видеть весь лог в таблице мне без надобности.
Я хочу реализовать следующее -

code_15133.txt

Это просто интерфейс. Т.е. параметр или 2 вводится в поля Эдит и запуском на кнопку Поиск - запускаем поиск в логе и вывод строк с указанными в фильтре значениями в таблицу.
Как бы задумка проста, но вот уперся в её претворение в жизнь.
Щас буду пробовать прокурчивать вариант Tad
Може еще кто идейку подкинет?

карма: 0

0
файлы: 1code_15133.txt [570B] [219]
Ответов: 16884
Рейтинг: 1239
#11: 2009-10-05 13:13:19 ЛС | профиль | цитата
nesco писал(а):
Ну ты и предложил
user_asm писал(а):
Приизвести подгрузку его в элемент Таблица не составляет труда. А вот как произвести поиск по всем строкам?
Я ему показал как отобрать нужные или ненужные строки. А как это сделать не загружая 200 Мб
пусть посмотрит в паралельной теме Компонент StringTable не принимает более 6469 строк
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#12: 2009-10-05 13:15:00 ЛС | профиль | цитата
user_asm, ссылку на кусок своего лога кинь, мега на 1.5
карма: 22

0
Ответов: 8926
Рейтинг: 823
#13: 2009-10-05 13:30:07 ЛС | профиль | цитата
nesco,
nesco писал(а):
А что, разве это нельзя реализовать через копии стрима, переместив Position на нужное место и сделав копию определенного количества байт
вот так?: code_15134.txt - разве файл не загружается полностью в FileStream
карма: 19

0
файлы: 1code_15134.txt [1KB] [220]
Гость
Ответов: 17029
Рейтинг: 0
#14: 2009-10-05 13:38:41 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-22 09:21:41
карма: 0

0
Ответов: 952
Рейтинг: 4
#15: 2009-10-05 13:42:57 ЛС | профиль | цитата
Вот кусок лога
http://hiasm.com/forum_serv.php?q=56&id=556

Допустим мне там нужно вывести строчки имеющие в себе слова - serial и dur
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)