Flags de Abertura de Arquivo

Valores de flags de abertura de arquivo especificam o modo de acesso do arquivo. Flags são definidos como se segue:

Identificador

Valor

Descrição

FILE_READ

1

Arquivo é aberto para leitura. Flag é usado em FileOpen(). Ao abrir um arquivo, a especificação de FILE_WRITE e/ou FILE_READ é requerida.

FILE_WRITE

2

Arquivo é aberto para escrita. Flag é usado em FileOpen(). Ao abrir um arquivo, a especificação de FILE_WRITE e/ou FILE_READ é requerida.

FILE_BIN

4

Modo de leitura/escrita binária (sem conversão string para string). Flag é usado em FileOpen()

FILE_CSV

8

Arquivo CSV (todos seus elementos são convertidos para strings do tipo apropriado, unicode ou ansi, e separados por separador). Flag é usado em FileOpen()

FILE_TXT

16

Arquivo de texto simples (semelhando ao arquivo csv, mas sem levar em conta os separadores). Flag é usado em FileOpen()

FILE_ANSI

32

Strings de tipo ANSI (símbolos de um byte). Flag é usado em FileOpen()

FILE_UNICODE

64

Strings de tipo UNICODE (símbolos de dois bytes). Flag é usado em FileOpen()

FILE_SHARE_READ

128

Acesso compartilhado para leitura a partir de vários programas. Flag é usado em FileOpen(), mas ele não substitui a necessidade de indicar o flag FILE_WRITE e/ou FILE_READ ao abrir um arquivo.

FILE_SHARE_WRITE

256

Acesso compartilhado para escrita a partir de vários programas. Flag é usado em FileOpen(), mas ele não substitui a necessidade de indicar o flag FILE_WRITE e/ou FILE_READ ao abrir um arquivo.

FILE_REWRITE

512

Possibilidade de reescrever o arquivo usando as funções FileCopy() e FileMove(). O arquivo deve existir ou deve estar aberto para escrita, de outra forma o arquivo não será aberto.

FILE_COMMON

4096

O caminho do arquivo na pasta comum de todos os terminais cliente \Terminal\Common\Files. Flag é usado em funções FileOpen(), FileCopy(), FileMove() e em FileIsExist().

Um ou vários flags podem ser especificado ao abrir um arquivo. Esta é uma combinação de flags. A combinação de flags é escrita usando o sinal de lógica OR (|), que é posicionado entre os flags enumerados. Por exemplo, para abrir um arquivo em formato CSV para leitura e escrita ao mesmo tempo, especifique a combinação FILE_READ|FILE_WRITE|FILE_CSV.

Exemplo:

   int filehandle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV);

Existem algumas características específicas de funcionamento ao se especificar flags de leitura e escrita:

  • Se FILE_READ é especificado, uma tentativa é feita para abrir um arquivo existente. Caso o arquivo não exista, a abertura do arquivo falha, um novo arquivo não é criado.
  • FILE_READ|FILE_WRITE — um novo arquivo é criado caso o arquivo com o nome especificado não exista.
  • FILE_WRITE — o arquivo é criado novamente com tamanho zero.

Ao abrir um arquivo, a especificação de FILE_WRITE e/ou FILE_READ é requerida.

Flags que definem o tipo de leitura de um arquivo aberto, possuem prioridade. O flag de mais alta prioridade é FILE_CSV, daí vem FILE_BIN, e FILE_TXT é o de mais baixa prioridade. Assim, se vários flags são especificados ao mesmo tempo (FILE_TXT|FILE_CSV ou FILE_TXT|FILE_BIN ou FILE_BIN|FILE_CSV), o flag com a mais alta prioridade será usado.

Flags que definem o tipo de codificação também têm prioridade. FILE_UNICODE é de maior prioridade que FILE_ANSI. Assim, se você especificar a combinação FILE_UNICODE|FILE_ANSI, o flag FILE_UNICODE será usado.

Se nem FILE_UNICODE ou FILE_ANSI forem indicados, FILE_UNICODE fica implícito. Se nem FILE_CSV, ou FILE_BIN, ou FILE_TXT forem especificados, FILE_CSV fica implícito.

Se um arquivo é aberto para leitura como um arquivo de texto (FILE_TXT ou FILE_CSV), e no início do arquivo uma indicação de dois-bytes 0xff,0xfe é encontrada, o flag de codificação será FILE_UNICODE, mesmo se FILE_ANSI for especificado.

Também Veja

Funções de Arquivo