PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 24 → WM - Exemplo de como ler um arquivo txt no Windev Mobile
WM - Exemplo de como ler um arquivo txt no Windev Mobile
Iniciado por adrianoboller, fev., 21 2015 3:50 PM - 3 respostas
Membro registado
2.949 mensagems
Popularité : +89 (91 votes)
Publicado em fevereiro, 21 2015 - 3:50 PM
Procedure ReadFile(ArquivoTxt is string, TipoUnicodeToAnsi is string)

//Le arquivo texto
Info(TimeSys())

// Declare the variables
PathFile is string = ArquivoTxt
IdFile, ResCloseFile, FileID, NumeroLinha is int
Line is string

NextTitle("Atencao")

IF fFileExist(ArquivoTxt) = True

// Open the file
FileID = fOpen(PathFile,foReadWrite)
IF IdFile = -1 THEN
Error(ErrorInfo(errMessage))
ELSE

IF TipoAnsiUnicode = "UnicodeToAnsi"
//Converte de Unicode para Ansi
Line = UnicodeToAnsi(fReadLine(FileID))
ELSE
Line = fReadLine(FileID)
END

//Linha 1
NumeroLinha = 1
/// ----COLOQUE AQUI O PROGRESS BAR = 1
//Info("Linha:" + NumeroLinha, Line) ///----------------- LINHA LIDA
//Inclua aqui a SUB Procedure de importacao dos dados

WHILE Line <> EOT AND Line <> ""

//Proxima linha
NumeroLinha += 1
/// ----COLOQUE AQUI O PROGRESS BAR + 1
Line = fReadLine(FileID)
//Info("Linha:" + NumeroLinha, Line) ///----------------- LINHA LIDA
//Inclua aqui a SUB Procedure de importacao dos dados
END
IF Line = "" THEN Error(ErrorInfo(errMessage))
IF Line = EOT THEN Info("Final do Arquivo.")
ResCloseFile = fClose(IdFile)
IF ResCloseFile = -1 THEN
//Error(ErrorInfo(errMessage))
END

END

ELSE
Info("Arquivo não encontrado!")
END

Info(NumeroLinha,TimeSys())
Publicado em fevereiro, 27 2015 - 2:58 PM
adrianoboller escreveu:
Procedure ReadFile(ArquivoTxt is string, TipoUnicodeToAnsi is string)

//Le arquivo texto
Info(TimeSys())

// Declare the variables
PathFile is string = ArquivoTxt
IdFile, ResCloseFile, FileID, NumeroLinha is int
Line is string

NextTitle("Atencao")

IF fFileExist(ArquivoTxt) = True

// Open the file
FileID = fOpen(PathFile,foReadWrite)
IF IdFile = -1 THEN
Error(ErrorInfo(errMessage))
ELSE

IF TipoAnsiUnicode = "UnicodeToAnsi"
//Converte de Unicode para Ansi
Line = UnicodeToAnsi(fReadLine(FileID))
ELSE
Line = fReadLine(FileID)
END

//Linha 1
NumeroLinha = 1
/// ----COLOQUE AQUI O PROGRESS BAR = 1
//Info("Linha:" + NumeroLinha, Line) ///----------------- LINHA LIDA
//Inclua aqui a SUB Procedure de importacao dos dados

WHILE Line <> EOT AND Line <> ""

//Proxima linha
NumeroLinha += 1
/// ----COLOQUE AQUI O PROGRESS BAR + 1
Line = fReadLine(FileID)
//Info("Linha:" + NumeroLinha, Line) ///----------------- LINHA LIDA
//Inclua aqui a SUB Procedure de importacao dos dados
END
IF Line = "" THEN Error(ErrorInfo(errMessage))
IF Line = EOT THEN Info("Final do Arquivo.")
ResCloseFile = fClose(IdFile)
IF ResCloseFile = -1 THEN
//Error(ErrorInfo(errMessage))
END

END

ELSE
Info("Arquivo não encontrado!")
END

Info(NumeroLinha,TimeSys())
Publicado em fevereiro, 27 2015 - 2:59 PM
testei mas não funcionou
quando da leitura freadline
o conteúdo é um monte de besteira....
Membro registado
2.949 mensagems
Popularité : +89 (91 votes)
Publicado em fevereiro, 27 2015 - 4:06 PM
Ola Marcos, é a questao de ser ANSI, Unicode ou UTF-8, se retornou deu certo, apesar de ser um monte de besteiras como vc mesmo usou a palavra vc tem que verificar se esta vindo o ANSI, Unicode ou UTF-8, dai fazer os testes, mas funciona sim o codigo... Eu nao coloquei todos os detalhes, mas esta ai para vc nao ter que fazer tudo isso do zero. Recomendo verificar os comando de conversao ANSI, Unicode ou UTF-8, se deve ou nao ser usado no arquivo. E assim soliciona o teu problema. Funciona perfeitamente aqui, ok.