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=12324)

Hellfalcon 02.04.2010 22:46

Считывание из файла чисел
 
Есть файл с числами. Как в блице считать эти числа и сохранить в массив?

Reks888 02.04.2010 22:54

Ответ: Считывание из файла чисел
 
PHP код:

;===================================
;
ReadInt не использован
;из-за проблем блица с кодировкой
;чисел в блокноте
;===================================

Открыть файл для считывания
filein 
ReadFile("mydata.dat"
Считываем из файла длину массива как текст и переводим в число
DimLen
=Int(ReadString(filein)

Dim Highscore(DimLen)

;  
Считать лучшие результаты как строку из файла и пишем в массив
For i=0 to DimLen-1
HighScore
(i)=Int(ReadLine(infile))
Next

Закрыть файлкак  только считывание закончилось
CloseFile
filein 

Print 
"Рекорд  (HighScore), считанный из файла mydata.dat " 
For i=0 to DimLen-1
Print "Место N"+i+" - "+HighScore(i)
Next

WaitKey
()
End 


Tadeus 02.04.2010 23:24

Ответ: Считывание из файла чисел
 
Э, а что за несовместимость? Просто число пишется "напрямую", т.е. как 4 байта, а не как строка.

Hellfalcon 02.04.2010 23:51

Ответ: Считывание из файла чисел
 
выдает три раза ошибку Memory acces violation на
DimLen=Int(ReadString(filein))
У меня файл *.txt . Может из-за этого ?
Как тогда по-другому можно подсчитать количество строк?

Tadeus 02.04.2010 23:56

Ответ: Считывание из файла чисел
 
Цитата:

Сообщение от Hellfalcon (Сообщение 143975)
выдает три раза ошибку Memory acces violation на
DimLen=Int(ReadString(filein))
У меня файл *.txt . Может из-за этого ?
Как тогда по-другому можно подсчитать количество строк?

А файл-то у тебя с правильным именем?

Reks888 03.04.2010 00:03

Ответ: Считывание из файла чисел
 
Цитата:

Сообщение от Hellfalcon (Сообщение 143975)
Как тогда по-другому можно подсчитать количество строк?

PHP код:

i=0
Const VeryBigNumber=32767;Сюда подставить число которое заведомо больше ;максимально возможного числа строк

Dim Highscore
(VeryBigNumber)

While 
Not eof(filein)
Highscore(i)=Int(ReadLine(filein))
i=i+1
Wend 

либо
PHP код:

i=0

While Not eof(filein)
i=i+1
Wend

Dim Highscore
(i)
i=0

While Not eof(filein)
Highscore(i)=Int(ReadLine(filein))
i=i+1
Wend 

От расширения файла не зависит, можешь хоть *.exe читать


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

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