forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос-Ответ (для новичков) (http://forum.boolean.name/showthread.php?t=7886)

Nex 18.02.2010 14:07

Ответ: Вопрос-Ответ (для новичков)
 
А как содержимое банка записать в файл?

BlackOut 18.02.2010 14:36

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

А как содержимое банка записать в файл?
Почитай вот эту полезную статейку:
http://blitzetc.blitzmax.ru/index.ph...online-updater

Там будет упоминание о банках и запись их в поток\файл

is.SarCasm 18.02.2010 14:59

Ответ: Вопрос-Ответ (для новичков)
 
подскажите ссылку на булке. Помню была тема где чел соеденял 3д объекты лайнами.

Nex 19.02.2010 08:18

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от BlackOut (Сообщение 138059)
Почитай вот эту полезную статейку:
http://blitzetc.blitzmax.ru/index.ph...online-updater

Там будет упоминание о банках и запись их в поток\файл

Ну прочитал и все про что я там понял про банки я в хелпе видел...
У меня почему при попытке скинуть банк в файл вылазит ошибка, что банк не найден. Банк я создавал в функции и добавил его в глобал, но все равно не находит. :(

Жека 19.02.2010 09:28

Ответ: Вопрос-Ответ (для новичков)
 
Nex, посмотри пример ниже, может в нём то, что тебе надо.

Код:

Local size = 20
Local bank = CreateBank (size) ;создаём банк
Local offset = 0

;записываем данные в банк
For k=1 To size/2
        PokeShort (bank, offset, Rand (0,30000))
        offset = offset + 2
Next

;открываем файл для записи данных
Local file = WriteFile ("data.txt")

WriteLine (file, "bank data")
WriteBytes (bank, file, 0, size) ;записываем из банка в файл

;закрываем файл
CloseFile (file)

End


Nex 19.02.2010 10:05

Ответ: Вопрос-Ответ (для новичков)
 
Сори, все разобрался. В одной строчке не много напутал. :)

Reks888 20.02.2010 17:32

Ответ: Вопрос-Ответ (для новичков)
 
Считываю из файла TotalEdges и TotalVertex, и задаю по этим величинам массивы в типе. Тут компилятор заявляет мне "blitz array sizes must be a constant". Ну я понял намек, поменял на прочтение из файла Const TotalEdges и Const TotalVertex. Опа, опять: Expression must be a constant. Хотелось бы узнать что делать с константами которые не хотят принимать значение переменных, либо как задать размер массива в типе переменной. При брутальном варианте а-ля "Тупо задать размер массива" все работает, но мне нужен именно размер взятый из файла.

Nafi 20.02.2010 18:07

Re: Вопрос-Ответ (для новичков)
 
В блице нет массивов переменной длинны. Размер массива задается при компиляции и не может быть изменен во время выполнения программы.
Можешь задать с запасом, если есть лишняя память. Или использовать типы.

impersonalis 20.02.2010 18:26

Ответ: Вопрос-Ответ (для новичков)
 
dim !

Reks888 20.02.2010 19:05

Ответ: Вопрос-Ответ (для новичков)
 
Спасибо за совершенно бесполезные ответы :-D
Мне нужно чтобы для уровня был массив длины x. Массив этот задан в типе, и поэтому идея вставить тип в тип - незачет. Вот таким куском кода я инициализирую этот массив
mapfile=ReadFile("mapfile.wp")
TotalVertex=Int(Readln(mapfile))

Type EnemyTank
Field адын
Field два
....
Field n
Field MASSIVKOTORIINERABOTAET![TotalVertex]
End Type
Тут компилятор заявляет мне "blitz array sizes must be a constant". Тогда я перед TotalVertex=Int(Readln(mapfile)) вставляю Const и получаю ошибку Expression must be a constant.
Мне совершенно не подходит dim, поскольку мне нужен ОТДЕЛЬНЫЙ МАССИВ под каждый элемент типа. Прошу мне помочь найти возможность создать массив длины x, в типе.

H@NON 20.02.2010 19:33

Ответ: Вопрос-Ответ (для новичков)
 
локальный массив должен быть четко задан в начале программы числом, иначе юзай глобальный массив dim.

Reks888 20.02.2010 20:00

Ответ: Вопрос-Ответ (для новичков)
 
Чтото я никак не пойму, мне что так делать:
Readline(mapfile,TotalVertex)
Select TotalVertex
Case 1
Const konstant=1
Case 2
Const konstant=2

Должен же быть какой-то выход, врятли блиц делали через жопу(правда начинаю в этому сомневатся)

H@NON 20.02.2010 20:16

Ответ: Вопрос-Ответ (для новичков)
 
А так сделать не судьба?
Код:

Type EnemyTank
Field адын
Field два
....
Field n
Field MASSIVKOTORIINERABOTAET![2147483647], TotalVertex
End Type


Reks888 20.02.2010 20:50

Ответ: Вопрос-Ответ (для новичков)
 
Эт ты жирно. Ну так и быть, зарезервирую лишних слотов сколько положено, но вопрос все ещё открыт

firstvirus 20.02.2010 22:54

Ответ: Вопрос-Ответ (для новичков)
 
Хм, у меня в одном коде считывалась переменная StCount% а потом после считывания из файла Dim TStrings(StCount), ну а потом забивал массив строками. Даже сейчас пашет без проблем :) версия блица 1.103. Попробуй!
пример моего кода
Код:

;чтение файла конфига в массив
flin=ReadFile("config.cfg")
StCount%=ReadInt(flin)
Dim TStrings(StCount%-1)
For i=0 To StCount%-1
TStrings(i)=ReadString(flin)
Next



Часовой пояс GMT +4, время: 01:14.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot