Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 не сохраняются данные в cxGrid  [new]
neteurt
Member

Откуда:
Сообщений: 208
Добрый день

Есть написал код для вставки записей в cxGrid из файла
procedure TForm1.Button1Click(Sender: TObject);
var
L_file:TStringlist;
L_String:TStringlist;
i:integer;
begin
L_file:=TStringList.Create;
L_string:=TStringList.Create;
L_string.delimiter:='|';
L_string.strictdelimiter:=true;
if OpenDialog1.Execute then
begin
L_file.LoadFromFile(OpenDialog1.FileName);
 end;

 for i:=0 to L_file.Count-1 do
begin
  L_string.delimitedtext:=L_file[i];

      cxGridTableView1.DataController.BeginUpdate();
      try

        cxGridTableView1.DataController.RecordCount := cxGridTableView1.DataController.RecordCount + 1;
        cxGridTableView1.DataController.Values[cxGridTableView1.DataController.RecordCount-1, cxGridColumn1.Index] := L_string[1]; //'Column1'; // если строковая
        cxGridTableView1.DataController.Values[cxGridTableView1.DataController.RecordCount-1, cxGridColumn2.Index] := L_string[2];//'нам жопа1';    // для CalcEdit ячейки
        cxGridTableView1.DataController.Values[cxGridTableView1.DataController.RecordCount-1, cxGridColumn3.Index] := L_string[3];//'нам жопа2'; // для CheckBox ячейки

      finally
        cxGridTableView1.DataController.EndUpdate();
      end;

end;

L_file.free;
L_string.free;

end;

данные успешно добавляются(обвел черной линией), только при следующем входе в программе они пропадают, почему?
Запись же которую добавил вручную, самая первая запись на скриншоте(правой кнопкой на компоненте cxGrid и команда "Layaout and Data Editor") хранятся постоянно, даже если перезайти в программу. Как сделать, чтобы файлы добавленные из файла тоже постоянно хранились?

К сообщению приложен файл. Размер - 46Kb
19 ноя 21, 16:12    [22398024]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
а разве Apend + Post не нужны?
а где вообще хранятся данные? в базе?

Судя по типу сетки (TcxGridTableView), нет привязки к базе. Как хранятся данные пока программа закрыта?
19 ноя 21, 16:28    [22398029]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
neteurt
Member

Откуда:
Сообщений: 208
X11
а разве Apend + Post не нужны?
а где вообще хранятся данные? в базе?

Судя по типу сетки (TcxGridTableView), нет привязки к базе. Как хранятся данные пока программа закрыта?


я по это и задал вопрос, чего не хватает. Привязке к базе нету. grid ни с чем не связан
19 ноя 21, 16:46    [22398037]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
Т.е. ты даже не догадываешься, что данные хранятся в памяти (RAM) пока живет программа, а при закрытии все уничтожается?
19 ноя 21, 16:52    [22398043]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
neteurt
чего не хватает.


не хватает программиста, который напишет процедуры сохранения данных и загрузки
19 ноя 21, 16:52    [22398044]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
neteurt
Member

Откуда:
Сообщений: 208
X11,

если вы не можете дать действенный совет, а пришли только постебатся, тогда прошу не засорять тему
19 ноя 21, 17:33    [22398067]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
DimaBr
Member

Откуда:
Сообщений: 12190
Вы данные в Грид пихаете по нажатию кнопки ?
После перезапуска программы, не мешало бы снова нажать кнопку, чтобы сработала ваша процедура и запихнула данные в грид.
19 ноя 21, 20:37    [22398161]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
neteurt
действенный совет


я же дал: нужны процедуры/функции сохранения данных куда-то там... куда вы хотите, в файл например...
ну потом процедуры загрузки из файла

очень странный вопрос задаете вы, как программист
21 ноя 21, 16:40    [22398687]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
neteurt
Member

Откуда:
Сообщений: 208
X11,

Grid разве данные не хранит? я же могу вручную данные туда добавить и они будут там хранится
22 ноя 21, 09:12    [22398890]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 13358
neteurt
я же могу вручную данные туда добавить и они будут там хранится
neteurt
только при следующем входе в программе они пропадают
22 ноя 21, 09:49    [22398898]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
DimaBr
Member

Откуда:
Сообщений: 12190
neteurt
Grid разве данные не хранит? я же могу вручную данные туда добавить и они будут там хранится

Вы открываете Блакнот и пишите туда ТЕКСТ.
Блакнот текст хранит ?
Для сохранения текста вы ЗАПИСЫВАЕТЕ его в фаили и текст хранится там.
Когда вы открываете Блакнот, там вашего текста НЕТ.
22 ноя 21, 10:31    [22398936]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
neteurt
X11,

Grid разве данные не хранит? я же могу вручную данные туда добавить и они будут там хранится


Еще раз: сетка без привязки к базе хранит данные в оперативной памяти.

Вам бы лучше начать изучение компьютеров с азов. А вы программировать уже пытаетесь.
22 ноя 21, 11:49    [22398985]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
neteurt
Member

Откуда:
Сообщений: 208
хранение данных в файле и постоянно их от туда подгружать не подходит. Файлик должен загрузится один раз. Если данные каждый раз подгружать из файла, его пользователь может отредактировать и тогда целостность данных будет нарушена
22 ноя 21, 11:58    [22398988]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 769
neteurt, вам пытаются объяснить, что cxGrid сам по себе ну никак хранить информацию не может. Да он может хранить структуру, которую вы в него добавили: наименования полей, их порядок, сортировку и т.п. Но вот данные он сохранить не сможет.
Если у Вас нет привязки к какой-то базе данных (или она вам не нужна), попробуйте воспользоваться компонентом TcxMemData от DevExpress. Он там же где и cxGrid. Он легко привязывается к гриду, заполняется через Append/Post. А также для сохранения данных перед закрытием его можно выгружать одной процедурой в бинарный файл dat и также возвращать данные при открытии.
22 ноя 21, 14:11    [22399104]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2654
"В гриде данных нет!" ©
22 ноя 21, 15:07    [22399137]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
white_nigger,

в гриде нет, а в cxGridTableView есть , ведь у cxGridTableView есть свой in-memory dataset (DataController)
22 ноя 21, 16:08    [22399167]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
neteurt
хранение данных в файле и постоянно их от туда подгружать не подходит. Файлик должен загрузится один раз. Если данные каждый раз подгружать из файла, его пользователь может отредактировать и тогда целостность данных будет нарушена


1. Задействуй СУБД, например, Firebird или SQLite.
или
2. Шифруй данные при сохранении в файл и дешифруй при загрузке.
22 ноя 21, 16:10    [22399170]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
neteurt
Member

Откуда:
Сообщений: 208
dartveider13,

спасибо, остановлюсь на этом варианте. При использование SaveToBinaryFile файл будет хранится в зашифрованном виде
22 ноя 21, 17:58    [22399259]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2654
X11
white_nigger, в гриде нет, а в cxGridTableView есть , ведь у cxGridTableView есть свой in-memory dataset (DataController)
Спасибо, буду знать)
23 ноя 21, 01:43    [22399486]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
northener
Member

Откуда: Москва
Сообщений: 187
neteurt
dartveider13,

спасибо, остановлюсь на этом варианте. При использование SaveToBinaryFile файл будет хранится в зашифрованном виде

Любой юный пионер из кружка любителей программирования легко прочитает и изменит этот файл.
23 ноя 21, 02:48    [22399489]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 769
neteurt, ну если прям открыть его hex-редактором, то прочитать что находится внутри можно. Простым текстовиком его не открыть. Дальше все зависит от того, что там собираетесь хранить и уровень ваших пользователей. Если уж прям все очень секретно, можете попробовать почитать про синхронное шифрование.
В коде ехе зашьете ключ. И будете его использовать для шифровки\расшифровки
Я сам часто пользуюсь MemData, где мне не нужна СУБД. Также очень удобно для временного структурированного хранения данных. Запросы SQL к ней конечно не напишешь, но можно фильтровать данные.
23 ноя 21, 05:56    [22399496]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
Anton_1234
Member

Откуда:
Сообщений: 89
neteurt
хранение данных в файле и постоянно их от туда подгружать не подходит. Файлик должен загрузится один раз. Если данные каждый раз подгружать из файла, его пользователь может отредактировать и тогда целостность данных будет нарушена

можно затолкать файл в ресурсы (т.е. будет храниться в экзешнике), при запуске программы выгружай на диск и оттуда бери
или прямо из ресурсов тягай, не выгружая файл (ни разу так не делал, но наверное можно)

ps. это если файл создан и не меняется

pps. с шифрованием я один раз вступил в непонятное, хранил экселевские файлы, а при открытии эксель их менял, не совпадал МД5 потом... много непонятных приключений было

Сообщение было отредактировано: 23 ноя 21, 08:02
23 ноя 21, 07:55    [22399503]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
northener
neteurt
dartveider13,

спасибо, остановлюсь на этом варианте. При использование SaveToBinaryFile файл будет хранится в зашифрованном виде

Любой юный пионер из кружка любителей программирования легко прочитает и изменит этот файл.


Проблема в том, что если сохранить в бинарник, а потом поменять местами колонки или добавить что-то, или убрать в сетке, вернее в датаконтроллере, то потом просто так не загрузишь, будет несоответствие и ошибка.
23 ноя 21, 12:19    [22399591]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
DimaBr
Member

Откуда:
Сообщений: 12190
X11

Проблема в том, что если сохранить в бинарник...

Можно и структуру туда же
23 ноя 21, 12:56    [22399631]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2654
ТС считает что он сможет написать такую программу, которую кто-то захочет взломать? Имхо синдром Неуловимого Джо
23 ноя 21, 13:44    [22399667]     Ответить | Цитировать Сообщить модератору
 Re: не сохраняются данные в cxGrid  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15425
24 ноя 21, 17:23    [22400310]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Delphi Ответить