Abre o arquivo especificado para leitura ou gravação e atribui um número de arquivo inteiro (integer) exclusivo. Você pode usar esse número inteiro para identificar o arquivo quando você ler, escreve ou fecha o arquivo. Os argumentos opcionais filemode, fileaccess, filelock e writemode determinam o modo no qual o arquivo é aberto.
Sintaxe:
FileOpen(filename {, filemode {, fileaccess {, filelock {, writemode {, encoding }}}}} )
Retorno:
- Interger positivo diferente de zero se o arquivo for aberto com sucesso;
- -1 se um erro ocorrer;
- Null se o arquivo informado no argumento filename for nulo.
Destalhes sobre a função!
Appeon: Função suportada. No PowerBuilder, o caminho relativo aponta para o diretório da aplicação, mas no Appeon o caminho relativo aponta para o diretório do Desktop do Usuário.
- Caso o PowerBuilder não encontre o arquivo especificado no argumento FileName, se o argumento FileAccess estiver marcado como Write! , ele vai criar um novo com o nome especificado (com o encoding ANSI!, se não houver outro especificado no comando), se o FileAccess estiver como Read! o PowerBuilder vai retornar -1.
- Nem todos os modos de manipulação do arquivo (argumento FileMode) vão suportar Strings E Blobs.
- FileModes que suportam STRINGS: LineMode! e TextMode!
- FileModes que suportam BLOBS: StreamMode!
- Se você tentar abrir um arquivo especificando um encoding diferente do que foi utilizado no momento da criação dele, a função FileOpen retornará -1.
- Se um arquivo binário (utilizando o FileMode StreamMode!), o parâmetro Encoding, se fornecido, será ignorado.
Como utilizar:
Exemplo 01:
//Abrindo um arquivo com as opções padrão. long ll_fileNum ll_fileNum = FileOpen("lista.txt")
Exemplo 02:
//Abrindo um arquivo definindo as configurações... long ll_fileNum ll_fileNum = FileOpen("c:\Temp\Lista.txt", StreamMode!, Write!, LockWrite!, Replace!)
Exemplo 03:
//Criando um arquivo definindo todas as opções, incluindo o Endoding. long ll_ret string ls_file ls_file = "D:\temp\new.txt" ll_ret = FileOpen(ls_file, TextMode!, Write!, LockReadWrite!, Replace!, EncodingUTF8!)
Argumentos:
Argumento | Obrigatório | Descrição |
---|---|---|
FileName | Sim | Nome do arquivo que você quer abrir. Se o caminho para o arquivo não for informado, o PowerBuilder assumirá o caminho relativo. |
FileMode | Não | O valor deste argumento é do tipo enumerated e especifica como é marcado o final da leitura ou escrita de um arquivo. As opções são: LineMode! - Leitura (Padrão) ou gravar o arquivo de uma linha de cada vez. StreamMode! - Leia os blocos de dados binários. TextMode! - Leia os blocos de texto. |
FileAccess | Não | O valor deste argumento é do tipo enumerated e especifica se o arquivo é aberto para leitura ou gravação. Os valores são: Read! - (Padrão) Acesso somente leitura. Write! – Acesso somente para gravação Se o PowerBuilder não localizar o arquivo, um novo arquivo é criado se o argumento fileaccess é definido para "Write!" |
FileLock | Não | O valor deste argumento é do tipo enumerated, especificando se outros tem acesso ao arquivo aberto. Os valores são: LockReadWrite! – (Padrão) somente o usuário que abriu o arquivo tem acesso LockRead! - Somente o usuário que abriu o ficheiro pode lê-lo, mas todo mundo tem acesso de gravação LockWrite! - Somente o usuário que abriu o arquivo pode gravar nele, mas todo mundo tem acesso de leitura Shared! – Todos os usuários têm a leitura e gravação acesso. |
WriteMode | Não | O valor deste argumento é do tipo enumerated. Quando o argumento fileaccess é Write!, especifica se os dados existentes no arquivo são sobrescritos. Os valores são: Append! – (Padrão) gravar dados para o final do arquivo Replate! - Substituir todos os dados existentes no arquivo. WriteMode é ignorado se o argumento fileaccess é ler! |
Encoding | Não | Codificação de caracteres do arquivo que você deseja criar. Utilize esse argumento quando você criar um novo arquivo de texto usando o TextMode! ou LineMode!. Se você não especificar uma codificação, o arquivo é criado com codificação ANSI. Os valores são: EncodingANSI! (Padrão) EncodingUTF8! EncodingUTF16LE! EncodingUTF16BE! |
Referência:
Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022
Pingback: FileReadEx (FileRead) – Raccoon Ninja
Pingback: FileWriteEx (FileWrite) – Raccoon Ninja
Pingback: Erro ao ler arquivo com FileRead – Raccoon Ninja
Pingback: FileClose – Raccoon Ninja
Pingback: DirectoryExists – Raccoon Ninja
Pingback: FileLength64 (FileLength) – Raccoon Ninja