![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по StringList [D7]
Люда © (2012-07-27 13:21:00)Здравствуйте, можно ли вставить в StringList большой блок текста, но только не построчно методом INSERT, а сразу?
Функция Insert не желает брать в качестве параметра StringList.Text, как строку.
Insert(BigTextPart,StringList.Text,1089);
Люда (2012-07-27 15:32:00) [1]
>
> В трёх и хранится. Это делает пятая строчка исходника.
Так бы и написали) А то было похоже на бред 5-ая строчка.
Там то стриг лист и переразбил строки
RWolf (2012-07-27 15:14:00) [2]
> Ну это сам ShowMessage() выводит одну строку из StringList в таком формате, встречает в строке #13#10 и сам переводит,
ShowMessage() печатает ровно то, что ему передали, со всеми переводами и спецсимволами, до первого нулевого символа.
НО в StringList - это хранится в ондной строке, правильно?? А должно хранится в Трех.
В трёх и хранится. Это делает пятая строчка исходника.
Anatoly Podgoretsky (2012-07-27 15:11:00) [3]> Люда (27.07.2012 15:05:16) [16]
1. Это да, но тогда strings
2. Это на тот случай если первый вариант не устраивает.
Люда (2012-07-27 15:09:00) [4]
> RWolf © (27.07.12 15:04) [15]
>
>
> Люда (27.07.12 14:59) [12]
>
> Проверено.
>
> Нет. Проверить — значит скопипастить код, запустить его
> и убедиться, что он делает то, что нужно.
>
>
> Или вы хотите сказать, что если в пустой StringList вставить
> Insert(0,'111'#13#10'222'#13#10'333');, то его Count будет
> = 3 ?
>
> В приведённом коде сделано немного другое.
Ну это сам ShowMessage() выводит одну строку из StringList в таком формате, встречает в строке #13#10 и сам переводит, НО в StringList - это хранится в ондной строке, правильно?? А должно хранится в Трех.
Люда (2012-07-27 15:05:00) [5]
> Anatoly Podgoretsky © (27.07.12 14:57) [11]
Это вы наверное с Memo спутали.
> Anatoly Podgoretsky © (27.07.12 14:59) [13]
Это нужно будет из трех частей в один текст собрать
Кусок 1) от 0 до позиции с которой вставляю. +
Кусок 2) вставляемый текст +
Кусок 3) остаток - от позиции с которой вставляю до конца исходного текста =
НОВЫЙ ТЕКСТ
Ну тоже вариант.
RWolf (2012-07-27 15:04:00) [6]
Люда (27.07.12 14:59) [12]
Проверено.
Нет. Проверить — значит скопипастить код, запустить его и убедиться, что он делает то, что нужно.
Или вы хотите сказать, что если в пустой StringList вставить Insert(0,'111'#13#10'222'#13#10'333');, то его Count будет = 3 ?
В приведённом коде сделано немного другое.
Anatoly Podgoretsky (2012-07-27 15:02:00) [7]> Люда (27.07.2012 14:59:12) [12]
Зачем спрашиваешь, проверь сама
Anatoly Podgoretsky (2012-07-27 14:59:00) [8]> RWolf (27.07.2012 14:55:10) [10]
Text вставка в середину и обратное присвоение Text(у)
Люда (2012-07-27 14:59:00) [9]
> RWolf © (27.07.12 14:55) [10]
Проверено. Или вы хотите сказать, что если в пустой StringList вставить Insert(0,'111'#13#10'222'#13#10'333');, то его Count будет = 3 ?
Anatoly Podgoretsky (2012-07-27 14:57:00) [10]> Люда (27.07.2012 14:21:05) [5]
Lines
RWolf (2012-07-27 14:55:00) [11]А вы проверьте.
Люда (2012-07-27 14:49:00) [12]
> RWolf © (27.07.12 14:37) [8]
А причем здесь ShowMessage(), вы посмотрите как это будет выглядеть в StringList.
sl.Insert(1,'111'#13#10'222'#13#10'333'); - Это все равно будет одна строка!!!
Вот такая: 111??222??333
RWolf (2012-07-27 14:37:00) [13]
sl:=TStringList.Create;
sl.Add('qwe');
sl.Add('rty');
sl.Insert(1,'111'#13#10'222'#13#10'333');
sl.Text:=sl.Text;
ShowMessage(sl[1]);
Люда (2012-07-27 14:26:00) [14]
> RWolf © (27.07.12 14:22) [6]
Это вставится в одну строку. Если во вставляемом тексте присутствует перевод строки, то автоматической разбивки на строки не будет.
RWolf (2012-07-27 14:22:00) [15]list2.Insert(42, list1.Text);
Люда (2012-07-27 14:21:00) [16]Вопрос как вставить большой кусок текста в середину TStringList сразу(не построчно).
Люда (2012-07-27 14:16:00) [17]
> Anatoly Podgoretsky © (27.07.12 14:08) [3]
В том и дело, что с делением. Нужно разбивать на строки блок текста через #10#13 и вставлять в StringList по одной строке методом StringList.Insert(--)
Anatoly Podgoretsky (2012-07-27 14:08:00) [18]Текст, без деления на строки (CRLF) легко вставляется любым стандарным способом, для TStrings. Он вставляется и с CRLF
Плохиш (2012-07-27 13:41:00) [19]
> Функция Insert не желает брать в качестве параметра StringList.
> Text, как строку.
> Insert(BigTextPart,StringList.Text,1089);
>
Эта функция Insert к TStringList никакого отношения не имеет. Исправляйте ошибки в вашем коде.
RWolf (2012-07-27 13:23:00) [20]свойство Text.