Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

Возможно ли сократить код

25.05.2010, 15:05. Показов 927. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые товарищи программисты

Помогите решить такую задачу

У меня есть база данных аксес в ней есть таблица в этой таблице 14 полей, я сделал конвертацию отчёта в ворд.
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[B][/B][COLOR=#000000]while(!ADOQuery1->Eof)
 {
 
  vVarCell=vVarTable.OleFunction("Cell",i+1,1);
  vVarCell.OlePropertySet("VerticalAlignment",1);
  vVarCell.OleFunction("Select");
  v=Word.OlePropertyGet("Selection").OlePropertyGet("Font");
  v.OlePropertySet("Size",10);
  vVarCell.OlePropertyGet("Range").
           OlePropertySet("Text",ADOQuery1->FieldByName("Invent_Nmber")->AsString.c_str());
  
 
  vVarCell=vVarTable.OleFunction("Cell",i+1,2);
  vVarCell.OlePropertySet("VerticalAlignment",1);
  vVarCell.OleFunction("Select");
  v=Word.OlePropertyGet("Selection").OlePropertyGet("Font");
  v.OlePropertySet("Size",10);
  vVarCell.OlePropertyGet("Range").
           OlePropertySet("Text",ADOQuery1->FieldByName("Number_in_Lan")->AsString.c_str());[/COLOR][COLOR=#000000]}[/COLOR] }
Так вот вопрос нельзя ли как-то сократить этот код чтобы он был
компактнее, и чтобы оно само выбирало поля таблицы в цикле, а то мне
приходится 14 раз писать одно и тоже только менять название полей
приходится.

Заранее благодарен за ответ
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2010, 15:05
Ответы с готовыми решениями:

Сократить код
Помогите, пожалуйста, как-нибудь сократить код. Слишком он большой! ...

Как сократить код!
Помогите мне избавится он кода спагетти! Например! if (Button1 \\и Button2 и Button3 и.т.д// ->Left == 10) ...........?;

Как сократить код?
Всем привет! Есть следующий код на c++ Builder: Edit1->Text="1"; Edit2->Text="2"; Edit3->Text="3"; ...

3
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
25.05.2010, 15:44
Code
1
ADOQuery1->FieldByNumber(/*сюда загоняешь счетчик из цикла*/)...
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.05.2010, 17:33  [ТС]
Цитата Сообщение от oxotnik Посмотреть сообщение
Code
1
ADOQuery1->FieldByNumber(/*сюда загоняешь счетчик из цикла*/)...
Нету такой функции FieldByNumber

Добавлено через 6 минут
Вернее функция есть только она не записывается как ты показал.

Добавлено через 22 минуты
Пробывал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
 while(!ADOQuery1->Eof)
 {
 
  vVarCell=vVarTable.OleFunction("Cell",i+1,a+1);
  vVarCell.OlePropertySet("VerticalAlignment",1);
  vVarCell.OleFunction("Select");
  v=Word.OlePropertyGet("Selection").OlePropertyGet("Font");
  v.OlePropertySet("Size",10);
  vVarCell.OlePropertyGet("Range").
         OlePropertySet("Text",ADOQuery1->FieldByName(IntToStr(ADOQuery1->Fields->FieldByNumber(a)))->AsString.c_str());
 
 }
Ошибка вылазит

Field [0] not found
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
26.05.2010, 10:51
Sasha,научись пользоваться встроенной справкой - много нового узнаешь.
а по теме: основной принцип - перебрать поля по индексу, индекс задается в цикле, куда его (индекс этот) конкретно подставлять, см. встроенную справку.
(у меня ее нет, впрочем как и билдера, так что более конкретно подсказать не могу)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2010, 10:51
Помогаю со студенческими работами здесь

Из dbedit в шаблон word. Сократить имеющийся код
Есть код, который выводит из DBEdit-ов информацию в заготовленный шаблон Word. void __fastcall TForm1::Button32Click(TObject *Sender) ...

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

Возможно ли сократить код программы?
Всем привет! Недавно нашел на ваш форум, перечитал много тем и теперь сам хочу задать вопрос. Суть вопроса: есть условие задачи и есть...

Возможно ли сократить код и не проиграть в производительности?
if (_keyId % 2 == 0) { var t = new Thread(delegate () { LeftClick(_hitEnd); }); ...

Скажите, пожалуйста, возможно ли код сократить еще?
Вот код моей программы. #include <fstream> int a,b,c; main(){ std::fstream i("input.txt"),o("output.txt", 2); ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru