Conteudo de um arquivo .txt

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

rbonotto
Usuário Nível 3
Usuário Nível 3
Mensagens: 253
Registrado em: 06 Mai 2005 18:52

Conteudo de um arquivo .txt

Mensagem por rbonotto »

Bom dia,

Estou precisando transferir o conteudo de um arquivo de texto para dentro de uma variavel, é possivel ?
o texto não é muito grande, algo de umas 200 linhas.

Lembro que existia alguma coisa com o memoedit, mas não lembro mais os comandos....
mixsistemas@gmail.com
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Conteudo de um arquivo .txt

Mensagem por Itamar M. Lins Jr. »

Ola!
cTexto := hb_memoread("c:\users\xyz\documents\xyz.txt")
HB_MEMOREAD() vs MEMOREAD(): HB_MEMOREAD() is identical to MEMOREAD() except it won’t truncate the last byte (on non-UNIX compatible systems) if it’s a EOF char.

Examples

* This example uses HB_MEMOREAD() to assign the contents of a text
* file to a character variable for later search

cFile := "account.prg"
cString := HB_MEMOREAD( cFile )
cCopyright := "Melina"

IF At( "Melina", cString ) == 0 // check for copyright
HB_MEMOWRIT( cFile, cCopyright + cString ) // if not, add it!
ENDIF
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
rbonotto
Usuário Nível 3
Usuário Nível 3
Mensagens: 253
Registrado em: 06 Mai 2005 18:52

Conteudo de um arquivo .txt

Mensagem por rbonotto »

Era este comando mesmo. Valeu

Mas em arquivos um pouco maiores ele não abre, me parece que esta jogando o conteudo todo dentro de uma mesma linha.

Abraços,
mixsistemas@gmail.com
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Conteudo de um arquivo .txt

Mensagem por bencz »

O memoread le ABSOLUTAMENTE TUDO!!!
ele nao realiza a quebra da linha, veja uma solução...

Código: Selecionar todos

FUNCTION main()
   LOCAL cLinha
   LOCAL aLinhas := HB_ATokens(MEMOREAD("t.txt"), (chr(13) + chr(10))) // considerando que seja "\r\n"
   
   FOR EACH cLinha IN aLinhas
      ? SubStr(cLinha, 1, 10)
   NEXT
RETURN nil
Imagem
Responder