|
Основной форум Сюда все проблемы связанные с программированием. |
30.07.2010, 10:06
|
#1
|
Оператор ЭВМ
Регистрация: 09.06.2010
Сообщений: 23
Написано 2 полезных сообщений (для 2 пользователей)
|
Сохранение.
Извините, если такая тема уже была... В общем, в хелпе я ничего не понял по этой теме. Допустим, у нас есть переменные а,б,в. Как их сохранить в хранилище и как их потом загрузить оттуда?
__________________
Вы начинаете читать надпись, которую заканчиваете читать.
|
(Offline)
|
|
30.07.2010, 10:23
|
#2
|
Нуждающийся
Регистрация: 17.03.2010
Адрес: Колпашево, Томская обл.
Сообщений: 88
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Сохранение.
В хелпе всё понятно. Вот кусок нужный тебе:
program rs var rs : recordStore; countStr : string; countInt, nextId, index : integer; begin rs := OpenRecordStore('Count'); //открываем RMS {если первый запуск, добавляем запись} if nextId = 1 then index := AddRecordStoreEntry(rs, '0') //сначала 0 (или 'КУКУ', '4tf^&' и т.д) countStr := ReadRecordStoreEntry(rs, 1); // читаем запись {делаем черное дело -- модифицируем переменную} countInt := StringToInteger(countStr) + 1; countStr := IntegerToString(countInt); {В данном случае увеличиваем на 1} ModifyRecordStoreEntry(rs, countStr, 1); // coхраняем CloseRecordStore(rs); // закрываем хранилище {делаем, что хотим} ShowForm; index := FormAddString('Значение переменной countStr: ' + countStr); AddCommand(CreateCommand('Exit', CM_EXIT, 1)); repeat Delay(100) until GetClickedCommand <> EmptyCommand; end.
Типа так
__________________
Teeworlds 4ever!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.07.2010, 10:34
|
#3
|
Оператор ЭВМ
Регистрация: 09.06.2010
Сообщений: 23
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Сохранение.
Сообщение от Bananbl4
В хелпе всё понятно. Вот кусок нужный тебе:
program rs var rs : recordStore; countStr : string; countInt, nextId, index : integer; begin rs := OpenRecordStore('Count'); //открываем RMS {если первый запуск, добавляем запись} if nextId = 1 then index := AddRecordStoreEntry(rs, '0') //сначала 0 (или 'КУКУ', '4tf^&' и т.д) countStr := ReadRecordStoreEntry(rs, 1); // читаем запись {делаем черное дело -- модифицируем переменную} countInt := StringToInteger(countStr) + 1; countStr := IntegerToString(countInt); {В данном случае увеличиваем на 1} ModifyRecordStoreEntry(rs, countStr, 1); // coхраняем CloseRecordStore(rs); // закрываем хранилище {делаем, что хотим} ShowForm; index := FormAddString('Значение переменной countStr: ' + countStr); AddCommand(CreateCommand('Exit', CM_EXIT, 1)); repeat Delay(100) until GetClickedCommand <> EmptyCommand; end.
Типа так
|
Блин. Ну вот прям ни фига не понятно... Можно ли на примере трех переменных a, b, c типа integer?
__________________
Вы начинаете читать надпись, которую заканчиваете читать.
|
(Offline)
|
|
30.07.2010, 12:35
|
#4
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Сохранение.
сохраняются только строки туда. можно сделать так:
ModifyRecordStoreEntry(rs, ''+a+' '+b+' '+c, 1);
можно еще в 3 разных хранилища записать
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.07.2010, 16:07
|
#5
|
Нуждающийся
Регистрация: 17.03.2010
Адрес: Колпашево, Томская обл.
Сообщений: 88
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Сохранение.
program blTb; var rnd, wth, sum : RecordStore; a, b, c, nextID, index1, index2, index3 : Integer; save_a, save_b, save_c : string; begin {если первый запуск, создаём хранилища} if nextId = 1 then index1 := AddRecordStoreEntry(rnd, '0'); index2 := AddRecordStoreEntry(wth, '0'); index3 := AddRecordStoreEntry(sum, '0') {открываем 3 разных хранилища, напр 'Random', 'Width', 'Calc'} rnd := OpenRecordStore('Random'); wth := OpenRecordStore('Width'); sum := OpenRecordStore('Calc'); {задаём переменные} a := random(1337); b := GetWidth; c := sqrt(34+56/78*34); {переводим в string} save_a := IntegerToString(a); save_b := IntegerToString(b); save_c := IntegerToString(c); {сохраняем} ModifyRecordStoreEntry(rnd, save_a, 1); ModifyRecordStoreEntry(wth, save_b, 1); ModifyRecordStoreEntry(sum, save_c, 1); {готово!} end.
а потом, если хотим прочитать:
read_a := ReadRecordStoreEntry(rnd, 1); read_b := ReadRecordStoreEntry(wth, 1); read_c := ReadRecordStoreEntry(sum, 1); {Это всё string, переводим в integer через StringToInteger}
__________________
Teeworlds 4ever!
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Bananbl4 за это полезное сообщение:
|
|
14.08.2010, 16:36
|
#6
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Сохранение.
Можно всё хранить и в одном хранилище:
program rs var rs : recordStore; countStr : string; countInt, nextId, index, a, b, c : integer; begin rs := OpenRecordStore('ABC'); //открываем RMS {если первый запуск, добавляем 3 записи} if nextId = 1 then index := AddRecordStoreEntry(rs, '0') //сначала 0 index := AddRecordStoreEntry(rs, '0') //сначала 0 index := AddRecordStoreEntry(rs, '0') //сначала 0 (добавляем 3 записи)
{читаем переменные} countStr := ReadRecordStoreEntry(rs, 1); // читаем запись a := StringToInteger(countStr); countStr := ReadRecordStoreEntry(rs, 2); // читаем запись b := StringToInteger(countStr); countStr := ReadRecordStoreEntry(rs, 3); // читаем запись c := StringToInteger(countStr);
{что-то делаем с переменными}
{Сохраняем все переменные} ModifyRecordStoreEntry(rs, '' + a, 1); // coхраняем a ModifyRecordStoreEntry(rs, '' + b, 2); // coхраняем b ModifyRecordStoreEntry(rs, '' + c, 3); // coхраняем c CloseRecordStore(rs); // закрываем хранилище {делаем, что хотим} end.
|
(Offline)
|
|
01.08.2011, 14:17
|
#7
|
AnyKey`щик
Регистрация: 31.07.2011
Сообщений: 10
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Сохранение.
подскажите, не могу найти - макс длинна одной записи в recordstore - как и string 255 символов?
|
(Offline)
|
|
01.08.2011, 15:03
|
#8
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Сохранение.
Точно не скажу, но: разве нынче строки не могут в несколько килобайт разрастаться? Проверь экспериментом.
|
(Offline)
|
|
02.08.2011, 09:34
|
#9
|
ПроЭктировщик
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений (для 219 пользователей)
|
Ответ: Сохранение.
Сообщение от AssA
подскажите, не могу найти - макс длинна одной записи в recordstore - как и string 255 символов?
|
Это Java. Максимальная длина строки (String) в Java состовляет 2,147,483,647 unicode символов. Это (немного не мало) - 4 гб информации, что "немного превышает" общие объемы памяти, доступные на современных мобильных устройствах.
__________________
Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо YellowAfterlife за это полезное сообщение:
|
|
02.08.2011, 13:53
|
#10
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Сохранение.
Другое дело, что размер записи бывает ограничен, то есть не всю флеху можно забить, а лишь сколько-то (обычно в мегабайтах).
|
(Offline)
|
|
18.08.2011, 01:29
|
#11
|
AnyKey`щик
Регистрация: 31.07.2011
Сообщений: 10
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Сохранение.
вот спасибо! так много, что растерялся. я так полагаю, что размер самого RecordStore примерно такого же порядка?
|
(Offline)
|
|
19.08.2011, 14:50
|
#12
|
Знающий
Регистрация: 25.10.2009
Сообщений: 338
Написано 53 полезных сообщений (для 61 пользователей)
|
Ответ: Сохранение.
Вроде где-то в JimmBest видел максимальный размер хранилища, под историю, там написанно примерно 150-200кб(Тел Nokia 5130c-2 v07.97 ppm by walera14, cnt by walera14:D:D:D:D). Сильно не бейте если не прав=)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:33.
|