Конференция "Начинающим" » Вопрос по строкам [D7]
 
  • валя © (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];

 
Конференция "Начинающим" » Вопрос по строкам [D7]
Есть новые Нет новых   [118658   +23][b:0][p:0.001]