![]() |
Re: Как сохранить в файл?
а у меня вот не сохраняються
вот набрасал код запись и чтение из хранилища...пока java запущено читает, если закрыть и запустить то пусто.... program sender_w; procedure CreateMenu;forward; var rs: recordStore; ok, cancel, clicked: command; index, phone: integer; name, phone2: string; _write,_read,_exit:integer; //для меню procedure write; begin clearForm; showform; ok:=createCommand('Сохранить',CM_SCREEN,0); cancel:=createCommand('Назад',CM_SCREEN,1); addcommand(ok); addcommand(cancel); phone:= formAddTextField('номер', '', 15, TF_NUMERIC); repeat delay(100); clicked := getClickedCommand; until clicked <> emptyCommand; if clicked = cancel then CreateMenu; phone2:= formGetText(phone); rs := openRecordStore('phone'); index := addRecordStoreEntry(rs, phone2); closeRecordStore(rs); CreateMenu; end; procedure read; begin rs := openRecordStore('phone'); name := readRecordStoreEntry(rs, index); closeRecordStore(rs); showCanvas; setColor(255, 0, 0); drawText(name, 5, 5); repaint; delay(3000); CreateMenu; end; procedure CreateMenu; begin ShowMenu('Меню', CH_IMPLICIT); _write := MenuAppendString('Записать'); _read := MenuAppendString('Прочитать'); _exit := MenuAppendString('Выйти'); repeat delay(100); clicked := GetClickedCommand; until clicked <> EmptyCommand; if MenuGetSelectedIndex=_write then write; if MenuGetSelectedIndex=_read then read; if MenuGetSelectedIndex=_exit then Halt; end; begin CreateMenu; end. |
Re: Как сохранить в файл?
Тю, так естесно... Обрати внимание на код, ты читаешь только то, что записал в период запуска программы, поскольку пользууешся одной переменной index...
|
Re: Как сохранить в файл?
можешь на примере этого кода внести изминения чтобы данные сохранялись при выходе из приложения???????
|
Re: Как сохранить в файл?
Данные то у тебя сохраняются, только вот читаешь ты их изниоткуда:
Код:
procedure read; Поэтому, нужно запрашивать у пользователя индекс ячейки и писать в неё, потом запрашивать индекс при чтении. |
Re: Как сохранить в файл?
спасибо, с этим я уже разобрался, вот что получилось
program sender_w; procedure CreateMenu;forward; var rs: recordStore; ok, cancel, clicked: command; index, phone: integer; name, phone2: string; _write,_read,_exit:integer; //для меню nextId : integer; procedure write; begin clearForm; showform; ok:=createCommand('Сохранить',CM_SCREEN,0); cancel:=createCommand('Назад',CM_SCREEN,1); addcommand(ok); addcommand(cancel); phone:= formAddTextField('номер', '', 15, TF_NUMERIC); repeat delay(100); clicked := getClickedCommand; until clicked <> emptyCommand; if clicked = cancel then CreateMenu; phone2:= formGetText(phone); rs := openRecordStore('phone'); ModifyRecordStoreEntry(rs,phone2,1 ); //index := addRecordStoreEntry(rs, phone2); closeRecordStore(rs); CreateMenu; end; procedure read; begin rs := openRecordStore('phone'); name := readRecordStoreEntry(rs, 1); closeRecordStore(rs); showCanvas; setColor(255, 0, 0); drawText(name, 5, 5); repaint; delay(3000); CreateMenu; end; Procedure InitRS(RSName:String); Begin rs := OpenRecordStore(RSName); nextId := GetRecordStoreNextId(rs); // Если это первый запуск программы, то инициализация if nextId = 1 then nextId := AddRecordStoreEntry(rs, '0'); // кол-во записей равно нулю // закрытие record store CloseRecordStore(rs); End; procedure CreateMenu; begin ShowMenu('Меню', CH_IMPLICIT); _write := MenuAppendString('Записать'); _read := MenuAppendString('Прочитать'); _exit := MenuAppendString('Выйти'); repeat delay(100); clicked := GetClickedCommand; until clicked <> EmptyCommand; if MenuGetSelectedIndex=_write then write; if MenuGetSelectedIndex=_read then read; if MenuGetSelectedIndex=_exit then Halt; end; begin InitRS('phone'); CreateMenu; end. ======================================= назначение процедуры InitRS так и не понял но без нее не работает |
Часовой пояс GMT +4, время: 01:02. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot