• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

anonimou

Dividir ficheiro de texto de grandes formatos por linhas

2 mensagens neste tópico

Olá a todos,

Estou com um grave problema...

Preciso desenvolver uma aplicação para dividir um ficheiro de texto em quantas partes o utilizador quiser e gravar os conteudos das divisões noutros ficheiros.

Exemplo: ter um ficheiro de texto orginal de 100 mgbs e dividir este ficheiro em 10 ficheiros de 10mgbs

Só que estas divisões não podem cortar o conteudo das linhas.

Até aqui não tenho problemas em desenvolver o código, escrevo primeiro um código para contar o número total de linhas do ficheiro de texto e em seguida mando cortar o ficheiro "NºLinhas total/nº ficheiros eu quero".

Só que os meus ficheiros de textos podem ter até 20 gbs de informação...

E é óbvio que não consigo por toda a informação numa string...já tentei por a ler e gravar os ficheiros por blocos de memoria  de 2 mbs mas desta maneira pode me cortar uma linha e passar o restante dessa linha para o próximo ficheiro...

alguem me pode ajudar neste assunto?

Obrigado,

Délio Pontes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá

Eu já tive o mesmop problema com ficheiros de relatórios automáticos à alguns anos atrás.

Na altura criei alguns procedimentos em VBA Excell para resolver o assunto,

Basicamente comecei por abrir o dito ficheiro grande para leitura e outro novo para escrita, e fui copiando linha a linha. Usei um contador de linhas e um contador de caracteres que acumulava o comprimento de cada linha que lia. Depois de atingir um limite pré-estabelecido, fechava o novo ficheiro e abria um outro utilizando nomes sequenciais, e assim sucessivamente até atingir o fim do ficheiro original.

O limite pré-estabelecido era calculado pelo tamanho do ficheiro original, sem exceder o limite razoavel para poder abrir no Notepad.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora