Конференция "KOL" » Проблема с array of pstrlist [Delphi, Windows]
 
  • АртемКо (28.10.07 16:11) [0]
    Пишу консольные приложения с использованием KOL, всё нравилось.
    Пока не пришлось делать массив списков строк.
    Завел переменную _output:array of pstrlist;
    В какой-то момент, задал ее длину setlength(_output,N);
    Далее в цикле хочу инициализировать список и добавить в него строку
    for i:=0 to N-1 do
    begin
    _output[i]:=New(PStrList);
    _output[i].Add(s);
    end;
    Не добавляет оно строку s, а тупо вылетает с Run Time Error
    в asm-процедуре TList.Insert на строке PUSH [EAX].fCount
    Если заменить добавление на очистку списка, тоже ошибка, но уже в asm-процедуре TStrList.Delete на строке MOV ECX, [EAX].TList.fItems

    Пробовал заменить динамический массив на массив фиксированной длины - вылет наблюдается в другом месте. Но все же наблюдается.

    Может быть я что-то конкретно недопонимаю? С простым списком все работает "на ура"..
  • Вячеслав (28.10.07 16:21) [1]
    Может я и не прав, но...
    Есть функция NewStrList, а в ней New( Result, Create );
  • Dimaxx © (28.10.07 16:59) [2]
    for i:=0 to N-1 do
    begin
    _output[i]:=NewStrList;
    _output[i].Add(s);
    end;
  • АртемКо (28.10.07 17:02) [3]
    Ок, спасибо, попробую.
  • Danger © (28.10.07 18:34) [4]

    > АртемКо   (28.10.07 17:02) [3]
    > Ок, спасибо, попробую.

    Специально ведь Кладов в уроках и мануале выделяет: используйте специальные функции-конструкторы для всех объектов. Не пользуйтесь New() напрямую ...
  • АртемКо (11.11.07 19:54) [5]
    Просто меня заглючило. :)
    KOL использую недавно. Сначала делал как надо - NewStrList. А тут запутался.
 
Конференция "KOL" » Проблема с array of pstrlist [Delphi, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0]