Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169

Поиск в базе по части строки Memo

24.07.2014, 12:52. Показов 4038. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем такой вопрос. В поле мемо считывается файл такого типа:
Номер документа Дата Фамилия
10/15/2001 13.01.2001 Иванова
37/43/2013 01.03.2013 Петров
и такого:
Номер документа=10/15/2001 Дата=13.01.2001 Фамилия=Иванова
Номер документа=37/43/2013 Дата=01.03.2013 Фамилия=Петров
надо чтоб по номеру документа из мемо искал данные в таблице и выводил их в другой мемо, как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.07.2014, 12:52
Ответы с готовыми решениями:

Поиск индекса строки MEMO
Как узнать индекс строки memo, зная первое слово этой строки? Т.е. существует к примеру строка "asd 123". Я задаю в поиск asd и...

Поиск слова в файле и вывод строки в поле Memo
Помогите написать код для кнопки после нажатия она должна считать даные с компонента Edit, проверить даные в файле и вивести рядок с...

Поиск по базе по части слова в DataSet (tableadapter)
Добрый день. Вот как я делаю поиск: plangamybaBindingSource.Filter = string.Format(" Like'" + textBox1.Text + "%'"); ...

63
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
25.07.2014, 06:51  [ТС]
Студворк — интернет-сервис помощи студентам
_Dimon_, по второму типу файла, с первым более-менее понятно, сделать так, чтоб находил номер документа и выводил информацию из базы о нём, если же такого номера нет, чтоб выдавал ошибку
0
Модератор
 Аватар для D1973
9948 / 6483 / 2461
Регистрация: 21.01.2014
Сообщений: 27,468
Записей в блоге: 3
25.07.2014, 06:57
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  String Num_Doc = ""; //Строковая переменная, куда записываем номер документа
  for(int i = 0; i < Memo1->Lines->Count; i++) //Идем циклом по компоненту Мемо1, куда уже загружен твой файл
   {
     String s = Memo1->Lines->Strings[i]; //Считываем из Мемо1 очередную строку и заносим ее в строковую переменную s
     if(s.Pos("/") != 0) Num_Doc = s.SubString(s.Pos("/") - 2, 10); 
//Если в строке s найден символ "/" (s.Pos("/") != 0) тогда вырезаем из строки s кусок, начиная 
//с позиции, где встретился символ "/" минус 2 символа. Количество вырезаемых символов == количеству 
//символов в номере документа, т.е. 10. 
//Вырезаный фрагмент записываем в строковую переменную Num_Doc = s.SubString(s.Pos("/") - 2, 10)
    ShowMessage(Num_Doc);
     //А тут, когда номер документа получен, можно организовать поиск по базе
     //и вывод куда надо...
   }
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
25.07.2014, 07:17
D1973, да, конечно можно, ты ж не первый день )))))
Просто хотелось одним махом. Я уверен, что так можно, но не знаю как. Попробую, может че и получится

Добавлено через 13 минут
Safer54rus, по второму типу файла все работает отлично, а если так, то для первого типа используй код SatanaXIII, тот что он тебе раньше написал...


Я не знаю как кто, а я сначала пишу программу, чтоб она работала (типа фльфа), а уже потом начинаю код оптимизировать, похожий код - в отдельную фукнццию ..... и тд и тп ...............
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
25.07.2014, 07:52  [ТС]
А ещё такой вопрос, есть ещё ексель файл в формате как первый:
Фамилия Номер документа Дата
Иванова 10/15/2001 13.01.2001
Петров 37/43/2013 01.03.2013
Так же надо чтоб считывал файл (выбираем сами) и так же, по номеру документа, искал информацию, тут же проще?
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
25.07.2014, 08:16
Safer54rus, какую тебе информацию нужно и в каком формате данные?

Добавлено через 4 минуты
формат понял, сам считаешь ))
а вот какие именно данные ?

Добавлено через 1 минуту
номер договора?

Добавлено через 11 минут
\s(.*?/.*?/.*?)\s регулярка, думаю подойдет

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

Добавлено через 3 минуты
\\s(.*?/.*?/.*?)\\s, забыл сказать, в с++ слешы надо экранировать, если пишешь в коде
0
Модератор
 Аватар для D1973
9948 / 6483 / 2461
Регистрация: 21.01.2014
Сообщений: 27,468
Записей в блоге: 3
25.07.2014, 08:22
Цитата Сообщение от _Dimon_ Посмотреть сообщение
может есть лучшее решение твоей задачи
Вот-вот, именно. Safer54rus, опиши свою задачу полностью, а то так можно до собачей пасхи куски писать, которые потом друг с другом не стыкуются.
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
25.07.2014, 08:29  [ТС]
D1973, в общем, если конкретизировать, выбираем файл, сейчас их дали к екселе:
Фамилия Номер документа Дата
Иванова 10/15/2001 13.01.2001
Петров 37/43/2013 01.03.2013
Надо чтоб из файла брались номера документов и сверялись с базой и, если информация есть в базе по этим номерам, то выводить её, если нет, то выдавать ошибку "Данный номер документа не обнаружен"
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
25.07.2014, 08:49
то мой пример тебе подходит

Добавлено через 5 минут
Safer54rus, какая версия билдера?
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
25.07.2014, 08:51  [ТС]
_Dimon_, 6, надо для самообучения...друг работает прогером, но на объяснения у него времени нет, поэтому даёт задания, посоветовал этот форум
0
25.07.2014, 08:58

Не по теме:

Цитата Сообщение от Safer54rus Посмотреть сообщение
друг работает прогером, но на объяснения у него времени нет, поэтому даёт задания, посоветовал этот форум
Хороший знач друг и хорошо посоветовал

0
Модератор
 Аватар для D1973
9948 / 6483 / 2461
Регистрация: 21.01.2014
Сообщений: 27,468
Записей в блоге: 3
25.07.2014, 09:11
Если работать с Екселем, то там, я так понимаю, номер документа уже идет в отдельной колонке, ничего парсить не надо, только значение получить. Как работать с Екселем из C++Builder почитай тут и тут
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
25.07.2014, 09:15
D1973, может я кое что пропустил, но екселя точно не заметил
0
Модератор
 Аватар для D1973
9948 / 6483 / 2461
Регистрация: 21.01.2014
Сообщений: 27,468
Записей в блоге: 3
25.07.2014, 09:18
Цитата Сообщение от Safer54rus Посмотреть сообщение
А ещё такой вопрос, есть ещё ексель файл в формате как первый:

Не по теме:

Аппетиты растут :D

0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
25.07.2014, 09:25
Для парсинга простого текста регулярные выражения подходят как не крути, правда если сложно парсить

Добавлено через 6 минут
Цитата Сообщение от Safer54rus Посмотреть сообщение
А ещё такой вопрос, есть ещё ексель файл в формате как первый:
Фамилия Номер документа Дата
Иванова 10/15/2001 13.01.2001
Петров 37/43/2013 01.03.2013
Так же надо чтоб считывал файл (выбираем сами) и так же, по номеру документа, искал информацию, тут же проще?

D1973, извини, не заметил, но отвечу на вопрос ТС - НЕТ. Самый приближенный к текстовому формату это CSV;
0
Модератор
 Аватар для D1973
9948 / 6483 / 2461
Регистрация: 21.01.2014
Сообщений: 27,468
Записей в блоге: 3
25.07.2014, 09:34
Цитата Сообщение от _Dimon_ Посмотреть сообщение
\\s(.*?/.*?/.*?)\\s
Эта регулярка пойдет и для первого и для второго типа текстовика, я так понимаю?

Не по теме:

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


А на счет того, чтобы работать с Екселем, там же можно такой финт ушами сделать:
1. Открываем файл ОпенДиалогом
2. Если расширение XLS - работаем с Екселем, как показано в темах, что я ТС написал
3. Если расширение TXT - применяем твою регулярку.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
25.07.2014, 09:39
Стойте, стойте, стойте. Что за хрень сейчас происходит?

Safer54rus, опишите пожалуйста вашу конкретную задачу. У вас есть то-то, то-то, то-то, такие-то файлы; сделать надо то-то и то-то; с помощью того-то и того-то.
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
25.07.2014, 09:52
D1973, увы не подойдет, она подходит для Поиск в базе по части строки Memo

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

Добавлено через 2 минуты
Кстати, вот тема с регулярками. Все доступно и просто.
https://www.cyberforum.ru/post2282832.html

Добавлено через 8 минут
Safer54rus, опиши нормально свою задачу:
- откуда берутся данные (а вдруг из CSV)
- как закидаются (в программу)
- что нужно вытянуть (правда, уже знаем)

гостайны от тебя не требуем ))))
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
25.07.2014, 09:58  [ТС]
_Dimon_, SatanaXIII,
1.из экселя-это уже точно, формат xls
2.ну я хочу сделать, чтоб файл загружался в DBGrid или в StringGrid, но я не знаю как сделать, чтоб можно было выбирать файл, а не задавать путь в программе
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
25.07.2014, 10:09
Safer54rus, давайте я попробую.

Из входного файла xls, который может содержать несколько различных вариантов форматирования (см. пост #1), требуется извлекать из каждой строки номер документа, и искать файл с таким именем в заранее указанной папке. При нахождении очередного файла выводить его содержимое в виде таблицы (в DBGrid или в StringGrid).

Все так? Никаких больше сюрпризов?
Какое расширение у файлов для поиска? Как отформатировано содержимое этих файлов?
0
2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169
25.07.2014, 10:13  [ТС]
SatanaXIII, искать не в папке, а в базе данных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2014, 10:13

Поиск строки в Memo по фильтру
Здравствуйте, ну расскажу так, мне нужно 1) в memo1 найти строчку по фильтру 2) надо скопировать эту строчку 3) вставить в memo2

Поиск в Memo уникальной строки (Delphi)
Уважаемые программисты! В Memo есть строка, которая встречается один раз, все остальные строчки повторяются. Необходимо найти эту одну...

Поиск значений (строки) из Memo в таблице
В Таблице 3 записи, а в Memo - 5. Необходимо по кнопке показать сообщения (один за другим) с номерами которых нет. То есть;...

Поиск по части строки
Суть в чем. Есть контейнеры с данными. примерная разметка &lt;input type=&quot;text&quot;&gt; &lt;button...

Поиск строки в Memo или через типизированные файлы
В общем, ребята, суть такая: по заданию в программе мне необходимо предусмотреть возможность ввода информации (название, номер и тип...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru