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

GoncaloMendes

Arquivador

3 mensagens neste tópico

Boas,

Vou apresentar um projecto sério que comecei a arquitectar a já algum tempo.

Trata-se de um arquivador de ficheiros que utilizará um algoritmo baseado em autómatos unicelulares para gerar campos de valores booleanos. Não vou falar ao pormenor do algoritmo e autómato que vou utilizar porque ainda espero ganhar dinheiro com isto um dia  :confused: mas basicamente deve ler a informação binária em blocos ou "mapas" bidimensionais de dimensão variável e sobrepor posições do automato unicelular para gerar blocos grandes a partir de poucos conjuntos de [posição inicial] e [movimentos].

O grau de compressão deve ser directamente proporcional ao tempo gasto a gerar mapas mais bem adaptados a cada bloco.

O meu problema não é algoritmico mas sim técnico. Tentei implementar em Pascal mas a leitura binária não foi tão bem sucedida como quis, e apesar de conseguir recuperar a maior parte das informações havia problemas nos atributos e sub-directorias que não consegui ultrapassar.

Cansei-me daquilo e vou implementar em C, por ser uma linguagem mais mainstream e low-level, espero que haja mais documentação no acesso aos dados binários. Podia ter seguido para assembly mas francamente não tenho paciência para olhar para aquilo mais do que tem que ser.

Por isso o que pedia era ajuda no acesso bit a bit através de C ou tutoriais que me apontem na direcção certa. Informação sobre leitura de blocos de disco rigido também pode ser útil.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Abre o ficheiro em modo de leitura binária, com o fopen. Para manipular os dados bit-a-bit, usa os operadores |, & e ^.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tu respondes-me a tudo, admite, és um bot  :ipool:

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