Olá Ekro.
O projeto que citei foi implementado todo em delphi.
Eu usei uma técnica de leitura de arquivo chamada "Mapped File", mas essa
técnica é muito baixo nível. Usava chamadas privilegiadas da API do Windows.
Eu não tenho link, eu tirei o parte do fonte de um livro de Delphi 2
Advanced.
Mas acredito que se fizer a paginação do arquivo texto você conseguirá.
O problema que vejo é que se seu arquivo não for padronizado, ou seja, como
é um arquivo texto provavelmente cada linha deve ter uma quantidade
diferentes de caracteres, se isso é verdade, irá dificultar o calculo na
paginação. No meu projeto eu tinha esse problema, então a solução foi
adicionar espaços em branco no final de cada linha. Dessa forma todas as
linhas do meu relatório tinham 132 colunas (ou caracteres). Desse jeito para
calcular a paginação era mole.
Em cada paginação eu trazia 66 linhas, cada uma contendo 132 caracteres.
Agora para paginar é só manipulação de arquivo ((132 * 66) * Deslocamento),
onde Deslocamento era a posição do scroll que o usuário rolava. Fazia um
seek no arquivo e boa!!!

2009/12/16 Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com>

> Cara muito legal essa tua ideia,
>
> hj nas minhas leituras e pesquisas estou indo +- para essa linha
>
> por acaso tu tem links do assunto ae?
>
> ps.: achei pouco material sobre ^^
>
> muito obrigado pela ajuda o/
>
> 2009/12/16 Edgard Davidson <edgard.david...@gmail.com>
>
> Olá Erko
>> Uma vez desenvolvi um projeto que tinha o mesmo problema. Naquela ocasião
>> eu tinha que ler um arquivo texto contábil com mais de 4 milhões de linhas,
>> o que dava mais ou menos uns 5GB.
>> Então, usei como analogia aos players de vídeos. Imagine, um vídeo de 1GB
>> como o pc rada? Bom o vilme tem 1GB e uma hora e meia, só que você irá ver
>> segundo por segundo, e cada segundo são 30 frames. Nesse caso, pq então
>> colocar todo o vídeo em memória.
>> Com essa analogia desenvolvi o projeto, onde eu linha blocos do arquivo
>> texto e mandava para a interface, como o usuário só é capaz de ler uma
>> página por vez, então quando ele paginava, eu voltava ao arquivo original,
>> recalculava o deslocamento que ele fez com base no movimento do scoll e
>> trazia novamente mais um pedaço do arquivo. Nessa brincadeira, das milhares
>> de páginas que meu arquivo texto tinha, eu só retornava 64 linhas por vez, o
>> que dava mais ou menos uns 50 kb.
>> Dessa forma consegui resolver o problema e a aplicação ficou um foguete!!!
>>
>>
>>
>>
>>
>> 2009/12/16 Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com>
>>
>> Então o drama é o seguinte
>>>
>>> o cliente já fez o download do arquivo com as informações
>>> que varia de 20 a 250+ MB para os clientes corporativos
>>>
>>> agora se eu tiver q mandar isso via internet para o servidor
>>> para depois voltar
>>>
>>> 250 MB download
>>> 250 MB upload
>>> -250 MB download (creio eu que menos dq o valor inicial em objetos)
>>>
>>> arredondando essa brincadeira: 750 MB de tráfego na internet...
>>>
>>> isso para ver um arquivo é insano ^^
>>>
>>> se bem q eu já apresentei esse cenário na reunião q teve hj o pessoal
>>> meio que aceitou o absurdo e a principio vamos limitar em 100 MB que a
>>> app
>>> o Adobe Flash Player Runtime aguentou ler ^^
>>>
>>> mas continuo a leitura sobre manipulação de arquivos no Adobe Flash
>>> Player 10+
>>>
>>> o/
>>>
>>>
>>> 2009/12/15 J.C.Ködel <jcko...@gmail.com>
>>>
>>>>  OPs. Esqueci do resto: não, não fiz jogos em Flex (ainda). Pura falta
>>>> de tempo.
>>>>
>>>> O jogo em questão era o bom e velho Ultima Online (www.uo.com) com um
>>>> servidor customizado feito em C# (www.runuo.com)
>>>>
>>>>
>>>>  *From:* Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com>
>>>> *Sent:* Tuesday, December 15, 2009 2:47 PM
>>>> *To:* flexdev@googlegroups.com
>>>> *Subject:* Re: [flexdev] Leitura de arquivo > 250 MB
>>>>
>>>> Tenho um projeto aki
>>>>
>>>> Adobe Flex  (interface)
>>>> BlazeDS (Java - Server)
>>>>
>>>> de Telecom, onde os clientes corporativos
>>>> irão ter uma aplicação em Flex para ler/carregar e
>>>> visualizar as informações detalhadas de suas contas
>>>> telefonicas
>>>>
>>>> o problema q os clientes corporativos pode ter casos
>>>> de um arquivo com mais de 200 MB
>>>>
>>>> para arquivos de até 50 MB a aplicação
>>>> está lidando tranquilamente, a leitura do arquivo,
>>>> isto a parte em Adobe Flex =]
>>>>
>>>> o arquivo está na máquina do cliente
>>>>
>>>> no geral a aplicação consiste em geral em um visualizador
>>>> gráfico desse arquivo, que vai apresentar gráficos
>>>> e opções de calculos e filtros ^^
>>>>
>>>> bom se tu souber algo relacionado a leitura de arquivos grandes
>>>> textuais no Adobe Flex e/ou AIR
>>>>
>>>> qq link, referencia já é uma luz ^^
>>>>
>>>> muito obrigado o/
>>>>
>>>> ----
>>>>
>>>> ps.: tu desenvolve games com Adobe Flex é? tem algo publicado, mesmo
>>>> post
>>>> sobre o assunto?
>>>>
>>>> eu curto games ^^
>>>>
>>>>
>>>>
>>>> 2009/12/15 J.C.Ködel <jcko...@gmail.com>
>>>>
>>>>>  Já fiz projetos que tinham que ler mais do que 2 Gb para a memória
>>>>> (um servidor de jogos online). Imagine um jogo online com milhões de itens
>>>>> distribuídos em 7 mapas gigantescos com milhares de jogadores online, tudo
>>>>> em memória e sendo persistido pra disco de tempos em tempos.
>>>>>
>>>>> Por motivos de performance, foi feito via PInvoke.
>>>>>
>>>>> Qual plataforma e linguagem pretende utilizar?
>>>>>
>>>>>  *From:* Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com>
>>>>> *Sent:* Tuesday, December 15, 2009 11:20 AM
>>>>> *To:* flexdev@googlegroups.com
>>>>> *Subject:* [flexdev] Leitura de arquivo > 250 MB
>>>>>
>>>>> Olá pessoal blz?
>>>>>
>>>>> sei que isso é insano, mas tenho um caso aqui
>>>>> que preciso ler um arquivo de 250+ MB e joga-lo para memória
>>>>>
>>>>> que representam uma coleção de objetos
>>>>>
>>>>> alguem aqui já teve a necessidade de ler um arquivo tão grande assim?
>>>>>
>>>>> conhece alguma referencia/link sobre o assunto?
>>>>>
>>>>> grato pela ajuda ^^
>>>>>
>>>>> --
>>>>> Att,
>>>>> Erko Bridee de Almeida Cabrera
>>>>> http://erkobridee.com/
>>>>> http://gospel.erkobridee.com/
>>>>> http://www.cwbfx.com/
>>>>> http://twitter.com/ErkoBridee
>>>>> Currículo: http://netcarreiras.com/prof.html?uid=11410
>>>>>
>>>>> --
>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>> flexdev@googlegroups.com
>>>>> Para sair da lista, envie um email em branco para
>>>>> flexdev-unsubscr...@googlegroups.com
>>>>> Mais opções estão disponíveis em
>>>>> http://groups.google.com/group/flexdev
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Att,
>>>> Erko Bridee de Almeida Cabrera
>>>> http://erkobridee.com/
>>>> http://gospel.erkobridee.com/
>>>> http://www.cwbfx.com/
>>>> http://twitter.com/ErkoBridee
>>>> Currículo: http://netcarreiras.com/prof.html?uid=11410
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>>> Para sair da lista, envie um email em branco para
>>>> flexdev-unsubscr...@googlegroups.com
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>
>>>
>>>
>>> --
>>> Att,
>>> Erko Bridee de Almeida Cabrera
>>> http://erkobridee.com/
>>> http://gospel.erkobridee.com/
>>> http://www.cwbfx.com/
>>> http://twitter.com/ErkoBridee
>>> Currículo: http://netcarreiras.com/prof.html?uid=11410
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>> Para sair da lista, envie um email em branco para
>>> flexdev-unsubscr...@googlegroups.com
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>>
>>
>> --
>> Edgard Davidson.
>> blog:edgarddavidson.com
>> skype:edgarddavidson
>> twitter:http://twitter.com/edgarddavidson
>> LindedIn:http://br.linkedin.com/in/edgarddavidson
>> FaceBook:http://pt-br.facebook.com/people/Edgard-Davidson/100000408023347
>>
>>  --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> Att,
> Erko Bridee de Almeida Cabrera
> http://erkobridee.com/
> http://gospel.erkobridee.com/
> http://www.cwbfx.com/
> http://twitter.com/ErkoBridee
> Currículo: http://netcarreiras.com/prof.html?uid=11410
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
Edgard Davidson.
blog:edgarddavidson.com
skype:edgarddavidson
twitter:http://twitter.com/edgarddavidson
LindedIn:http://br.linkedin.com/in/edgarddavidson
FaceBook:http://pt-br.facebook.com/people/Edgard-Davidson/100000408023347

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a