-
валя © (11.04.17 20:31) [0]var
S: String;
StringList: TStringList;
Если я делаю:S := StringList.Text;
то я копирую в новую область памяти текст из StringList.Text в S
или же просто S получает адрес начала блока памяти где лежит StringList.Text? -
Dimka Maslov © (11.04.17 20:53) [1]в стринглисте хранится список строк. При вызове свойства текст, в переменную копируется содержимое всех строк.
-
валя © (11.04.17 21:23) [2]То есть получаетя StringList.Text[i] это не правильный приём работы? Просто у меня в стринглист хранится большой кусок текста и для удобства обработки всего текса хотелось бы как-то так сразу: StringLis.Text[i], без лишнего "тяжелого" переприсвоения.
-
rrrrr © (11.04.17 21:31) [3]StringList.Text[i] это символ
-
валя © (11.04.17 21:35) [4]Должен быть символ, но Text метод возвращающий строку , а не строка
-
rrrrr © (11.04.17 21:37) [5]а строка с нотацией массива это символ валя, да.
валя[1] это "вэ"
а
валя[4] это "я" -
Dimka Maslov © (11.04.17 22:14) [6]
> То есть получаетя StringList.Text[i] это не правильный приём
> работы?
Синтаксически правильный. Логически нет. -
Dimka Maslov © (11.04.17 22:14) [7]
> То есть получаетя StringList.Text[i] это не правильный приём
> работы?
Синтаксически правильный. Логически нет. -
Германн © (12.04.17 02:15) [8]
> валя © (11.04.17 21:23) [2]
>
> То есть получаетя StringList.Text[i] это не правильный приём
> работы?
Какой работы это не правильный приём?
Задача-то не сформулирована. -
NoUser © (12.04.17 14:50) [9]StringList.Text;
Всегда копирует в новую область памяти текст из всех Strings в StringList.S := StringList.Items[0];
'Просто' S получает адрес начала блока памяти где 'лежит' StringList.Strings[0].
Но если ты потом сделаешьS[1] := '!';
то вначале твоя строка в S будет скопирована в новую область памяти и потом уже в ней будет изменён первый символ (StringList.Strings[0] не изменится). -
NoUser © (12.04.17 14:54) [10]*S := StringList.Strings[0];