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

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

24.07.2014, 12:52. Показов 4018. Ответов 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
9946 / 6481 / 2460
Регистрация: 21.01.2014
Сообщений: 27,465
Записей в блоге: 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
9946 / 6481 / 2460
Регистрация: 21.01.2014
Сообщений: 27,465
Записей в блоге: 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
9946 / 6481 / 2460
Регистрация: 21.01.2014
Сообщений: 27,465
Записей в блоге: 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
9946 / 6481 / 2460
Регистрация: 21.01.2014
Сообщений: 27,465
Записей в блоге: 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
9946 / 6481 / 2460
Регистрация: 21.01.2014
Сообщений: 27,465
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru