Como havia prometido, um jeito de tratar as informações que estão em um arquivo diretamente em bytes, só convertendo os dados já completos:
http://asflake.com/TesteBytes.zip Hospedei ao invés de enviar por aqui porque incluí um arquivo bat que "infla" o arquivo "posicoes.csv", o deixando com mais ou menos 80MB, e o gmail é chatinho com esse tipo de arquivo, mesmo zipado... Veja se atende (ao menos em partes) as suas necessidades. -- Gustavo Y. Kawamoto 2009/12/17 J.C.Ködel <jcko...@gmail.com> > Tem uma rotina que uso para separação de packets em socket que pode lhe > ajudar: > > 1) Abra um FileStream do teu arquivo. > 2) Leia uma quantidade razoável de dados do arquivo (ex.: 32767 bytes) > 3) Verifique com indexOf no array acima se há um separador de linha (\n) > 4) Copie o array acima para outro array, lendo até onde há o separador de > linha (pode converter direto para string, adicionando apenas um zero no > final) > 5) Copie o restante do primeiro array para outro e use ele para adicionar a > próxima leitura > 6) Repita o processo até todo o arquivo ser lido > > Com isso você consegue consumir pouca memória e ler o arquivo aos poucos, > mas é um processo mais lento também. > > > *From:* Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com> > *Sent:* Thursday, December 17, 2009 3:08 PM > *To:* flexdev@googlegroups.com > *Subject:* Re: [flexdev] Leitura de arquivo > 250 MB > > Sim é texto > > informações de fatura telefonica detalhada > que será lido e apresentado gráficamente + funcionalidades como gráficos > > ainda estou tentando acertar o algoritmo de leitura... ler o arquivo blz > agora > o problema está em converter de bytes para String o arquivo lido ^^ > > > > 2009/12/17 Gustavo Kawamoto <gust...@asflake.com> > >> Cara, só uma dúvida: é 250MB de TEXTO? >> >> Já tentou quebrar o arquivo em ByteArrays menores, usando o writeBytes? >> >> -- >> Gustavo Y. Kawamoto >> >> >> >> 2009/12/17 Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com> >> >>> Me empolguei... >>> >>> resolveu parcialmente =/ >>> >>> estava revisando esse método ali me cortou o texto do arquivo e faltou um >>> bom pedaço, >>> mas pelo menos resolveu o problema do processamento, agora tenho q achar >>> outro meio >>> de otimizar essa leitura do arquivo.... :P >>> >>> >>> >>> 2009/12/17 Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com> >>> >>>> Aeeeeeeeeeeeeeeeee >>>> >>>> resolvi o problema da leitura de arquivos com mais de 250 MB >>>> >>>> >>>> // recupera o array de bytes do arquivo >>>> var data:ByteArray = fileReference.data; >>>> >>>> // lê os bytes do arquivo para uma String >>>> //fileContent = data.readUTFBytes(data.bytesAvailable); >>>> fileContent = data.readUTF(); >>>> >>>> só mudar o método para este ali e resolveu tudo, >>>> não estrangulou mais o processador e dei um fim no vortex de memória RAM >>>> ^^ >>>> >>>> *lembrando:* >>>> abrir um arquivo texto, em uma aplicação Adobe Flex, sdk 3.4, Flash >>>> Player 10 >>>> lendo o arquivo diretamente do computador do usuário, através da classe: >>>> FileReference >>>> >>>> fica a dica o/ >>>> >>>> >>>> >>>> >>>> 2009/12/17 Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com> >>>> >>>>> já verifiquei que a leitura e load do arquivo grande ali está >>>>> tranquilo, >>>>> mas na hora de converter para String... >>>>> >>>>> um vortex de memoria RAM aparece e o processador vai a loucura... >>>>> >>>>> // recupera o array de bytes do arquivo >>>>> var data:ByteArray = fileReference.data; >>>>> >>>>> // lê os bytes do arquivo para uma String >>>>> fileContent = data.readUTFBytes(data.bytesAvailable); >>>>> >>>>> alguém tem uma dica para otimizar esse processo de converter os Bytes >>>>> para String? ^^ >>>>> >>>>> >>>>> >>>>> >>>>> 2009/12/17 Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com> >>>>> >>>>> Segundo a documentação >>>>>> >>>>>> http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/net/FileReference.html?filter_flex=4#load() >>>>>> >>>>>> é para aguentar mais de 100 MB a leitura do arquivo... >>>>>> >>>>>> no projeto atualizei o SDK para usar o 3.4 e forçando na definição do >>>>>> Flash Player Runtime para 10 =] >>>>>> >>>>>> tentando ajustar o novo código de leitura e parse do arquivo >>>>>> vamos ver nq vai dar isso ^^ >>>>>> >>>>>> >>>>>> >>>>>> 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 >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> 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 >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> 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 >>>>> >>>> >>>> >>>> >>>> -- >>>> 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 >>>> >>> >>> >>> >>> -- >>> 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 >>> >> >> -- >> 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 > -- 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