Como carregar um arq acima de 65kb Memoread() nao consegue?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

romulobonnadio
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 08 Dez 2009 23:48
Localização: Belo Horizonte

Como carregar um arq acima de 65kb Memoread() nao consegue?

Mensagem por romulobonnadio »

Prezados, boa tarde!
Como faco para carregar um arquivo acima de 65kb, linha por linha?
Usando o Memoread() nao consigo carregar o arquivo todo e depois fazer minha varredura necessaria?
Teria outra funcao que faca o mesmo procedimento do MemoRead()?
Obrigado!

Código: Selecionar todos

            mArqV := MemoRead(mArqV) // Carregando arquivo 

            mMlCountV := MlCount(mArqV,254)

			For iV:=1 To mMlCountV
     			      alinV := FArray(MemoLine(mArqV,254,iV))
.
.
.
                       Next


Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Como carregar um arq acima de 65kb Memoread() nao consegue?

Mensagem por Pablo César »

O MemoRead do Clipper tem essa limitação, você irá precisar ler o arquivo e processá-lo com funções de baixo nível como: FOpen, FRead, FClose, FWrite. Faltou você fazer uma pesquisa avançada aqui no fórum, aqui tem um exemplo:

https://pctoledo.org/forum/viewto ... 932#p79932
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
romulobonnadio
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 08 Dez 2009 23:48
Localização: Belo Horizonte

Ler TXT maior do que 64k

Mensagem por romulobonnadio »

Obrigado pelas dicas, problema solucionado da seguinte forma:

Código: Selecionar todos

  		    aVendas := {}
            FT_FSELECT(1)
		    DO WHILE ! FT_FEOF()
               FT_FSELECT(1); alinV :=  FT_FREADLN()
        	   Aadd(aVendas, FArray(alinV) )
               FT_FSELECT(1);FT_FSKIP()
            ENDDO
			If(Len(aVendas)>4000)
		       Aviso("!!! A atualizacao do arquivo de Vendas nao foi suportada !!!")
			   Saida(MVerano,MVersao)
			Endif



Editado pela última vez por Pablo César em 27 Jun 2013 18:34, em um total de 1 vez.
Razão: Mensagem movida de outro tópico e trazida aqui para dar melhor sentido ao tópico.
Responder