Não é incomum precisarmos salvar dados em um arquivo texto. Essa é uma tarefa bem simples no PowerBuilder.
O que você precisa fazer?
- [Opcional] Verificar se o diretório existe (DirectoryExists)
- Abrir o arquivo (FileOpen)
- [Opcional] Verificar se o arquivo foi aberto com sucesso
- Escrever no arquivo (FileWriteEx)
- [Opcional] Verificar o retorno da escrita
- Fechar o arquivo (FileClose)
- [Opcional] Verificar se o arquivo foi fechado com sucesso
Os passos opcionais fazem parte das boas práticas de programação e vão te ajudar a fazer um debug, caso ocorra algum problema, mas não são obrigatórios.
Dica: não seja preguiçoso. Faça o código direito… não é tanta coisa assim.
Exemplo:
string ls_path, ls_file long ll_fileNum, ll_ret ls_path = "c:\arquivos\" ls_file = "log.txt" //1. [Opcional] Verificar se o diretório existe if not DirectoryExists(ls_path) then MessageBox("Raccoon.Ninja", "Diretório informado não existe!", StopSign!) halt close end if //2. Abrir o arquivo ll_fileNum = FileOpen(ls_path + ls_file, LineMode!, Write!, LockReadWrite!, Replace!) //3. [Opcional] Verificar se o arquivo foi aberto com sucesso if ll_fileNum = -1 then MessageBox("Raccoon.Ninja", "Não foi possível abrir/criar o arquivo!", StopSign!) halt close end if //4. Escrever no arquivo ll_ret = FileWriteEx(li_FileNum, "Nova linha que será escrita no arquivo...") //5. [Opcional] Verificar o retorno da escrita if ll_ret < 0 then MessageBox("Raccoon.Ninja", "Não foi possível escrever no arquivo!", StopSign!) halt close end if //6. Fechar o arquivo ll_ret = FileClose(ll_FileNum) //7. [Opcional] Verificar se o arquivo foi fechado com sucesso if ll_ret < 0 then MessageBox("Raccoon.Ninja", "Não foi possível fechar no arquivo!", StopSign!) end if //final. halt close
Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.
The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
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