ReadStringFormat()
Синтаксис
Result = ReadStringFormat(#File)
Описание
Проверяет у файла наличие метки BOM (Byte Order Mark) и определяет формат кодирования строк.
Параметры
#File Номер файла, у которого требуется определить BOM и кодировку.
Возвращаемое значение
Возвращает одно из следующих значений:Возвращаемые значения #PB_Ascii, #PB_UTF8 и #PB_Unicode можно использовать непосредственно в последующих вызовах функции ReadString() для чтения файла. Другие возвращаемые значения обозначают строковые форматы, которые не могут быть прочитаны непосредственно строковыми функциями PB. Они включены для полноты, чтобы приложение могло отобразить надлежащее сообщение об ошибке.#PB_Ascii : Метка BOM не обнаружена. Обычно это означает файл простого текста. #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 (сначала старший).
Комментарии
Если метка BOM обнаружена, указатель чтения/записи файла будет перемещён за конец метки BOM. Если BOM не обнаружен, указатель остается на месте.
Метка порядка следования байтов (Byte Order Mark) это общепринятый способ указать кодировку текстового файла. Обычно она помещается в начале файла. Однако это не стандарт, просто общепринятая практика. Так что если метка BOM в начале файла не обнаружена, это не обязательно означает что это файл простого текста. Это может также означать, что программа, создавшая файл, не использует эту практику. Чтобы поместить такую метку BOM в файл воспользуйтесь функцией WriteStringFormat().
Для получения дополнительной информации см. эту Статью Википедии.
Больше информации об использовании юникода в программе PureBasic также можно найти здесь.
Пример (Фран)
Fichier$ = OpenFileRequester("Выберите файл", "", "Текст (.txt)|*.txt|Все (*.*)|*.*", 0) If Fichier$ If ReadFile(0, Fichier$) Format=ReadStringFormat(0) 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 EndIf
См. также
WriteStringFormat(), ReadString(), OpenFile(), ReadFile()
Поддерживаемые OS
Все