PureBasic

ReadStringFormat()

Синтаксис

Result = ReadStringFormat(#File)

Описание


Проверяет у файла наличие метки BOM (Byte Order Mark) и определяет формат кодирования строк.

Параметры

#File Номер файла, у которого требуется определить BOM и кодировку.

Возвращаемое значение

Возвращает одно из следующих значений:
  #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 (сначала старший).
Возвращаемые значения #PB_Ascii, #PB_UTF8 и #PB_Unicode можно использовать непосредственно в последующих вызовах функции ReadString() для чтения файла. Другие возвращаемые значения обозначают строковые форматы, которые не могут быть прочитаны непосредственно строковыми функциями PB. Они включены для полноты, чтобы приложение могло отобразить надлежащее сообщение об ошибке.

Комментарии

Если метка 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

Все

<- ReadString() - Оглавление File - ReadUnicodeCharacter()->

��q,�