2 / 2 / 1
Регистрация: 31.05.2014
Сообщений: 169

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

24.07.2014, 12:52. Показов 4032. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru