Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо