Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2013, 15:54   #1
arkadihard
Форумчанин
 
Регистрация: 01.02.2012
Сообщений: 109
Восклицание как искать в txt

Я чайник, потому попроще плиз.

Как сделать так, чтобы при вводе слово (к примеру лук) в Edit1 и нажатии кнопки button1.
Делался поиск в текстовом документе по ключевому слову (лук) а результат выводился в memo1?
arkadihard вне форума Ответить с цитированием
Старый 16.03.2013, 15:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вкратце? Открываешь файл средствами языка. В цикле считываешь его данные сверяя с искомым словом. Если нашлось - выводишь в Мемо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2013, 16:02   #3
arkadihard
Форумчанин
 
Регистрация: 01.02.2012
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вкратце? Открываешь файл средствами языка. В цикле считываешь его данные сверяя с искомым словом. Если нашлось - выводишь в Мемо.
А если развернуто? сегодня первый раз открыл Lazarus. До этого работал только в Doom и StarCraft/.

По то же теме из Другова форума.

Код:
 Var SL: TStringList;
    i, s: integer;
    filename: string;
begin
filename:= 'лук.txt'; // это сам файл txt если я правильно понял?
SL:= TStringList.Create;
SL.LoadFromFile(filename); // это загрузка?
for i:= 0 to SL.Count-1 do
if pos('лук', SL.Strings[i])<>0 then Inc(s); // это результат что происходит если совпало или нет?
Memo1.Lines.Add(IntToStr(s));
end;
А если введем (Рис) то нечего не произойдёт?
Нужно, чтобы происходил поиск в txt по продуктам. И если результат успешный, выводился рецепт или список рецептов. А если результат отрицательный то сообщение о том что рецепт отсутствует.

Последний раз редактировалось Stilet; 16.03.2013 в 17:29.
arkadihard вне форума Ответить с цитированием
Старый 16.03.2013, 17:31   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А если развернуто?
А что ж ты ЯВУ не указываешь? Сам виноват.
Цитата:
это сам файл txt если я правильно понял?
Да.
Цитата:
это загрузка?
Да.
Цитата:
это результат что происходит если совпало или нет?
Да.
Цитата:
А если введем (Рис) то нечего не произойдёт?
Да.
Цитата:
И если результат успешный, выводился рецепт или список рецептов.
Такие поиски напрямую зависят от того что в файле написано.
Советую забыть о ТХТ и изучать INI файлы или базы данных для такой задачи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2013, 17:33   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от arkadihard Посмотреть сообщение
А если введем (Рис) то нечего не произойдёт?
Нужно, чтобы происходил поиск в txt по продуктам. И если результат успешный, выводился рецепт или список рецептов. А если результат отрицательный то сообщение о том что рецепт отсутствует.
Подозреваю, Вы неправильно сформулировали условие в первом сообщении.
Если ввести "рис", то правильно написанная программа по этому условию должна найти слово "игристый".
Вы уверены, что это именно то, что Вам нужно?
s-andriano вне форума Ответить с цитированием
Старый 16.03.2013, 22:40   #6
arkadihard
Форумчанин
 
Регистрация: 01.02.2012
Сообщений: 109
По умолчанию

Так, немного сам разобрался. И вас запутал.
Выяснил на соседнем форуме. Что про TXT действительно лучше забыть.
Для этой задачи мне посоветовали СУБД access.
Теперь встал вопрос о заполнении таблицы.
Я на Lazarus смонтировал визуальное окно, которое можно сделать как модуль, который будет заполнять ячейки access необходимыми данными



Или я опять что-то напутал.
arkadihard вне форума Ответить с цитированием
Старый 16.03.2013, 23:24   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для начала разберись с компонентами ODBC Лазаря, как подключаться к акцессу, а уже потом монтируй.
Читай про TODBCConnection, TSQLQuery и TSQLTransaction. Плюс ко всему нужно знать сам по себе SQL, хотя бы его основы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2013, 23:39   #8
arkadihard
Форумчанин
 
Регистрация: 01.02.2012
Сообщений: 109
По умолчанию

Жесть. Вроде такая простенькая программка....
Ну, что будим учится лет 5, чтобы ее написать, нечего не поделать.
Начинают руки опускается.
arkadihard вне форума Ответить с цитированием
Старый 17.03.2013, 00:02   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Начинают руки опускается.
Слабак значит.
Цитата:
будим учится лет 5
5 лет? Чему? Этому?:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  SQLQuery1.DataBase:=ODBCConnection1;
  SQLTransaction1.DataBase:=ODBCConnection1;
  ODBCConnection1.FileDSN:=ExtractFileName(ParamStr(0))+'access.dsn';
  SQLQuery1.SQL.Text:='select * from table1';
  SQLQuery1.Open;
end;
Создаешь ODBC подключение в DSN файл типа:
Код:
[ODBC]
DRIVER=Driver do Microsoft Access (*.mdb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=MS Access
DriverId=25
DefaultDir=d:\1\
DBQ=d:\1\База.mdb
На форму кидаешь это:
Код:
    Datasource1: TDatasource;
    DBGrid1: TDBGrid;
    ODBCConnection1: TODBCConnection;
    SQLQuery1: TSQLQuery;
    SQLTransaction1: TSQLTransaction;
И пишешь код, вроде того что я дал выше.

И этому ты собрался 5 лет учится? Может лучше вообще тогда не начинать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2013, 00:45   #10
arkadihard
Форумчанин
 
Регистрация: 01.02.2012
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Слабак значит.
Как только ты это сказал, у меня сразу появилось опять желание.
Просто всё это так сложно. Я сутки сижу и пытаюсь хоть что-нибудь понять.
Я кроме как в Lazarus создавать не рабочие окошки больше нечему не научился.
Конечно, я не говорю, что надо его выучить за 2 дня, понимаю, что это не простой и долгий процесс, ну как минимум, полгода.
Но на том материале, на котором написаны книги, монотонно и скучно.
Вот я поставил перед собой задачу с этой программой (думал что простенькая)
Наверно просто следует передохнуть, покушать и поспать. А проснувшись, попытается сделать эту программу.
arkadihard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как искать компоненты по признаку? DeveloPerchik Общие вопросы Delphi 5 17.07.2012 12:11
Как скопировать текст с файла 1.txt и записать в 2.txt Kasper1 Общие вопросы по Java, Java SE, Kotlin 1 14.12.2010 05:56
Оптимальный способ искать слова в текстовой (txt) базе. Alex Cones Общие вопросы Delphi 36 02.10.2009 17:18
Как искать метод, свойство.... Elm0 Свободное общение 8 29.05.2008 10:12
Как прочесть txt файл www.site.ru/info.txt BR17UY Работа с сетью в Delphi 1 16.04.2007 13:01