Задает формат символов из текстового файла
Синтаксис
Open filename for {Input|Output|Append} Encoding "utf-8"|"utf-16"|"utf-32"|"ascii" as [#]filenum
Параметры
filename for {Input|Output|Append}
Encoding "utf-8"|"utf-16"|"utf-32"|"ascii"
указывает тип кодировки для файла
filenum
неиспользуемый(свободный) номер файла, который
будет ассоциирован с открытым файлом
Описание
Encoding определяет формат для текстового файла Unicode, так
Winput #
и
Print # будут использовать
правильную кодировку. Если его исключить из
Open,
будет кодировка "ascii" по умолчанию.
Только прямой порядок байтов кодировки символов поддерживаются в данный
момент.
- "utf8",
- "utf16"
- "utf32"
- "ascii" (по умолчанию)
Пример
'' Этот пример:
'' 1) Запишет строку в текстовый файл с кодировкой
UTF-16
'' 2) Отобразит байт содержимое файла
'' 3) Прочитает текст обратно из файла
''
'' WSTRING будет работать также, но
String
'' в данном примере используется так как не все консоли
поддерживают
'' печать WSTRING.
'' Имя файла для использования в этом примере
Dim f As String
f = "sample.txt"
''
Scope
Dim s As String
s = "FreeBASIC"
Print "Text to write to " + f + ":"
Print s
Print
'' открываем файл для вывода с использованием
кодировки UTF-16
'' и печатаем краткое сообщение
Open f For Output Encoding "utf-16" As #1
'' ASCII строка преобразуется в UTF-16
Print #1, s
Close #1
End Scope
''
Scope
Dim s As String, n As Integer
'' откроем тот же файл для двоичного вывода и
прочитаем все байты
Open f For Binary As #1
n = LOF(1)
s = Space( n )
Get #1,,s
Close #1
Print "Binary contents of " + f + ":"
For i As Integer = 1 To n
Print Hex( Asc( Mid( s, i, 1 )), 2); " ";
Next
Print
Print
End Scope
''
Scope
Dim s As String
'' откроем файл для ввода с использованием
кодировки UTF-16
'' и считаем сообщение
Open f For Input Encoding "utf-16" As #1
'' ASCII строка преобразуется из UTF-16
Line Input #1, s
Close #1
'' Отображение текста
Print "Text read from " + f + ":"
Print s
Print
End Scope
Вывод:
Текст, записанный в sample.txt:
FreeBASIC
Бинарное содержимое sample.txt:
FF FE 46 00 72 00 65 00 65 00 42 00 41 00 53 00 49 00 43 00 0D 00 0A 00
Текст , прочитанный из sample.txt:
FreeBASIC
Различия платформ
- Unicode (W)STRING не поддерживаются в DOS FreeBASIC
Различия диалектов
- Не доступно в диалекте -lang qb
, но есть псевдоним __Encoding.
Отличия от QB
- В QB не было никакой поддержки Unicode
См. также