Histórico da Página
...
Portuguese | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Função: FWriteEscreve dados de um buffer de string em um arquivo binário. Para isso, pode-se escrever todo ou parte do conteúdo do buffer, limitando a quantidade de bytes. FWrite ( < nHandle>, < cBuffer>, [ nQtdBytes] ) --> nRet
nRet
//Exemplo 1#include "fileio.ch"...// Abre o arquivonHandle := fopen('c:\garbage\teste.txt' , FO_READWRITE + FO_SHARED )If nHandle == -1 MsgStop('Erro de abertura : FERROR '+str(ferror(),4))Else FSeek(nHandle, 0, FS_END) // Posiciona no fim do arquivo FWrite(nHandle, "Nova Linha", 10) // Insere texto no arquivo fclose(nHandle) // Fecha arquivo MsgAlert('Processo concluído')Endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Exemplo 2//Este exemplo realiza uma cópia de um arquivo Texto chamado ORIGEM.TXT, para um arquivo chamado DESTINO.TXT, no ambiente do Servidor de Aplicação.#INCLUDE "FILEIO.CH"#DEFINE F_BLOCK 1024 // Define o bloco de Bytes a serem lidos / gravados por vezUser Function TestCopy()Local cBuffer := SPACE(F_BLOCK)Local nHOrigem , nHDestino Local nBytesLidos , nBytesFalta , nTamArquivoLocal nBytesLer , nBytesSalvoLocal lCopiaOk := .T. // Abre o arquivo de OrigemnHOrigem := FOPEN("ORIGEM.TXT", FO_READ)// Testa a abertura do ArquivoIf nHOrigem == -1 MsgStop('Erro ao abrir origem. Ferror = '+str(ferror(),4),'Erro') Return .F. Endif// Determina o tamanho do arquivo de origemnTamArquivo := Fseek(nHOrigem,0,2)// Move o ponteiro do arquivo de origem para o inicio do arquivoFseek(nHOrigem,0)// Cria o arquivo de destinonHDestino := FCREATE("DESTINO.TXT", FC_NORMAL)// Testa a criação do arquivo de destinoIf nHDestino == -1 MsgStop('Erro ao criar destino. Ferror = '+str(ferror(),4),'Erro') FCLOSE(nHOrigem) // Fecha o arquivo de Origem Return .F. Endif// Define que a quantidade que falta copiar é o próprio tamanho do ArquivonBytesFalta := nTamArquivo// Enquanto houver dados a serem copiadosWhile nBytesFalta > 0 // Determina quantidade de dados a serem lidos nBytesLer := Min(nBytesFalta , F_BLOCK ) // lê os dados do Arquivo nBytesLidos := FREAD(nHOrigem, @cBuffer, nBytesLer ) // Determina se não houve falha na leitura If nBytesLidos < nBytesLer MsgStop( "Erro de Leitura da Origem. "+; Str(nBytesLer,8,2)+" bytes a LER."+; Str(nBytesLidos,8,2)+" bytes Lidos."+; "Ferror = "+str(ferror(),4),'Erro') lCopiaOk := .F. Exit Endif // Salva os dados lidos no arquivo de destino nBytesSalvo := FWRITE(nHDestino, cBuffer,nBytesLer) // Determina se não houve falha na gravação If nBytesSalvo < nBytesLer MsgStop("Erro de gravação do Destino. "+; Str(nBytesLer,8,2)+" bytes a SALVAR."+; Str(nBytesSalvo,8,2)+" bytes gravados."+; "Ferror = "+str(ferror(),4),'Erro') lCopiaOk := .F. EXIT Endif // Elimina do Total do Arquivo a quantidade de bytes copiados nBytesFalta -= nBytesLerEnddo// Fecha os arquivos de origem e destinoFCLOSE(nHOrigem)FCLOSE(nHDestino)If lCopiaOk MsgStop('Cópia de Arquivos finalizada com sucesso. '+; str(nTamArquivo,12,0)+' bytes copiados.','Final')Else MsgStop( 'Falha na Cópia. Arquivo de Destino incompleto. '+; 'Do total de '+str(nTamArquivo,12,0)+' bytes, faltaram '+str(nBytesFalta,12,0)+' bytes.','Final')EndifReturn Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
|
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas