Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Чтение и поиск по текстовому файлу (FileRead / FileToVar / StrParse / SearchStr)
Чтение и поиск по текстовому файлу
AleksandrArchipovДата: Пт, 23 Марта 2012, 08:30 | Сообщение # 1
Новичок
Здравствуйте! Возможно, ли реализовать поиск по txt файлу по поисковой базе данных? Например: у меня есть на компьютере файл.txt в нем хранится определенная информация и есть файл база.txt в нем содержатся слова/группа слов, которые нужно найти в этом файл.txt. Причем нужно чтобы программа не сразу вся содержимое (файла база) искало, а по определенному алгоритму, например, построчно. Спасибо. :)
 
СообщениеЗдравствуйте! Возможно, ли реализовать поиск по txt файлу по поисковой базе данных? Например: у меня есть на компьютере файл.txt в нем хранится определенная информация и есть файл база.txt в нем содержатся слова/группа слов, которые нужно найти в этом файл.txt. Причем нужно чтобы программа не сразу вся содержимое (файла база) искало, а по определенному алгоритму, например, построчно. Спасибо. :)

Автор - AleksandrArchipov
Дата добавления - 23 Марта 2012 в 08:30
mishemДата: Пт, 23 Марта 2012, 08:50 | Сообщение # 2
Эксперт форума
AleksandrArchipov,
Ну вот честное слово, на такие вопросы просто не хочется отвечат.
Это означает что вы не читали ни справку, ни форум.
Задача элементарная. Очень простая.
Отвечу так же просто. Да, возможно. Мало того, этот текстовый файл можно вставить в самую настоящую базу. А там уже производить поиск вообще, как душе угодно.


Не хочешь читать хелп?

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



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеAleksandrArchipov,
Ну вот честное слово, на такие вопросы просто не хочется отвечат.
Это означает что вы не читали ни справку, ни форум.
Задача элементарная. Очень простая.
Отвечу так же просто. Да, возможно. Мало того, этот текстовый файл можно вставить в самую настоящую базу. А там уже производить поиск вообще, как душе угодно.

Автор - mishem
Дата добавления - 23 Марта 2012 в 08:50
DEMBELДата: Пт, 23 Марта 2012, 10:40 | Сообщение # 3
Наш дизайнер
сформулируйте задачу в виде логической цепочки.
Quote (AleksandrArchipov)
у меня есть на компьютере файл.txt в нем хранится определенная информация и есть файл база.txt в нем содержатся слова/группа слов, которые нужно найти в этом файл.txt.
тут понятно, но для метода решения имеет значение размер файл.txt в котором будет производиться поиск
Quote (AleksandrArchipov)
Причем нужно чтобы программа не сразу вся содержимое (файла база) искало, а по определенному алгоритму, например, построчно.
т.е. вначале прошаривало весь файл.txt по одному слову из базы, затем по другому, третьему? так до утра искать будет если например файлов.txt будет больше чем несколько, это нелогичное решение. И что вы хотите получить в итоге как результат работы? Разберитесь с этим.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениесформулируйте задачу в виде логической цепочки.
Quote (AleksandrArchipov)
у меня есть на компьютере файл.txt в нем хранится определенная информация и есть файл база.txt в нем содержатся слова/группа слов, которые нужно найти в этом файл.txt.
тут понятно, но для метода решения имеет значение размер файл.txt в котором будет производиться поиск
Quote (AleksandrArchipov)
Причем нужно чтобы программа не сразу вся содержимое (файла база) искало, а по определенному алгоритму, например, построчно.
т.е. вначале прошаривало весь файл.txt по одному слову из базы, затем по другому, третьему? так до утра искать будет если например файлов.txt будет больше чем несколько, это нелогичное решение. И что вы хотите получить в итоге как результат работы? Разберитесь с этим.

Автор - DEMBEL
Дата добавления - 23 Марта 2012 в 10:40
mishemДата: Пт, 23 Марта 2012, 10:49 | Сообщение # 4
Эксперт форума
DEMBEL, здесь пока только вопрос, можно ли?
Можно.

Quote (DEMBEL)
имеет значение размер файл.txt в котором будет производиться поиск

А какое это имеет значение? Мы ж можем файл вообще не открывать. Читать построчно из самого файла.
Что именно и надо.
Quote (DEMBEL)
если например файлов.txt будет больше чем несколько,

Насколько я понял, файл один.

Да и если у него база в текстовом файле, то может лучше перегнать в файл базы данных?


Не хочешь читать хелп?

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



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеDEMBEL, здесь пока только вопрос, можно ли?
Можно.

Quote (DEMBEL)
имеет значение размер файл.txt в котором будет производиться поиск

А какое это имеет значение? Мы ж можем файл вообще не открывать. Читать построчно из самого файла.
Что именно и надо.
Quote (DEMBEL)
если например файлов.txt будет больше чем несколько,

Насколько я понял, файл один.

Да и если у него база в текстовом файле, то может лучше перегнать в файл базы данных?

Автор - mishem
Дата добавления - 23 Марта 2012 в 10:49
AleksandrArchipovДата: Пт, 23 Марта 2012, 11:38 | Сообщение # 5
Новичок
Вот, теперь должно быть все понятно.
Прикрепления: 3302272.rar(2.9 Kb)
 
СообщениеВот, теперь должно быть все понятно.

Автор - AleksandrArchipov
Дата добавления - 23 Марта 2012 в 11:38
mishemДата: Пт, 23 Марта 2012, 12:05 | Сообщение # 6
Эксперт форума
Ну вот, теперь более менее понятно, правда не совсем.
:)

На сколько понял...

FileRead "[PubDir]база.txt" "All" "[baza]"
StrParse "[baza]" "[#13][#10]" "[stroka]" "[kol]"

В переменных [stroka1],[stroka2]....
Будут строки.

Можно еще файл открывать сразу в листбоксе, и получать содержимое определенной строки.
Можно сразу получать содержимое определенной строки

FileRead "[PubDir]база.txt" "3" "[baza]"
Получим в переменну [baza] содержимое 3 строки.


Не хочешь читать хелп?

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



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеНу вот, теперь более менее понятно, правда не совсем.
:)

На сколько понял...

FileRead "[PubDir]база.txt" "All" "[baza]"
StrParse "[baza]" "[#13][#10]" "[stroka]" "[kol]"

В переменных [stroka1],[stroka2]....
Будут строки.

Можно еще файл открывать сразу в листбоксе, и получать содержимое определенной строки.
Можно сразу получать содержимое определенной строки

FileRead "[PubDir]база.txt" "3" "[baza]"
Получим в переменну [baza] содержимое 3 строки.

Автор - mishem
Дата добавления - 23 Марта 2012 в 12:05
AleksandrArchipovДата: Пт, 23 Марта 2012, 13:19 | Сообщение # 7
Новичок
Да, все верно, спасибо. Буду пробовать.
 
СообщениеДа, все верно, спасибо. Буду пробовать.

Автор - AleksandrArchipov
Дата добавления - 23 Марта 2012 в 13:19
mishemДата: Пт, 23 Марта 2012, 13:36 | Сообщение # 8
Эксперт форума
AleksandrArchipov, надо не пробовать. Надо справку изучить. Форум почитать.
Это элементарный вопрос. Со строками, если собираетесь дальше где то использовать НБ, вам придется часто сталкиваться. Чтение,запись, из, в файл требуется практически в любом проекте.
Поняв на подсказке это, дальше последуют новые такие же вопросы. Это все есть в справочном файле. сть примеры, которые разобрав построчно, вы сможете уже многому научится.


Не хочешь читать хелп?

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



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеAleksandrArchipov, надо не пробовать. Надо справку изучить. Форум почитать.
Это элементарный вопрос. Со строками, если собираетесь дальше где то использовать НБ, вам придется часто сталкиваться. Чтение,запись, из, в файл требуется практически в любом проекте.
Поняв на подсказке это, дальше последуют новые такие же вопросы. Это все есть в справочном файле. сть примеры, которые разобрав построчно, вы сможете уже многому научится.

Автор - mishem
Дата добавления - 23 Марта 2012 в 13:36
DEMBELДата: Пт, 23 Марта 2012, 13:43 | Сообщение # 9
Наш дизайнер
не совсем, а что делать если в файле много совпадений? а если много таких файлов?

как читать файл построчно вам показали, но возможно еще получить весь файл в переменную а потом разобрать на строки в массив:

FileToVar "база.txt" "[Base]"
StrParse "[Base]" "[#13][#10]" "[BaseString]" "[num]"

Затем получить искомый файл в переменную и последовательно в цикле искать в нем строки из массива:

FileToVar "фаил, по которому производить поиск.txt" "[FileSearch]"

Loop "1" "[num]" "[i]"
SearchStr "[BaseString[i]]" "[FileSearch]" "[Found]" ""
If "[Found]" ">" "0"
AlertBox "Найдено" "Найдена строка [BaseString[i]], выходим..."
Exitloop
EndIf
EndLoop


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениене совсем, а что делать если в файле много совпадений? а если много таких файлов?

как читать файл построчно вам показали, но возможно еще получить весь файл в переменную а потом разобрать на строки в массив:

FileToVar "база.txt" "[Base]"
StrParse "[Base]" "[#13][#10]" "[BaseString]" "[num]"

Затем получить искомый файл в переменную и последовательно в цикле искать в нем строки из массива:

FileToVar "фаил, по которому производить поиск.txt" "[FileSearch]"

Loop "1" "[num]" "[i]"
SearchStr "[BaseString[i]]" "[FileSearch]" "[Found]" ""
If "[Found]" ">" "0"
AlertBox "Найдено" "Найдена строка [BaseString[i]], выходим..."
Exitloop
EndIf
EndLoop

Автор - DEMBEL
Дата добавления - 23 Марта 2012 в 13:43
AleksandrArchipovДата: Пт, 23 Марта 2012, 14:11 | Сообщение # 10
Новичок
mishem, спасибо, учту.
DEMBEL, спасибо.
 
Сообщениеmishem, спасибо, учту.
DEMBEL, спасибо.

Автор - AleksandrArchipov
Дата добавления - 23 Марта 2012 в 14:11
DeveloperДата: Пт, 23 Марта 2012, 23:38 | Сообщение # 11
Любопытный
Code
  
.Получаем кол-во строк в файле
FileLen "[adres_bd]" "[all]"
Если в файле больше нуля строк,то ставим в цикл и ищем.
If "[all]" ">" "0"
   Loop "1" "[all]" "[result]"
     FileRead "[adres_bd]" "[result]" "[FileLine]"
.Под условие. Если правильно то выдаем результаты поиска.
If "[FileLine]" "=" "[adres]"
AlertBox "Результаты поиска" "Запрос найден"
EndIf
EndIf
Exitloop   
EndLoop


Можно и так. Если база огромная то лучше пользоваться утилитами(NeoBookdb). Как мне тут советовали товарищи. Проверял на личном опыте.


:mda:

Сообщение отредактировано
Developer - Пт, 23 Марта 2012, 23:44
 
Сообщение
Code
  
.Получаем кол-во строк в файле
FileLen "[adres_bd]" "[all]"
Если в файле больше нуля строк,то ставим в цикл и ищем.
If "[all]" ">" "0"
   Loop "1" "[all]" "[result]"
     FileRead "[adres_bd]" "[result]" "[FileLine]"
.Под условие. Если правильно то выдаем результаты поиска.
If "[FileLine]" "=" "[adres]"
AlertBox "Результаты поиска" "Запрос найден"
EndIf
EndIf
Exitloop   
EndLoop


Можно и так. Если база огромная то лучше пользоваться утилитами(NeoBookdb). Как мне тут советовали товарищи. Проверял на личном опыте.

Автор - Developer
Дата добавления - 23 Марта 2012 в 23:38
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Чтение и поиск по текстовому файлу (FileRead / FileToVar / StrParse / SearchStr)
  • Страница 1 из 1
  • 1
Поиск: