Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > Переводы

Переводы Переводы туториалов и хелпов.

Ответ
 
Опции темы
Старый 03.09.2005, 18:50   #1
alcosholik
 
Сообщений: n/a
Хорошо

Полный перевод раздела Command Reference -> 2D-Category -> File из стандартного хелпа Blitz.
 
Ответить с цитированием
Старый 03.09.2005, 18:51   #2
alcosholik
 
Сообщений: n/a
OpenFile (файл$)

Параметры
файл$ = любой допустимый путь и имя файла. Возвращаемое значение – указатель на файл, который используется другими файловыми командами

Описание
Эта команда открывает определенный файл и подготавливает его для изменений. Файл должен существовать, так как функция не создаст новый.

Используя FilePos и SeekFile, можно определить и изменить позицию внутри файла, который открыт для чтения или записи. Это позволяет прочитать и изменить файл без необходимости создания его копии или работы через весь файл последовательно. Может пригодиться, если вы создали файл с базой данных и хотите найти и изменить только несколько записей в нем.

Указатель на файл, который возвращает функция, это integer-число. Оно используется операционной системой для определения, какой именно файл надо прочитать и записать, и может быть использовано в таких функциях, как ReadInt() и WriteInt().

Примечание: нужно проявлять большую осторожность при изменении файлов, которые содержат строки (тип string), так как у них нет фиксированной длины.

См. также: ReadFile, WriteFile, CloseFile, SeekFile.

Пример
; Правка фрагмента файла, используя OpenFile, SeekFile и WriteInt 

; Открыть/создать файл для записи
fileout = WriteFile("mydata.dat") 

; Записать информацию в файл
WriteInt( fileout, 1 ) 
WriteInt( fileout, 2 ) 
WriteInt( fileout, 3 ) 
WriteInt( fileout, 4 ) 
WriteInt( fileout, 5 ) 

; Закрыть файл 
CloseFile( fileout ) 

DisplayFile( "Файл без изменений", “mydata.dat" ) 
; Открыть файл и изменить третье integer-число 

file = OpenFile("mydata.dat") 
SeekFile( file, 8 ); Переместиться к третьему integer-числу в файле 
WriteInt( file, 9999 ); Заменить его значение на 9999
CloseFile( file ) 

DisplayFile( "Файл после правки", "mydata.dat" ) 
WaitKey() 

; **** Определения функций **** 

; Прочитать файл и вывести содержимое на экран 
Function DisplayFile( Tittle$, Filename$ ) 
Print tittle$ 
filein = ReadFile( Filename$ ) 
While Not Eof( filein ) 
Number = ReadInt( filein ) 
Print Number 
Wend 
CloseFile( filein ) 
Print 
End Function
 
Ответить с цитированием
Старый 03.09.2005, 18:52   #3
alcosholik
 
Сообщений: n/a
ReadFile (файл$)

Параметры
файл$ = любой допустимый путь и имя файла. Возвращаемое значение – указатель на файл, который является целым значением (integer-число)

Описание
Эта команда открывается определенный файл и подготавливает его для чтения. Используйте ее для чтения ваших файлов конфигурации, сохраненных данных игры и т.п. Она также полезна для считывания пользовательских типов данных из файла. Указатель на файл, который возвращает функция, является integer-числом. Операционная система использует его для определения, из какого именно файла надо считывать. Указатель на файл также должен быть использован с такими функциями, как ReadInt(). Если не удалось открыть файл (например, если он не существует), указатель на файл будет равен 0.

Пример
; Считывание и запись пользовательских типов в файлы, используя ReadFile, WriteFile и CloseFile

; Инициализация некоторых переменных для примера 
Type HighScore 
Field Name$ 
Field Score% 
Field Level% 
End Type 

Best.HighScore = New HighScore 
BestName = "Марк" 
BestScore = 11657 
BestLevel = 34 

; Открыть файл для записи 
fileout = WriteFile("mydata.dat") 

; Записать информацию в файл 
WriteString( fileout, BestName ) 
WriteInt( fileout, BestScore ) 
WriteByte( fileout, BestLevel ) 

; Закрыть файл 
CloseFile( fileout ) 

; Открыть файл для считывания
filein = ReadFile("mydata.dat") 

; Считать наилучший результат (score) из файла 
Greatest.HighScore = New HighScore 
GreatestName$ = ReadString$( filein ) 
GreatestScore = ReadInt( filein ) 
GreatestLevel = ReadByte( filein ) 

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

Print "Рекорд (HighScore), считанный из файла mydata.dat " 
Print 
Write "Name = " 
Print GreatestName 
Write "Score = " 
Print GreatestScore 
Write "Level = " 
Print GreatestLevel 

WaitKey()
 
Ответить с цитированием
Старый 03.09.2005, 18:53   #4
alcosholik
 
Сообщений: n/a
WriteFile (файл$)

Параметры
файл$ = любой допустимый путь и имя файла. Возвращаемое значение – указатель на файл, который является целым значением (integer-число)

Описание
Эта команда открывается определенный файл и подготавливает его для записи. Используйте ее для записи собственных файлов конфигурации, сохранения данных игры и т.п. Она также полезна для записи пользовательских типов данных в файл. Указатель на файл, который возвращает функция, является integer-числом. Операционная система использует его для определения, из какого именно файла надо считывать. Указатель на файл также должен быть использован с такими функциями, как WriteInt().Если не удалось открыть файл, указатель на файл будет равен 0.

Пример
; Считывание и запись пользовательских типов в файлы, используя ReadFile, WriteFile и CloseFile

; Инициализация некоторых переменных для примера 
Type HighScore 
Field Name$ 
Field Score% 
Field Level% 
End Type 

Best.HighScore = New HighScore 
BestName = "Марк" 
BestScore = 11657 
BestLevel = 34 

; Открыть файл для записи 
fileout = WriteFile("mydata.dat") 

; Записать информацию в файл 
WriteString( fileout, BestName ) 
WriteInt( fileout, BestScore ) 
WriteByte( fileout, BestLevel ) 

; Закрыть файл 
CloseFile( fileout ) 

; Открыть файл для считывания
filein = ReadFile("mydata.dat") 

; Считать наилучший результат (score) из файла 
Greatest.HighScore = New HighScore 
GreatestName$ = ReadString$( filein ) 
GreatestScore = ReadInt( filein ) 
GreatestLevel = ReadByte( filein ) 

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

Print "Рекорд (HighScore), считанный из файла mydata.dat " 
Print 
Write "Name = " 
Print GreatestName 
Write "Score = " 
Print GreatestScore 
Write "Level = " 
Print GreatestLevel 

WaitKey()
 
Ответить с цитированием
Старый 03.09.2005, 18:54   #5
alcosholik
 
Сообщений: n/a
CloseFile указатель_на_файл

Параметры
указатель_на_файл = переменная, определенная командой ReadFile, WriteFile или OpenFile

Описание
Используйте эту команду для закрытия ранее открытого файла. Вам следует всегда закрывать файл, как только вы закончили работать с ним.

Пример
; Считывание и запись пользовательских типов в файлы, используя ReadFile, WriteFile и CloseFile

; Инициализация некоторых переменных для примера 
Type HighScore 
Field Name$ 
Field Score% 
Field Level% 
End Type 

Best.HighScore = New HighScore 
BestName = "Марк" 
BestScore = 11657 
BestLevel = 34 

; Открыть файл для записи 
fileout = WriteFile("mydata.dat") 

; Записать информацию в файл 
WriteString( fileout, BestName ) 
WriteInt( fileout, BestScore ) 
WriteByte( fileout, BestLevel ) 

; Закрыть файл 
CloseFile( fileout ) 

; Открыть файл для считывания
filein = ReadFile("mydata.dat") 

; Считать наилучший результат (score) из файла 
Greatest.HighScore = New HighScore 
GreatestName$ = ReadString$( filein ) 
GreatestScore = ReadInt( filein ) 
GreatestLevel = ReadByte( filein ) 

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

Print "Рекорд (HighScore), считанный из файла mydata.dat " 
Print 
Write "Name = " 
Print GreatestName 
Write "Score = " 
Print GreatestScore 
Write "Level = " 
Print GreatestLevel 

WaitKey()
 
Ответить с цитированием
Старый 03.09.2005, 18:55   #6
alcosholik
 
Сообщений: n/a
FilePos (указатель_на_файл)

Параметры
указатель_на_файл = переменная, определенная командой ReadFile, WriteFile или OpenFile. Возвращаемое значение – смещение от начала файла (0 = начало файла)

Описание
Эта команда возвращает текущую позицию внутри обрабатываемого файла после его открытия командой ReadFile, WriteFile или OpenFile. Integer-число, возвращенное функцией, является смещением в байтах от начала файла до текущей позиции чтения/записи. Значение 0 указывает на начало файла.

Используя FilePos и SeekFile, можно определить и изменить позицию внутри файла, который открыт для чтения или записи. Это позволяет прочитать и изменить файл без необходимости создания его копии или работы через весь файл последовательно. Может пригодиться, если вы создали файл с базой данных и хотите найти и изменить только несколько записей в нем. Также возможно создать файл, который содержит указатели на места, где начинается каждая запись в файле данных.

Пример
; Правка фрагмента файла, используя OpenFile, SeekFile, FilePos
; примечание: FilePos используется в функции SearchFile в конце этого примера

; Открыть/создать файл для записи 
fileout = WriteFile("mydata.dat") 

; Записать информацию в файл 
WriteInt( fileout, 1 ) 
WriteInt( fileout, 2 ) 
WriteInt( fileout, 3 ) 
WriteInt( fileout, 4 ) 
WriteInt( fileout, 5 ) 

; Закрыть файл 
CloseFile( fileout ) 

DisplayFile( "Файл без изменений", “mydata.dat" ) 
Position = SearchFile( 4 , "mydata.dat" ) 
Write "Значение 4 было найдено " 
Write Position 
Print " байт от начала." 
Print 

; Открыть файл и изменить значение 3 на 9999 

file = OpenFile("mydata.dat") 
SeekFile( file, Position ); Перейти к найденному месту 
WriteInt( file, 9999 ); Заменить значение на 9999 
CloseFile( file ) 


DisplayFile( "Файл после правки", "mydata.dat" ) 
WaitKey() 
End; Конец программы 

; **** Определения функций **** 

; Прочитать файл и вывести содержимое на экран
Function DisplayFile( Tittle$, Filename$ ) 
Print tittle$ 
file = ReadFile( Filename$ ) 
While Not Eof( file ) 
Number = ReadInt( file ) 
Print Number 
Wend 
CloseFile( file ) 
Print 
End Function 

; Просмотреть файл с integer-числами, чтобы найти искомое значение
; Не забывайте вычитать 4 из позиции после прочтения значения
; теперь мы указываем на следующее integer-число
; также мы поместили Return() после закрытия файла, и теперь файл закрыт правильно
Function SearchFile( Wanted, Filename$ ) 
file = ReadFile( Filename$ ) 
While Not Eof( file ) 
If ReadInt( file ) = Wanted Then Location = FilePos( file ) - 4 
Wend 
CloseFile( file ) 
Return( Location ) 
End Function
 
Ответить с цитированием
Старый 03.09.2005, 18:56   #7
alcosholik
 
Сообщений: n/a
SeekFile (указатель_на_файл, смещение)

Параметры
указатель_на_файл = переменная, определенная командой ReadFile, WriteFile или OpenFile. Возвращаемое значение – смещение от начала файла (0 = начало файла)

Описание
Эта команда позволяет изменить позицию в файле. Команда делает возможным прямой доступ к любым данным внутри файлов и может быть использована с файлами, открытыми командой ReadFile, WriteFile или OpenFile. Заметьте, что смещение – это количество байтов от начала файла. Важно принимать во внимание размер элементов данных в вашем файле.

К примеру, переменные типа integer имеют длину 4 байта, т.е. первое integer-число в файле имеет позицию со смещением 0, второе – со смещением 4. Если вы перезаписываете пользовательские типы данных, вы должны узнать, сколько байтов занимает каждый из них, чтобы можно было перемещаться по файлу корректно. Поиск за пределами конца файла не выдаст ошибку, но данные не будут считаны или записаны в файл, могут появиться неизвестные побочные эффекты.

Используя FilePos и SeekFile, можно определить и изменить позицию внутри файла, который открыт для чтения или записи. Это позволяет прочитать и изменить файл без необходимости создания его копии или работы через весь файл последовательно. Может пригодиться, если вы создали файл с базой данных и хотите найти и изменить только несколько записей в нем. Также возможно создать файл, который содержит указатели на место, где начинается каждая запись в файле с данными.

Чтобы подсчитать смещение, вам нужно знать длину каждого элемента данных:
смещение = искомый_элемент * размер_элемента – размер_элемента

Для примера, файл с integer-числами, длина которых по 4 байта, подсчитывается так:
7-е число имеет позицию со смещением 7 * 4 – 4, т.е. 24

Примечание: нужно проявлять большую осторожность при изменении файлов, которые содержат строки (тип string), так как у них нет фиксированной длины.

Пример
; Правка фрагмента файла, используя OpenFile, SeekFile и FilePos

; Открыть/создать файл для записи 
fileout = WriteFile("mydata.dat") 

; Записать информацию в файл 
WriteInt( fileout, 100 ) 
WriteInt( fileout, 200 ) 
WriteInt( fileout, 300 ) 
WriteInt( fileout, 400 ) 
WriteInt( fileout, 500 ) 

; Закрыть файл 
CloseFile( fileout ) 

DisplayFile( "Файл без изменений", mydata.dat" ) 

Print "Считывание данных в случайном порядке" 
; Открыть файл, чтобы считать из него только 4-й и 2-й элементы

file = OpenFile("mydata.dat") 

; Считать и вывести на экран 4-е integer-число, т.е. 4*4-4 = 12 байт от начала файла
SeekFile( file, 12 ); Сместиться к нужной позиции 
Number = ReadInt( file ) 
Print Number 

; Считать и вывести на экран 2-е integer-число, т.е. 2*4-4 = 4 байта от начала файла
SeekFile( file, 4 ); Сместиться к нужной позиции 
Number = ReadInt( file ) 
Print Number 

CloseFile( file ) 

Waitkey() 
End; Конец программы 

; **** Определения функций **** 

; Прочитать файл и вывести его содержимое на экран 
Function DisplayFile( Tittle$, Filename$ ) 
Print tittle$ 
file = ReadFile( Filename$ ) 
While Not Eof( file ) 
Number = ReadInt( file ) 
Print Number 
Wend 
CloseFile( file ) 
Print 
End Function
 
Ответить с цитированием
Старый 03.09.2005, 18:57   #8
alcosholik
 
Сообщений: n/a
ReadDir (директория)

Параметры
директория = полный путь и имя директории/каталога для открытия

Описание
В операциях с файлами вам часто потребуется просматривать всю директорию/каталог и отыскивать файлы или папки, не зная их имен. Эта команда открывает заданный каталог для проделывания операций, описанных выше. Возвращает указатель на файл, который используется другими командами для выполнения других операций над файлами. Нужно использовать NextFile$, чтобы переходить к следующему объекту (используйте FileType, чтобы узнать файл это или папка). Запомните, хороший стиль программирования требует закрытия (CloseDir) открытой директории после завершения работы с ней. Пример должен помочь разобраться.

Пример
; ReadDir/NextFile$/CloseDir – пример использования

; Определить, с какой директории начать
folder$="C:" 

; Открыть директорию и сохранить указатель в myDir
myDir=ReadDir(folder$) 

; Будем повторять бесконечно, пока не кончатся файлы/папки в заданной директории
Repeat 
; Назначить следующий объект в директории переменной file$
file$=NextFile$(myDir) 

; Если такового нет, выйти из цикла
If file$="" Then Exit 

; Использовать FileType, чтобы определить является объект папкой или файлом, и вывести результаты
If FileType(folder$+""+file$) = 2 Then 
Print "Folder:" + file$ 
Else 
Print "File:" + file$ 
End If 
Forever 

; Правильно закрыть директорию 
CloseDir myDir 

; Вот и все! 
Print "Закончили пролистывание файлов!"
 
Ответить с цитированием
Старый 03.09.2005, 18:58   #9
alcosholik
 
Сообщений: n/a
CloseDir указатель_на_файл

Параметры
указатель_на_файл = переменная, хранящая указатель, полученный командой ReadDir

Описание
Как только вы закончили работать с NextFile$ в ранее открытой командой ReadDir директории, используйте эту команду, чтобы закрыть ее. Это хороший стиль программирования!

См. также: ReadDir, NextFile$

Пример
; ReadDir/NextFile$/CloseDir – пример использования

; Определить, с какой директории начать
folder$="C:" 

; Открыть директорию и сохранить указатель в myDir
myDir=ReadDir(folder$) 

; Будем повторять бесконечно, пока не кончатся файлы/папки в заданной директории
Repeat 
; Назначить следующий объект в директории переменной file$
file$=NextFile$(myDir) 

; Если такового нет, выйти из цикла
If file$="" Then Exit 

; Использовать FileType, чтобы определить является объект папкой или файлом, и вывести результаты
If FileType(folder$+""+file$) = 2 Then 
Print "Folder:" + file$ 
Else 
Print "File:" + file$ 
End If 
Forever 

; Правильно закрыть директорию 
CloseDir myDir 

; Вот и все! 
Print "Закончили пролистывание файлов!"
 
Ответить с цитированием
Старый 03.09.2005, 18:59   #10
alcosholik
 
Сообщений: n/a
NextFile$ (указатель_на_файл)

Параметры
указатель_на_файл = переменная, хранящая указатель, полученный командой ReadDir

Описание
Эта команда возвращает следующий файл или папку из открытой в данный момент директории (используйте ReadDir, чтобы открыть необходимую директорию для считывания). Т.е. она возвращает строку, содержащую имя папки или файла с расширением. Используйте FileType, чтобы определить папка это или файл. Вы не можете «двигаться» в обратную сторону внутри директории, только вперед. Можно распределить содержимое директории по элементам массива для отображения и т.п.

См. также: ReadDir и CloseDir.

Пример
; ReadDir/NextFile$/CloseDir – пример использования

; Определить, с какой директории начать
folder$="C:" 

; Открыть директорию и сохранить указатель в myDir
myDir=ReadDir(folder$) 

; Будем повторять бесконечно, пока не кончатся файлы/папки в заданной директории
Repeat 
; Назначить следующий объект в директории переменной file$
file$=NextFile$(myDir) 

; Если такового нет, выйти из цикла
If file$="" Then Exit 

; Использовать FileType, чтобы определить является объект папкой или файлом, и вывести результаты
If FileType(folder$+""+file$) = 2 Then 
Print "Folder:" + file$ 
Else 
Print "File:" + file$ 
End If 
Forever 

; Правильно закрыть директорию 
CloseDir myDir 

; Вот и все! 
Print "Закончили пролистывание файлов!"
 
Ответить с цитированием
Старый 03.09.2005, 18:59   #11
alcosholik
 
Сообщений: n/a
CurrentDir$()

Параметры
Отсутствуют.

Описание
Эта команда возвращает выбранную в данный момент директорию, полезно для продвинутых операций с файлами. Используйте ChangeDir, чтобы изменить текущую директорию. У возвращаемого значения нет замыкающей черты, за исключением корневого каталога диска. (чтобы понять, когда есть замыкающая черта, а когда ее нет, поэкспериментируйте сами - прим. перев.)

Пример
; CurrentDir$() – пример использования

; Выводить на экран текущую директорию, пока не будет нажато Esc 
While Not KeyHit(1) 
Print CurrentDir$() 
Wend
 
Ответить с цитированием
Старый 03.09.2005, 19:01   #12
alcosholik
 
Сообщений: n/a
ChangeDir директория/путь

Параметры
директория/путь = полный путь к директории/каталогу

Описание
Эта команда сменит выбранную в данный момент директорию, полезно для продвинутых операций с файлами. Используйте CurrentDir$(), чтобы узнать, какая директория является текущей. Вы можете использовать в качестве значения директории/пути «..» для того, чтобы сменить текущую директорию на содержащую ее, пока не окажетесь в корневом каталоге жесткого диска.

Пример
; ChangeDir – пример использования

ChangeDir "c:winntsystem32" 
Print "Директория изменилась на: " + currentdir$()
прим. перев.: не совсем понятно, что значит параметр winntsystem32 (скорей всего "winnt\system32"). Лучше для определения системной папки использовать SystemProperty(), например:
sysdir$ = SystemProperty(“windowsdir”)
ChangeDir sysdir+”system32”
 
Ответить с цитированием
Старый 03.09.2005, 19:01   #13
alcosholik
 
Сообщений: n/a
CreateDir путь/имя

Параметры
путь/имя = полный путь и имя для новой директории

Описание
Создает директорию (папку) по заданному пути. Не используйте замыкающую черту в конце параметра путь/имя (работает и с чертой, даже CreateDir “c:mydir” работает – прим. перев.). Вы не можете быть уверены в том, что директория была создана, так что необходимо проверить, существует ли она (используйте команду FileType для этого).

Пример
; CreateDir – пример использования

fldr$="c:winntsystem32myfolder" 
CreateDir fldr$ 
Print "Папка создана!"
прим. перев.: не совсем понятно, что значит параметр winntsystem32 (скорей всего "winnt\system32"). Лучше для определения системной папки использовать SystemProperty(), например:
sysdir$ = SystemProperty(“windowsdir”)
fldr$=sysdir+”system32\myfolder”
 
Ответить с цитированием
Старый 03.09.2005, 19:02   #14
alcosholik
 
Сообщений: n/a
DeleteDir директория/путь

Параметры
директория/путь = полный путь/имя директории

Описание
Удаляет заданную директорию (папку) с устройства. Работает только с ПУСТЫМИ директориями – вы не можете удалить папку, содержащую другие папки или файлы. Не используйте замыкающую черту (почему-то работает и при ее использовании – прим. перев.).

Пример
; DeleteDir – пример использования

DeleteDir "C:est"
 
Ответить с цитированием
Старый 03.09.2005, 19:03   #15
alcosholik
 
Сообщений: n/a
FileType (файл$)

Параметры
файл$ = любой допустимый путь и имя файла

Описание
Эта команда проверяет файл по указанному пути и определяет, существует ли он, а также является ли он файлом или папкой. Вот значения, которые возвращает команда:

1 = Файл существует
0 = Файл не существует
2 = Существует, но не файл, а директория (папка)

Используйте эту команду для проверки, существует ли файл, перед тем, как работать с ним.

Пример
; Пользователям Windows 9x нужно будет изменить путь к calc.exe

filename$="c:winntsystem32calc.exe" 

if fileType(filename$)=1 then Print "Файл существует!" 
if fileType(filename$)=0 then Print "Файл не найден!" 
if fileType(filename$)=2 then Print "Это папка!" 

Print "Нажмите любую клавишу для выхода." 

WaitKey()
прим. перев.: не совсем понятно, что значит параметр winntsystem32 (скорей всего "winnt\system32"). Лучше для определения системной папки использовать SystemProperty(), например:
sysdir$=SystemProperty(“windowsdir”)
filename$=sysdir+”system32\calc.exe”
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод хелпа - Type impersonalis Переводы 16 19.03.2010 09:16
Перевод хелпа - String alcosholik Переводы 0 15.01.2006 23:03
Перевод хелпа - Text alcosholik Переводы 12 15.10.2005 22:22
Перевод хелпа - Bank alcosholik Переводы 13 03.09.2005 21:51
Перевод хелпа - File/Stream alcosholik Переводы 16 03.09.2005 19:20


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com