WriteStringFormat()
Синтаксис
Result = WriteStringFormat(#File , Format)
Описание
Пишет метку BOM (метка порядка байт) в текущей позиции в файле.
Параметры
#File Номер файла, в который будет производиться запись. Format Формат, для которого должна быть записана метка. Этот параметр может быть одним из следующих значений: #PB_Ascii : Не записывает метку BOM вообще (это обычно понимается как файл простого Ascii.) #PB_UTF8 : Метка BOM UTF-8 #PB_Unicode: Метка BOM UTF-16 (сначала младший) #PB_UTF16BE: Метка BOM UTF-16 (сначала старший) #PB_UTF32 : Метка BOM UTF-32 (сначала младший) #PB_UTF32BE: Метка BOM UTF-32 (сначала старший)Значения #PB_Ascii, #PB_UTF8 и #PB_Unicode соответствуют флагам, поддерживаемым функциями WriteString() и WriteStringN(). После вставки такой метки BOM, последующие строки должны записываться с этим флагом. Другие форматы представляют строковые форматы, которые нельзя записать непосредственно с помощью строковых функций PB. Они включены только для полноты.
Возвращаемое значение
Возвращает не нулевое значение, если операция прошла успешно, и значение равное нулю, если она не удалась.
Комментарии
Из-за буферизации файлов эта функция может возвратиться успешно, даже если на устройстве вывода недостаточно места для операции записи. Файл должен быть открыт с разрешением функции записи (то есть не с помощью ReadFile()).
Метка порядка байт (Byte Order Mark) это общепринятый способ указать кодировку текстового файла. Обычно она помещается в начале файла. Однако это не стандарт, просто общепринятая практика. Так что если метка BOM в начале файла не обнаружена, это не обязательно означает что это файл простого текста. Это может также означать, что программа, создавшая файл, не использует эту практику. Чтобы обнаружить метку BOM внутри файла, воспользуйтесь функцией ReadStringFormat().
Для получения дополнительной информации см. эту Статью Википедии.
Больше информации об использовании юникода в программе PureBasic также можно найти здесь.
Пример (Фран)
If CreateFile(0, "Test.txt") ; Создать новый текстовый файл... WriteStringFormat(0, #PB_Unicode); Файл в формате Юникод WriteStringN(0, "Строка п р и в е т") ; Записать некоторые знаки (с последующим кодом "конец строки") CloseFile(0) ; Закрывает ранее открытый файла и тем сохраняет данные. Else MessageRequester("Инфо", "Невозможно создать файл!") EndIf If ReadFile(0, "Test.txt") Format=ReadStringFormat(0) While Eof(0) = 0 ; Цикл до достижения конца файла. (Eof = 'Конец файла') Debug ReadString(0) ; Отображает построчно содержимое файла Wend CloseFile(0) Select Format Case #PB_Ascii Debug "Не обнаружено BOM. Как правило, стандартный текстовый файл" Case #PB_UTF8 Debug "UTF-8 и BOM обнаружен." Case #PB_Unicode Debug "UTF-16 (сначала младший) и BOM обнаружен." Case #PB_UTF16BE Debug "UTF-16 (сначала старший) и BOM обнаружен." Case #PB_UTF32 Debug "UTF-32 (сначала младший) и BOM обнаружен." Case #PB_UTF32BE Debug "UTF-32 (сначала старший) и BOM обнаружен." Default Debug "неизвестный формат" EndSelect EndIf
См. также
ReadStringFormat(), WriteString(), WriteStringN(), CreateFile(), OpenFile()
Поддерживаемые OS
Все