хранение данных в делфи? Программирование


Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

Твой софтовый форум Программирование хранение данных в делфи?

Автор: main 27.03.2008 - 8:17

Надо написать простую программу, в ней много переменных значений (просто цифр) какой самый простой способ что бы их хранить, чтобы они тупо не пропадали когда закрываешь прогу, бд прикручивать думаю бессмысленно, поделитесь опытом как бы это сделали вы?

Автор: yah 27.03.2008 - 8:21

Самый простой - сохраняй данные в обычный текстовик или ini-файл.

Цитата | Quote
в ней много переменных значений (просто цифр)

А много - эт сколько?

Автор: elDi 27.03.2008 - 8:26

все зависит от количества и от размера (типа) переменных

Автор: main 27.03.2008 - 8:34

около 100

я тоже об этом думал, а в файле можно какие нибудь каменты вставлять, что бы не запутаться или как нибудь вообще разделить?

Добавлено:

Цитата | Quote
все зависит от количества и от размера (типа) переменных


в основном real и integer

Автор: yah 27.03.2008 - 8:36

Можно. Только зачем?

Автор: elDi 27.03.2008 - 8:38

так это разве много? smile.gif

записываешь в текстовый файл в столбик через writeln, считываешь через readln и все. если нужно, можно и комменты тоже записать.

с .ini немного сложнее, на память сейчас не скажу точно...

Автор: main 27.03.2008 - 8:41

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

Автор: elDi 27.03.2008 - 8:52

дело в том, то что придется и считывать все подряд до нужного числа, и перезаписывать весь файл, и если чисел немного, то можно динамически записывать
------
http://xak4ebep.boom.ru/html/untitled31.html

Добавлено:

короче, разбираемся

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

Автор: main 27.03.2008 - 8:52

ясно, значит информацию придеться разом считывать и также разом записывать, спасибо

Автор: elDi 27.03.2008 - 8:54

да. чисел не так уж и много, значит, проблем не будет

Автор: Soloton 27.03.2008 - 11:59

main, так я представил решение вопроса. Если что-то не как задумано -- не обессудь. Получилось громоздко, но быстро.

Сделал пустой проект, на нём 2 кнопки. Задал события на нажатие каждой из этих кнопок, на создание формы и на её уничтожение.
При нажатии одной кнопки происходит запись, а на другую повесил считывание пременных из ini.

» исходник юнита «


Исходник + exe

| У Вас нет прав для просмотра этого текста, пожалуйста, зарегистрируйтесь |



Добавлено:

Использовал Delphi7

Автор: main 12.04.2008 - 8:24

Все сдел, все получилось, спс всем за помощь. Но теперь я делаю другую программу к которой прикручена простенькая(в одну таблицу) бд, все подключил, добавил dbgrid данные видно, но мне надо чтобы одни столбцы заполнялмсь на основе друних по формуле, суммировать числа в таблице, причем чтобы брались не все строки а с определенным критерием в одном из столбцов, подскажите как это сделать, зарание спасибо.

Автор: Alixs 30.05.2008 - 1:04

Товарисч main, вижу что ты за програмирование БД взялся не давно, поэтому сразу скажу что тебе нужно определиться с понятием КУРСОР в db.grid, вот его и нужно исп-ть для считывания записи в таблице.

Вот пример сложения целой колонки, складываюся значения в поле Цена.
---
var i,s:integer;
begin
s:=0;
ADOTable1.First;
for i:=0 to ADOTable1.RecordCount-1 do
begin
s:=s+ADOTable1.FieldValues['Цена'];
ADOTable1.Next;
end;
ShowMessage('Цена = '+inttostr(s));
end;
---
здесь ADOTable1.FieldValues['Цена'] является КУРСОР'ом,
а как сделать сложение разных колонок подумай сам.


  Яндекс цитирование   Rambler's Top100