![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Карта в БД [Delphi, Windows]
Ruslan_ © (2003-01-13 15:27:00)Привет всем разработчикам игр!
Возникла необходимость хранить карты в БД, в поле MEMO.
Процедура записи карты в БД (в поле MEMO) проста, а вот считывание карты из MEMO в массив сложнее.
Я решил проблему считывания таким образом:
procedure TForm1.LoadClick(Sender: TObject);
var
i,j,l:integer;
s:string;
x1,y1:integer;
begin
x1:=0;
y1:=0;
for i:=0 to Memo1.Lines.Count-1 do
begin
y1:=y1+1;
s:=Memo1.Lines.Strings[i];
for j:=1 to Length(s) do
begin
if copy(s,j,1)=" " then
begin
for l:=1 to 4 do
begin
if copy(s,j+l,1)=" " then
begin
x1:=x1+1;
if (x1<=100) and (y1<=100) then Map[y1,x1].Land:=StrToInt(Copy(s,j+1,l-1));
Break;
end;
end;
end;
end;
x1:=0;
end;
end;--------------------
Map[y1,x1].Land –массив карты.
Данные в MEMO структурированы таким образом:
0 1 0 3 15 1 1 0 0 0 0 0 0 10 1
1 10 2 4 6 3 0 0 0 0 0 0 0 0 1
0 1 0 3 15 1 1 0 0 0 1 0 1 10 1
1 10 2 4 6 3 0 0 0 0 0 0 1 0 1
и т.д…
пробел в начале и в конце строки.
Такой вопрос: такая процедура считывания правильная?
Может есть вариант по серьезней?
Как бы вы сделали?
И еще один вопрос, можно ли увеличить размер MEMO и как?
БД - ACCESS
Mirovodin (2003-01-14 13:05:00) [1]На самом деле, достаточно удобно для тестирования. Если нужно удобное визуальное представление получить. Я читал про создание игры XXX God (не помню точно как называется, симулятор бога в общем :)) так вот, там файлы с характеристиками персонажей хранились в excel файлах. Тестерам было проще исправлять баланс, подводить статистику и т.д. Т.е. например характеристики оружия, монстров, стоимость и т.д. Потом конечно это все перенесли в бинарный формат.
cyborg (2003-01-14 12:28:00) [2]Честно говоря не понимаю, зачем карту игры хранить в БД?
Mirovodin (2003-01-14 11:54:00) [3]Тип поля TBlobField ( Delphi ), в Accsess нужно использовать бинарный формат данных.
http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988625472&n=14
http://www.symbol.ru/library/delphi_secrets/56.htm
Хранишь в этих полях не строковые значения уровня, а бинарные, так и считывать проще и быстрее работать будет.
Ruslan_ (2003-01-13 21:04:00) [4]А примерчик можете написать (запись/чтение)?
И какой тип поля нужно использовать в БД
Mirovodin (2003-01-13 15:48:00) [5]А не проще ли TBlobField и TBlobStream ?