Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
#1

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

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

Народ, помогите нужен ваш совет. Допустим у меня есть три Edit Фамилия, имя и отчество. Как сделать так чтобы если я ввел Петров Иван, то находило разных Петров Иван Генадьевич, Петров Иван Сергеевич, т.е. если Edit пустой его не учитывать как условие

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2011, 12:10
Ответы с готовыми решениями:

Поиск по текстовому файлу
Привет, кто может подсказать, как сделать поиск по файлу, если искомое слово...

Поиск по txt файлу
Есть txt файл со списком имен. Подскажите, как прописать поиск по нему, с...

поиск по текстовому файлу
Прошу помощи.. Нужно делать поиск по текстовому файлу следующего формата.....

Поиск по файлу и чтение из него
Есть два файла вопросы.txt, и ответы.txt. Надо случайным образом набрать...

Поиск окна по его EXE-файлу
Доброго времени суток. Вот задали задачку: "Переименовать окно чужой...

14
Евгений В
875 / 644 / 128
Регистрация: 01.03.2010
Сообщений: 1,209
04.05.2011, 12:15 #2
homers,
в каком виде хранятся данные с ФИО? Каждое ФИО - это отдельный файл с именем ФИО?
0
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 12:19  [ТС] #3
ну это файл записей типизированный.ФИО обычная строка. Просто не знаю как реализовать это
0
Евгений В
875 / 644 / 128
Регистрация: 01.03.2010
Сообщений: 1,209
04.05.2011, 12:28 #4
homers,
Так чего сложного?
Перебирай записи и проверяй, входит ли в переменную с ФИО слово сначала из одного Edit, и если да - то входит ли в ФИО слово из другого Edit. Если все поиски дали положит. результат, то это тот тип, которого ты искал.
Поиск на вхождение нужного слова в строке осуществляй при помощи Pos
1
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 12:45  [ТС] #5
Частично понял конечно. Но pos возвращает же положение. Т.е. у меня заполненные поля должны быть как условие, а пустые просто должны не учитываться.
0
unick12345
1343 / 1034 / 151
Регистрация: 27.03.2009
Сообщений: 3,863
04.05.2011, 12:47 #6
POS можно использовать не только для определения положения текста в строке, но и как определение есть ли он там вобще. Если есть тогда то что нужно, нету значит дальше
1
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 12:54  [ТС] #7
Понял спасибо а не могли бы привести пример? Если не трудно
0
unick12345
1343 / 1034 / 151
Регистрация: 27.03.2009
Сообщений: 3,863
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
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 13:06  [ТС] #9
а если я сделаю pos('',edit1.text) что он мне выдаст ноль?
0
unick12345
1343 / 1034 / 151
Регистрация: 27.03.2009
Сообщений: 3,863
04.05.2011, 13:08 #10
искать текст в пустоте... интересный пример
0
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 13:15  [ТС] #11
наоборот хотел написать пустоту в тексте

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

ЗЫ.Извините,что туплю
0
unick12345
1343 / 1034 / 151
Регистрация: 27.03.2009
Сообщений: 3,863
04.05.2011, 13:17 #12
ну это уже исключениями и проверками. думаю можно решить и самостоятельно
1
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 13:18  [ТС] #13
Ладно всё равно спасибо
0
Евгений В
875 / 644 / 128
Регистрация: 01.03.2010
Сообщений: 1,209
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
homers
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 29
04.05.2011, 14:37  [ТС] #15
спасибо огромное теперь всё понял)) сто пудово)
0
04.05.2011, 14:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 14:37

Ассосиация к файлу
Посдкажите как осуществить что бы я открывал файл с запускалась моя программа?

Путь к файлу
В программу добавляю картинку и текст. Нужно сохранить в поле ссылка путь до...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru