IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
Save & Load, function
сообщение 21.11.2004, 15:45
Сообщение #1





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Вот решил написать для общего пользования функцию по сохранению и загрузки любого количества любой информации. Ну тоесть числа (Очки, деньги, патроны, координаты) и строки (Логин игрока, название чегото). Функция Загрузки и Сохранения работают отдельно. Если во время загрузки не найденно файла сохранения, то загрузка не выполнится, а просто завершится без ошибок.
Сохранение:

Вот это надо поместить в самое начало кода (Обьявление массивов)
Код
dim Info#(99)
dim Info$(99)


В этих массивах храниться все что Вам надо. Размер массива можно менять на скоко надо. (Если вы не используете сохранения, массивы все равно надо создать!)
Далее поместить (Под кнопкай сохранения или так просто) вызов функции:
Код
Path$="Save1.txt"


Info#(0)=1
Info$(0)="2"


Info#(1)=Score
Info$(1)=Login$
Info$(2)=Name$
Save(Path$)

В (выделенные) массив под номаром 0 надо поместить количество передоваемых массиву данных. Например если только очки и патроны, то число должно быть 2. Далее вы должны в каждую ячейку массива запихать нужную вам информацию для сохранения! А путь, это в какой файл сохранить (Если файла нет, прога его создаст.)
А вот сама функция по сохранению:
Код
function Save(Path$)
if file exist(Path$)=0 then open to write 1,Path$ else delete file Path$ : open to write 1,Path$
for m=1 to 2
               if m=1
 for t=0 to info#(0)
     write string 1,str$(info#(t))
 next t
    endif
    if m=2
 for t=0 to val(info$(0))
     write string 1,info$(t)
 next t
    endif
next m
close file 1
endfunction


Загрузка:

Загрузка вызывается так:
Код
load(Path$)

Score=Info#(1)
Login$=Info$(1)
Name$=Info$(2)
print Name$,": ",score," ",Login$

После вызова загрузки, вы можете обратиться к массивам за тем, что он достал из файла. Главно не забыть в какую ячейку массива что сохранили.

Сама функция загрузки:
Код
function load(Path$)
if file exist(Path$)=1
    open to read 1,Path$
else
    for m=1 to 2
 if m=1
     for t=1 to Info#(0)
   Info#(t)=0
     next t
 endif
 if m=2
     for t=1 to val(Info$(0))
   Info$(t)=""
     next t
 endif
    next m
    exitfunction
endif
for m=1 to 2
    if m=1
     read string 1,string$
     string=val(string$)
     dim Info#(string)
     Info#(0)=string
     for t=1 to string
   read string 1,Info$
   Info#(t)=val(Info$)
     next t
    endif
    if m=2
     read string 1,string$
     string=val(string$)
     dim Info$(string)
     Info$(0)=string$
     for t=1 to string
   read string 1,Info$(t)
     next t
    endif
next m
endfunction


Вот и все!
Кому что не понятно, обьясню!
Перейти в начало страницы
 
+Цитировать сообщение
Sha/|/|an
сообщение 21.11.2004, 16:07
Сообщение #2


Digital Mystery
***

Группа: Пользователи
Сообщений: 1887
Регистрация: 1.9.2004
Пользователь №: 8



А кому нужен код для загрузки и расстановки объектов, создания ландшафта по карте высот и текстурирования по карте текстур + чтение и выполнения скрипта + загрузка парамтров карты? Да все-равно не дам... wink.gif Точнее могу дать код, который анализирует строки и вызывает функции с указаными параметрами (пойдет для скрипта). Правда сам я использую не его, а как обычно, более тупой, громоздкий и менее понятный код. smile.gif


--------------------
exclusive reality for you...
Перейти в начало страницы
 
+Цитировать сообщение
сообщение 21.11.2004, 20:11
Сообщение #3





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Я вообщето написал это для мелких аркадок, где не много значений, и карту сохронять со всеми обьектами не надо... Типа Му-Му! Там же тока Имя, и очки надо сохранить. Вот для таких целей она, я думаю, очень подойдет!

И загрузка должны быть поменьше намного... Но из-за глюков ДБ, она такая...
Перейти в начало страницы
 
+Цитировать сообщение
pavelman
сообщение 29.5.2009, 19:01
Сообщение #4


Активный участник
***

Группа: Пользователи
Сообщений: 201
Регистрация: 29.5.2009
Из: Russian Federation
Пользователь №: 65589



Видели бы мой страшный редактор 3д ландшафта, кстати там тоже есть функция сохранения и загрузки. Тока я его не доработал можно выбрать только файл отображающийся в левом верхнем углу экрана. Есть скролинг файлов. Только названия файлов накладываются на 3д мир. И потом я забросил до прихода новой мысли.
xm=mousex()
ym=mousey()
if mouseclick()=1 and ym>1 and ym<32 and xm>1 and xm<256 :rem вот сам выбор файла
files$=file1$(cur) rem в cur записан номер файла который отображается в левом верхнем углу экрана.
goto save11
endif
вот часть проги


--------------------
Если утром хорошо
встал, значит вечером
плохо выпил.
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 27.5.2017, 13:00
 X 
Ссылки на работы форумчан:
1. Cайт по использованию 3D технологий
в образовании

2. 15 Defense. Underwater Battle

3. GlaZ в Steam Greenlight