× Linguagem de Programação ADVPL

Perguntas Substituir o MemoRead() por outra função

Mais
10 anos 4 meses atrás #23838 por lidiane.raissa
Tem como substituir o MemoRead() por outra função que leia e suporte arquivos grandes e que não fosse lento?

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23840 por kanaamlrr
Você pode fazer a leitura linha a linha, porém não sei se irá melhorar sua performance.
Pode ser feito utilizando a linha de comando FT_

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23841 por lidiane.raissa
Eu fiz isso... mas ele fica meio lento... por isso queria algo mais rápido :(

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23842 por kanaamlrr
Acho que para leitura de arquivos não tem muita opção.
A velocidade vai depender de fatores como memória, processamento e tráfego de rede do computador que estiver executando a rotina.
Pelo menos eu não conheço uma forma mais rápida.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23843 por lidiane.raissa
Teve um amigo que me disse pra fazer com o FOPEN... e realmente é bem rápido :cheer: :

Static Function teste(cArq)

Local cString := ""
Local nHandle := 0

nHandle := FOPEN(cArq, FO_READ + FO_SHARED)

If nHandle == -1

Return ""

EndIf

cString := FReadStr( nHandle, 1048476 )

Return cString

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23844 por kanaamlrr
Hum...
Se não me engano o FT_ utiliza as funções FOpen e afins internamente.
Valeu por compartilhar a solução! :cheer:

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.117 segundos
Joomla templates by a4joomla