Сохранение и загрузка данных StringGrid в C++

Ели приходиться работать с файловой базой данных в среде С++ Builder, то Вам надо использовать компонент TStringGrid. Работа в общем проста, но для того, чтоб использовать этот компонент – надо знать кое-что больше…

На моё мнение, лучше использовать ещё одну таблицу, помимо стрингрида, так сказать вспомогательную.

Припустим, что:

Теперь создадим вспомогательную таблицу:

Но только обязательно надо ее удалять, при закрытии проги, потому что компоненты, которые мы объявляем вручную – нужно также и удалять (каждый объект создается в оперативной памяти, а если не удалить его, при завершении работы программы – он там и останется):

Пример сохранения:

Для сохранения мы сначала переводим все данные из стрингрида в вспомогательную таблицу (разбивая строки на столбцы ф-цией: DelimitedText), а потом просто сохраняем вспомогательную табл. в файл.

Пример загрузки:

Дальше, что бы загрузить нашу таблицу – сначала надо загрузить ее в вспомогательную табл (Table1) и построчно (в цикле) добавить в StringGrid из Table1.

Но не забываем ставить DelimitedText, для того, что бы строчку разбивать и собирать на столбцы)

Внимание! Будьте внимательны, когда Вы добавляете строки в стрингриде сразу же добавляйте их и в вспомогательной таблице – иначе будут неприятные траблы:

Что бы таблица могла редактироваться вручную, включите в Options –> goEditing = true.

Юзайте на здоровья)))

4 thoughts on “Сохранение и загрузка данных StringGrid в C++”

  1. Не понятно описано. Где создавать вспомогательную таблицу? Как ее создать? В каком блоке? В каком месте? и т.п.

  2. Как создавать вспомогательную таблицу я написал))) Она не имеет графического вида. И создается также как и переменная)

  3. В рядку
    Table1->Strings[i] = StringGrid1->Rows[i]->DelimitedText;
    Потрібно переписати так
    Table1->Add(StringGrid1->Rows[i]->DelimitedText) ;
    І ще оде,якщо кількість колонок буде змінюватись то не піде
    Ну все таки ідея хороша!!! 5+

Добавить комментарий

Ваш e-mail не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.