Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 28

Поиск записи в программе по различных полям без использования баз данных

11.10.2014, 16:18. Показов 1109. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Нужна помощь новичку.
Пытаюсь в С++ Builder 2009 создать простую программу для библиотеки без использования базы данных. Все хранится в текстовом файле.
Пишу следующее:
C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
void __fastcall TForm1::ButtonSearch2Click(TObject *Sender)
{
 wchar_t buff[40];
    if (lib.empty())
    {
        Application->MessageBox(L"Поиск невозможен. База пуста!",
            L"Поиск", MB_OK | MB_ICONERROR);
        return;
    }
 buff[0]='\0';
 bib s;
 vector <bib>::iterator p;
 if(RadioButtonGod->Checked){
 TInputDialog(this,L"Поиск",L"Введите искомый год",
 buff,sizeof(buff)).Execute();
 s.god=bib(buff)->Text.ToIntDef();
 p=find(lib.begin(),lib.end(),s);
 swprintf(buff,L"Год %i\n не найден",s.god);
 }
 if(RadioButtonKniga->Checked){
 TInputDialog(this,L"Поиск",L"Введите искомую книгу",
 buff,sizeof(buff)).Excute();
 s.kniga=bib(0,"",buff);
 p=find_if(lib.begin(),lib.end(),bind2nd(ptr_fun(Skniga),s));
 swprintf(buff,L"Книга %i\n не найдена",s.kniga);
 }
 if(RadioButtonAvtor->Checked){
 TInputDialog(this,L"Поиск",L"Введите искомого автора",
 buff,sizeof(buff)).Excute();
 s.avtor=bib(0,buff,"");
 p=find_if(lib.begin(),lib.end(),bind2nd(ptr_fun(Savtor),s));
 swprintf(buff,L"Автор \"%s\"\n не найден",s.avtor);
 }
 if(RadioButtonJanr->Checked){
 TInputDialog(this,L"Поиск",L"Введите искомый жанр",
 buff,sizeof(buff)).Excute();
 s.janr=bib(0,buff,"");
 p=find_if(lib.begin(),lib.end(),bind2nd(ptr_fun(Sjanr),s));
 swprintf(buff,L"Жанр %i\n не найден",s.janr);
 }
 if(p==lib.end()){
 Application->MessageBox(buff,L"Поиск",MB_OK|MB_ICONERROR);
 return;
 }
 iCur=p-lib.begin();
 ShowRecord;
}
При компиляции выдает ошибку
[BCC32 Error] Unit1.cpp(211): E2268 Call to undefined function 'TInputDialog'

Я понимаю, что идет вызов неизвестной функции. Но как это исправить, я не очень понимаю. Прошу помощи. Заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2014, 16:18
Ответы с готовыми решениями:

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

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

Поиск записи по двум любым полям, определенным в программе
Запрограммировать следующие процедуры и функции: а) поиск записи по двум любым полям, определенным в программе, б) вывод записи, в)...

11
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
11.10.2014, 16:22
es108, лови.
http://it.kgsu.ru/C_OWL/c_owl023.html
всё в примерах
0
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 28
11.10.2014, 16:46  [ТС]
Добавил #include <owl\inputdia.h>

Теперь ошибка : [BCC32 Error] Unit1.h(15): E2209 Unable to open include file 'owl\inputdia.h'

Зашел в C:\Program Files\CodeGear\RAD Studio\6.0\include\

Папки owl там даже и нет.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
11.10.2014, 16:54
Откуда ты взял этот TInputDialog? Упоминание о нем, я имею в виду... Есть InputBox, есть InputQuery, которые прекрасно подойдут для твоего случая.
0
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 28
11.10.2014, 17:25  [ТС]
то есть вместо строки
C++
1
2
TInputDialog(this,L"Поиск",L"Введите искомый год",
 buff,sizeof(buff)).Execute();
мне нужно

C++
1
InputQuery(L"Поиск", L"Введите год", buff);
Так?

Сделал, теперь пишет:

[BCC32 Error] Unit1.cpp(211): E2357 Reference initialized with 'wchar_t *', needs lvalue of type 'UnicodeString'
0
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
11.10.2014, 17:29
es108,
C++
1
2
String Value;
InputQuery("Окно для блаблабла", "Введите Value:", Value);
как пример
0
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 28
11.10.2014, 17:48  [ТС]
semihal,
Так я вроде бы так и сделал:
C++
1
2
3
4
5
6
7
8
9
buff[0]='\0';
 bib s;
 vector <bib>::iterator p;
 if(RadioButtonGod->Checked){
InputQuery("Поиск","Введите год",buff);
 s.god=bib(buff)->Text.ToIntDef();
 p=find(lib.begin(),lib.end(),s);
 swprintf(buff,L"Год %i\n не найден",s.god);
 }
Пишет [BCC32 Error] Unit1.cpp(211): E2357 Reference initialized with 'wchar_t *', needs lvalue of type 'UnicodeString'
0
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
11.10.2014, 17:56
Цитата Сообщение от es108 Посмотреть сообщение
Пишет [BCC32 Error] Unit1.cpp(211): E2357 Reference initialized with 'wchar_t *', needs lvalue of type 'UnicodeString'
сделай buff не wchar_t а UnicodeString (include <string>)
0
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 28
11.10.2014, 18:29  [ТС]
Цитата Сообщение от semihal Посмотреть сообщение
сделай buff не wchar_t а UnicodeString (include <string>)
Это как?
C++
1
UnicodeString buff[40];
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
11.10.2014, 18:32
es108, ну и долго ты будешь скрывать, что за фигня у тебя подразумевается под bib, и что за lib? Сразу бы написал - уже давно работающий код бы привели. Так нет, посты набиваешь, что-ли?
0
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 28
12.10.2014, 13:17  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Так нет, посты набиваешь, что-ли?
Даже в мыслях не было
C++
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
struct bib{
        char kniga[50];
        char avtor[20];
        int god;
        char janr[20];
        friend bool operator<(const bib& a,const bib& b)
        { return a.god<b.god; }         // сортировка по полю год
        friend bool operator==(const bib& a,const bib& b)
        { return a.god==b.god; }        // поиск по полю год
        friend bool Bkniga(const bib& a, const bib& b)
        {return strcmp(a.kniga,b.kniga)<0;}
        friend bool Bavtor(const bib& a, const bib& b)
        {return strcmp(a.avtor,b.avtor)<0;}
        friend bool Bjanr(const bib& a, const bib& b)
        {return strcmp(a.janr,b.janr)<0;}
        friend bool Skniga(const bib& a, const bib& b)
        {return !strcmp(a.kniga,b.kniga);}
        friend bool Savtor(const bib& a, const bib& b)
        {return !strcmp(a.avtor,b.avtor);}
        friend bool Sjanr(const bib& a, const bib& b)
        {return !strcmp(a.janr,b.janr);}
};
using namespace std;
extern vector <bib> lib;
extern int iMax,iCur;
Добавлено через 18 часов 37 минут
Помогите разобраться, как все таки поиск сделать.
0
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 28
25.10.2014, 18:12  [ТС]
Вопрос остается актуальным. Пожалуйста помогите разобраться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2014, 18:12
Помогаю со студенческими работами здесь

Как создать форму авторизации без использования баз данных используя блокнот?
Как?

Как сделать простейший поиск по сайту на html без баз данных
Добрый день. Как новичок в вопросе, понимаю, насколько тяжело объяснять таким как я примитивные вещи. Я делаю сайт уже более 10...

Поддержка различных типов баз данных
Добрый день. Возник такой вопрос: возможно ли с помощью Qt организовать поддержку нескольких типов баз данных? Т.е. разработать такое...

Можно ли сделать профессиональный сайт на PHP без использования различных движков
Вот просто интересно, обязательно ли использовать всякие движки типа Joomla, или можно и самому сделать нормальный сайт? И на сколько это...

Записи. Поиск записей с одинаковым значением по двум полям
нужно сделать процедурку которая будет искать записи с одинаковым значением по двум полям. примерно как это будет выглядеть?


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru