Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 25 / 13
Регистрация: 30.04.2014
Сообщений: 516
1

Сократить размер кода

24.04.2017, 17:26. Показов 458. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Подскажите, можно ли этот код как-нибудь сократить?
Delphi
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
48
49
50
51
52
53
54
55
// 1ый канал
if
(DataModule2.adoquery1.FieldByName('CH1').asstring<>'') and
(DataModule2.adoquery1.FieldByName('CH2').asstring='') and
(DataModule2.adoquery1.FieldByName('CH3').asstring='') and
(DataModule2.adoquery1.FieldByName('CH4').asstring='') then
App.ActiveDocument.Tables.Item(2).Cell(i+2,1).Range.Text:=
'Рис.4.'+inttostr(DataModule2.adoquery1.recno)+
#13#10+
DataModule2.adoquery1.FieldByName('CH1').asstring+' - '+
DataModule2.adoquery1.FieldByName('Точка1').asstring+' '+
DataModule2.adoquery1.FieldByName('№точки1').asstring+', '+
DataModule2.adoquery1.FieldByName('Датчик1').asstring;
 
// 2ой канал
if
(DataModule2.adoquery1.FieldByName('CH1').asstring='') and
(DataModule2.adoquery1.FieldByName('CH2').asstring<>'') and
(DataModule2.adoquery1.FieldByName('CH3').asstring='') and
(DataModule2.adoquery1.FieldByName('CH4').asstring='') then
App.ActiveDocument.Tables.Item(2).Cell(i+2,1).Range.Text:=
'Рис.4.'+inttostr(DataModule2.adoquery1.recno)+
#13#10+
DataModule2.adoquery1.FieldByName('CH2').asstring+' - '+
DataModule2.adoquery1.FieldByName('Точка2').asstring+' '+
DataModule2.adoquery1.FieldByName('№точки2').asstring+', '+
DataModule2.adoquery1.FieldByName('Датчик2').asstring;
 
// 3ий канал
if
(DataModule2.adoquery1.FieldByName('CH1').asstring='') and
(DataModule2.adoquery1.FieldByName('CH2').asstring='') and
(DataModule2.adoquery1.FieldByName('CH3').asstring<>'') and
(DataModule2.adoquery1.FieldByName('CH4').asstring='') then
App.ActiveDocument.Tables.Item(2).Cell(i+2,1).Range.Text:=
'Рис.4.'+inttostr(DataModule2.adoquery1.recno)+
#13#10+
DataModule2.adoquery1.FieldByName('CH3').asstring+' - '+
DataModule2.adoquery1.FieldByName('Точка3').asstring+' '+
DataModule2.adoquery1.FieldByName('№точки3').asstring+', '+
DataModule2.adoquery1.FieldByName('Датчик3').asstring;
 
// 4ый канал
if
(DataModule2.adoquery1.FieldByName('CH1').asstring='') and
(DataModule2.adoquery1.FieldByName('CH2').asstring='') and
(DataModule2.adoquery1.FieldByName('CH3').asstring='') and
(DataModule2.adoquery1.FieldByName('CH4').asstring<>'') then
App.ActiveDocument.Tables.Item(2).Cell(i+2,1).Range.Text:=
'Рис.4.'+inttostr(DataModule2.adoquery1.recno)+
#13#10+
DataModule2.adoquery1.FieldByName('CH4').asstring+' - '+
DataModule2.adoquery1.FieldByName('Точка4').asstring+' '+
DataModule2.adoquery1.FieldByName('№точки4').asstring+', '+
DataModule2.adoquery1.FieldByName('Датчик4').asstring;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2017, 17:26
Ответы с готовыми решениями:

Как сократить размер кода?
понимаю код ужас. Помогите его правильно уменьшить, а то я одно и тоже могу писать километрами ...

Сократить размер программы
скажите пожалуйста, мне нужно сократить размер этой программки(т.е. убрать лишние строчки), можно...

Повторяющиеся div- как сократить размер документа?
Здравствуйте! Есть 15 повторяющих div в HTML странице: &lt;div id=&quot;open_RuBizCSS3Modal-6&quot;...

Сократить запись кода
Привет всем. Тут такое вот дело. Учитель спросил как можно записать tmp = a; a = b; b = tmp;не...

1
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
24.04.2017, 19:57 2
К примеру так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TD.X;
var L1, L2, L3, L4 : Boolean;
  procedure _x(L : string);
  begin
    App.ActiveDocument.Tables.Item(2).Cell(i+2,1).Range.Text:=
       'Рис.4.'+inttostr(DataModule2.adoquery1.recno)+ #13#10+
        DataModule2.adoquery1.FieldByName('CH'+L).asstring+' - '+
        DataModule2.adoquery1.FieldByName('Точка'+L).asstring+' '+
        DataModule2.adoquery1.FieldByName('№точки'+L).asstring+', '+
        DataModule2.adoquery1.FieldByName('Датчик'+L).asstring;
  end;
begin
  L1 := DataModule2.adoquery1.FieldByName('CH1').asstring = '';
  L2 := DataModule2.adoquery1.FieldByName('CH2').asstring = '';
  L3 := DataModule2.adoquery1.FieldByName('CH3').asstring = '';
  L4 := DataModule2.adoquery1.FieldByName('CH4').asstring = '';
 
  if not L1 and L2 and L3 and L4 then _x('1'); // 1-ый канал
  if L1 and not L2 and L3 and L4 then _x('2'); // 2-ой канал
  if L1 and L2 and not L3 and L4 then _x('3'); // 3-ий канал
  if L1 and L2 and L3 and mot L4 then _x('4'); // 4-ый канал
end;
0
24.04.2017, 19:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2017, 19:57
Помогаю со студенческими работами здесь

Как в IntelliJ IDEA увеличить размер (размер редактора, кода)?
как в IntelliJ IDEA увеличит размер (размер редактора, кода)?

Как сократить объём кода?
var list1 = new List&lt;SelectListItem&gt;(); var listAP = uow.GetRepository&lt;Subject&gt;().All().Where(x...

Сократить количество символов кода
#include &lt;fstream&gt; using namespace std; int main(){ifstream f(&quot;input.txt&quot;); ofstream...

Как сократить повторяющиеся строки кода?
Добрый день. Совсем зеленый новичок. Есть след. задача. Есть html таблица со столбцами &quot;услуга&quot;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru