Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
1

Поиск по файлу

04.05.2011, 12:10. Показов 1881. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ, помогите нужен ваш совет. Допустим у меня есть три Edit Фамилия, имя и отчество. Как сделать так чтобы если я ввел Петров Иван, то находило разных Петров Иван Генадьевич, Петров Иван Сергеевич, т.е. если Edit пустой его не учитывать как условие
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2011, 12:10
Ответы с готовыми решениями:

Поиск по Ini-файлу и вывод, как поиск Гугла
В общем такой вопрос, вот в ини файле есть данные. Как реализовать вывод их как в поиске гугл. Мы...

Поиск по файлу c++
Есть файл примерно такого содержания: Петров 5 Иванов 4 Сидоров 5 Васильев 5 Стоит задача...

поиск по файлу
Дан файл f, который содержит номера телефонов сотрудников учреждения: указывается фамилия,...

Поиск по файлу
Добрый день. Имеется файл.txt в котором хранятся такие вот блоки => Array ( ...

14
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
04.05.2011, 12:15 2
homers,
в каком виде хранятся данные с ФИО? Каждое ФИО - это отдельный файл с именем ФИО?
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 12:19  [ТС] 3
ну это файл записей типизированный.ФИО обычная строка. Просто не знаю как реализовать это
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
04.05.2011, 12:28 4
homers,
Так чего сложного?
Перебирай записи и проверяй, входит ли в переменную с ФИО слово сначала из одного Edit, и если да - то входит ли в ФИО слово из другого Edit. Если все поиски дали положит. результат, то это тот тип, которого ты искал.
Поиск на вхождение нужного слова в строке осуществляй при помощи Pos
1
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 12:45  [ТС] 5
Частично понял конечно. Но pos возвращает же положение. Т.е. у меня заполненные поля должны быть как условие, а пустые просто должны не учитываться.
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
04.05.2011, 12:47 6
POS можно использовать не только для определения положения текста в строке, но и как определение есть ли он там вобще. Если есть тогда то что нужно, нету значит дальше
1
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 12:54  [ТС] 7
Понял спасибо а не могли бы привести пример? Если не трудно
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
04.05.2011, 12:58 8
пример файла:
Петров Иван Генадьевич

Петров Иван Сергеевич

Delphi
1
2
3
4
5
6
while not eof(file) do
begin
readln(file,stroka);
if pos(stroka,edit1.text+' '+edit2.text)<>0 then
...
end;
при поиске Сергеевич сработает только 3 строчка и т.д. (это к примеру). Но есть пару ньюансов и в этом случае которые надо исключить. Выше описано что именно
1
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 13:06  [ТС] 9
а если я сделаю pos('',edit1.text) что он мне выдаст ноль?
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
04.05.2011, 13:08 10
искать текст в пустоте... интересный пример
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 13:15  [ТС] 11
наоборот хотел написать пустоту в тексте

Добавлено через 4 минуты
я понял, что если у меня ниодного условия не выполнилось то элемент нам не подоходит и мы сканируем следующий, а если мне надо проверить ФИО, год рождения и Место рождения,если я не введу место рождения то это условие просто не учитывается

ЗЫ.Извините,что туплю
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
04.05.2011, 13:17 12
ну это уже исключениями и проверками. думаю можно решить и самостоятельно
1
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 13:18  [ТС] 13
Ладно всё равно спасибо
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
04.05.2011, 14:11 14
homers,
Рассмотри такой подход
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button1Click(Sender: TObject);
Var
str,FIO,DMY,City:string;
begin
  {один из элементов Record}
 FIO:='Сергеев Дмитрий Николаевич';
 DMY:='30.03.1980';
 City:='Москва';
 
 str:= FIO+' '+DMY+' '+ City;
 
 Memo1.Lines.Delimiter:='.'; //Дополнительно  разбиваем текст ориентируясь по точкам. По пробелам текст разбивается по умолчанию
 Memo1.Lines.DelimitedText:=str;
 // теперь в memo1 будет текст
 {
   Сергеев
   Дмитрий
   Николаевич
   30
   03
   1980
   Москва
}
// осталось каждую строку сравнить со своим Edit. Если Edit пустой, или есть совпадение,
// то переходить к анализу следующего Edit, иначе - конец анализа. Человек не найден.
memo использовал для наглядности. Можно динамически создать StringList, например.
1
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 14:37  [ТС] 15
спасибо огромное теперь всё понял)) сто пудово)
0
04.05.2011, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2011, 14:37
Помогаю со студенческими работами здесь

Поиск по файлу
Напишите программу, которая в файле данных о химических элементах (должны присутствовать название,...

Поиск по файлу
Вчера написал подобие списка контактов с записью в файл. Пытаюсь научиться делать поиск по...

Поиск по файлу
Зравствуйте. Объясните как решить проблему. Код: static void Main(string args) {...

Поиск по файлу
Добрый день. Как вывести все фразы из текстовика, которые соответствуют регулярному выражению, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru