как мне записать переменную типа TList в файл

Тема в разделе "Delphi - Система", создана пользователем Guest, 8 авг 2003.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Есть функция WriteComponentResFile, которая записывает переменную типа TComponent (или наследника) в файл. А как мне записать переменную типа TList в файл?
     
  2. Guest

    Guest Гость

    Искренне сочувствую, но класс TList не унаследован не от TPersistent ни от
    TStream, поэтому, без написания кода вам не обойтись. Наиболее разумный спо
    соб
    я вижу в создании класса TStreamList, работая в СИ я бы обошелся следующей
    конструкцией
    class TStreamList : public TList, TStreamList
    {
    ...
    public:
    ...
    bool SaveToStream(TStream& stream);
    bool ReadFromStream(TStream& stream, int& nCount);
    ...
    };
    и реализовал бы эти два метода.

    но Object Pascal не позволяет делать множественного наследования, поэтому
    вы можете действовать, следующим способом
    TStreamList = class(TStream)
    private
    FList : TList;
    public
    ...
    bool SaveToStream(TStream stream);
    bool ReadFromStream(TStream AStream; Var int ACount);
    ...
    end;
    реализуете нужную функциональнось.
    Способов много, и вам выбирать!!!
     
  3. I.C.

    I.C. Гость

    Начнем с того что выясним что за TList ? Список ли строк ? Объектов ? Чего ? Разные ответы дадут разные результаты.

    Если список строк как мне кажется :)) почему то....то TStringList и все дела...там все уже есть.

    Если что то свое - то вышеприведенный способ с добавками TReader/TWriter - советую изучить.

    И вообще к чему использовать TList - киньте в меня камень но не пойму. Есть TCollection в котором
    все сделано элегантнее на порядок и ошибки сделать сложнее.
     
  4. Vagor.ini

    Vagor.ini Гость

  5. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
  6. Vagor.ini

    Vagor.ini Гость

    У меня фак и прога для просмотра слита, если кому, что вышлю...
     
  7. Гость

    Чего тут такого сложного! Если TList символов, строк и дт. тп. тогда пиши так!
    var List:Tlist;
    begin
    ******************
    List.Items.SaveToFile('*.*');
    ******************
    end;
    Вот и все!
    :)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей