Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в переменную вставить большое кол-во строк? / 25 сообщений из 34, страница 1 из 2
16.06.2021, 15:04
    #40077935
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Можно ли каким-то способом заменить вот такое присвоение
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
PgDir.SQL.Clear;
   Query.SQL.Append('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb '); 
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
     PgDir.Prepare;
   PgDir.Open;


чем-то похожим на такое:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
s:='
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
';
Query.SQL:=s;


Всем за ранее благодарна!
...
Рейтинг: 0 / 0
16.06.2021, 15:08
    #40077936
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Лучше выкинуть присваивание вообще и задать Query.SQL ещё в design-time.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 15:10
    #40077939
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
s:=''#13#10 +
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
';


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 15:11
    #40077940
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Dimitry Sibiryakov

Лучше выкинуть присваивание вообще и задать Query.SQL ещё в design-time.

не годится - много запросов, которые подставляются по условию, а некоторые создаются динамически.
...
Рейтинг: 0 / 0
16.06.2021, 15:12
    #40077943
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Мимопроходящий

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
s:=''#13#10 +
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'#13#10 +
';




А без "#13#10 +"? и без "+" в каждой строке и ковычек в каждой строке?
...
Рейтинг: 0 / 0
16.06.2021, 15:18
    #40077945
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Colaмного запросов, которые подставляются по условию

На каждый - создать отдельный Query.

Ну а за генерацию запросов вообще надо очень внимательно смотреть в глаза разработчику.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 15:23
    #40077948
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Поясню. Смысл в том, что бы сократить до минимума количество лишних операций. При постоянных подстановках запросов их слишком много получится. Почему к примеру перенос кода на другую строку воспринимается нормально, а перенос текстовой переменой в одинарных кавычках на другую строку вызывает ошибку. Должен быть какой-то способ его переносить правильно без совершения лишних операций конкатенации. которые в данном случае совершенно лишены всякого смысла.
...
Рейтинг: 0 / 0
16.06.2021, 15:28
    #40077952
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
ColaПочему к примеру перенос кода на другую строку воспринимается нормально, а перенос
текстовой переменой в одинарных кавычках на другую строку вызывает ошибку.

Из-за кривых рук переносящего, вероятнее всего.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 15:31
    #40077954
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
>А без "#13#10 +"?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function AddS(S: array of string): string;
var i: integer;
begin
  Result := '';
  for i := 0 to High(S) do
   Result := Result + S[i] + sLineBreak;
end;


begin
  Query.SQL:= AddS([
  'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
  'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
  'cccccccccccccccccccccccccccccccccccccccccccc'
 ]);
...
Рейтинг: 0 / 0
16.06.2021, 15:32
    #40077955
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Cola,

можно было бы написать функцию, копирующую массив строк в TStrings, чтобы вызов выглядил как-то так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
InsertStrArrayInto([
                     'aaaaaaaa',
                     'bbbbbbbbbbbbbbb',
                     'ccccccccccccc',
                     'dddddddddddddddddddddddd',
                     'dddddddddddddddddddd',
                     'eeeeeeeeeeeeeeeeeeeeeeeeeeeee'
                   ], 
                   Query.SQL);  


но это, конечно, только экономия на #13#10 и символах "+", мы их заменили на ","
...
Рейтинг: 0 / 0
16.06.2021, 15:33
    #40077956
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
два ответа одновременно почти с одинаковым решением :)
...
Рейтинг: 0 / 0
16.06.2021, 15:35
    #40077958
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
А вот и начался конкурс на самый креативный способ заслоупочить программу...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 15:36
    #40077960
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Cola
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
PgDir.SQL.Clear;
   Query.SQL.Append('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb '); 
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
   Query.SQL.Append(' bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ');
     PgDir.Prepare;
   PgDir.Open;


Странно, что один запрос очищается и выполняется, а заполняется - другой.
...
Рейтинг: 0 / 0
16.06.2021, 15:41
    #40077962
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Cola
Поясню. Смысл в том, что бы сократить до минимума количество лишних операций. При постоянных подстановках запросов их слишком много получится. Почему к примеру перенос кода на другую строку воспринимается нормально, а перенос текстовой переменой в одинарных кавычках на другую строку вызывает ошибку. Должен быть какой-то способ его переносить правильно без совершения лишних операций конкатенации. которые в данном случае совершенно лишены всякого смысла.

Храни запросы во внешних файлах, тогда ты их ещё и править сможешь без перекомпиляции программы. Либо простые txt-шники, по одному на запрос, либо в каких-нибудь xml-ках в CDATA (для удобства редактирования).
...
Рейтинг: 0 / 0
16.06.2021, 15:43
    #40077963
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Зачем мелочиться - пусть хранит их прямо в базе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 18:27
    #40078004
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
alekcvp
Cola
Поясню. Смысл в том, что бы сократить до минимума количество лишних операций. При постоянных подстановках запросов их слишком много получится. Почему к примеру перенос кода на другую строку воспринимается нормально, а перенос текстовой переменой в одинарных кавычках на другую строку вызывает ошибку. Должен быть какой-то способ его переносить правильно без совершения лишних операций конкатенации. которые в данном случае совершенно лишены всякого смысла.

Храни запросы во внешних файлах, тогда ты их ещё и править сможешь без перекомпиляции программы. Либо простые txt-шники, по одному на запрос, либо в каких-нибудь xml-ках в CDATA (для удобства редактирования).


Пока какой-нибудь весельчак их не поправит.
Хранение в базе данных при таком раскладе - оптимальный вариант. Тут хоть защиту можно организовать.
...
Рейтинг: 0 / 0
16.06.2021, 18:31
    #40078005
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
pkunzip.zip ©
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 19:28
    #40078015
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Мимопроходящий

pkunzip.zip ©

Г-ы-ы, хитрюга!
А тогда я просто грохну файл, а ещё лучше, переименую какую-нибудь левую шнягу в требуемый файл. Нехай не скучают!
...
Рейтинг: 0 / 0
16.06.2021, 19:54
    #40078022
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Мимопроходящий,
а вообще, ты победил. Если я не знаю содержимое файла, то зачем мне его переименовывать?
...
Рейтинг: 0 / 0
16.06.2021, 20:35
    #40078031
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Dimitry Sibiryakov
Зачем мелочиться - пусть хранит их прямо в базе.
Самое правильное решение.
...
Рейтинг: 0 / 0
16.06.2021, 20:47
    #40078036
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
Cola
Можно ли каким-то способом

Нельзя: паскаль имеет кучу бессмысленных правил и ограничений, которые тщательно оберегаются.

Создай компонент, хранящий текст или коллекцию текстов. И редактор свой к нему, чтобы подсветка и форматирование.
...
Рейтинг: 0 / 0
16.06.2021, 21:30
    #40078062
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
текст сохранить в файл и прикрепить как ресурс, вычитывать оттуда по надобности. редактировать будет просто и удобно прямо в среде, вычитывание - 5-6 строк кода. я у себя так патчи базы сохраняю, раньше вот тоже в pas хранил, криво косо и не удобно. а так пристегнул в ide как ресурс, файл виден в проектре, редактируется с подсветкой sql синтаксиса, можно править как угодно, в гите сохраняется. в общем, очень удобно.
...
Рейтинг: 0 / 0
16.06.2021, 22:08
    #40078086
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
makhaonприкрепить как ресурс

Внезапно, но такой ресурс это обычно DFM и... см. выше про задании запроса в design-time.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.06.2021, 23:33
    #40078110
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
makhaon
текст сохранить в файл и прикрепить как ресурс, вычитывать оттуда по надобности. редактировать будет просто и удобно прямо в среде


Язык Delphi прекрасен.
...
Рейтинг: 0 / 0
16.06.2021, 23:45
    #40078116
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в переменную вставить большое кол-во строк?
zeon11
Мимопроходящий

pkunzip.zip ©

Г-ы-ы, хитрюга!
А тогда я просто грохну файл, а ещё лучше, переименую какую-нибудь левую шнягу в требуемый файл. Нехай не скучают!

Кто тебе мешает exe-шник в блокноте подредактировать? Нехай не скучают! (с)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в переменную вставить большое кол-во строк? / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]