gellox

Membros
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Neutro

About gellox

  1. Pessoal, Sou novo aqui no forum, gostaria de saber se é possivel fazer o upload de apenas um pedaço de arquivo com javascript. EX: tenho um arquivo de 5GB e gostarai de fazer o upload do primeiro 1MB. É possivel com javascript? Obrigado!
  2. Olá, pessoal! Estou com um probleminha e espero que possam me ajudar! Estou tentando ler um arquivo em binário, porém sei que o arquivo esta em big endian, meu grande problema é na hora de ler o sinal negativo. fiz um código que funciona para positivo mas não traz o valor correto para negativo, segue o código abaixo e o link do arquivo http://forum.clubedohardware.com.br/attachment.php?attachmentid=95343&d=1385465321: //------------------------------------------------------ #include <stdio.h> #include <stdlib.h> #include <iostream> #include <math.h> FILE *dat; int a,b,c,d,total,pulo,tam; void getch(void) { system("pause"); } int main ( ) { dat=fopen("arquivo.txt", "rb"); if (dat==NULL) { printf("\n"); printf("!!! ERRO !! Verifique se o arquivo de saida não existe, caso exista favor remover ou informar outro nome para o arquivo !!!\n"); getch(); } pulo = 0; printf("informe a literal: "); scanf("%d",&pulo); printf("informe o tamanho da literal: "); scanf("%d",&tam); rewind(dat); fseek(dat,pulo,SEEK_CUR); if (tam==2) { a=fgetc(dat); b=fgetc(dat); printf("primeiro byte = %d,\n",a); printf("segundo byte = %d,\n", B); total=(a * 256) + b; printf("resultado = %d,\n",total); } else if(tam==4) { a=fgetc(dat); b=fgetc(dat); c=fgetc(dat); d=fgetc(dat); printf("primeiro byte = %d,\n",a); printf("segundo byte = %d,\n", B); printf("terceiro byte = %d,\n",c); printf("quarto byte = %d,\n",d); total=(a * 256 * 256 * 256) + (b * 256 * 256) + (c * 256) + d; printf("resultado = %d,\n",total); } else { printf("tamanho invalido\n"); } getch(); } //----------------------------- o que ocorre: informe a literal: 0 informe o tamanho da literal: 4 resultado = 481 //CORRETO informe a literal: 28 informe o tamanho da literal: 2 resultado = 1 //CORRETO informe a literal: 68 informe o tamanho da literal: 2 resultado = 55536 //ERRADO, VALOR CORRETO = -10000
  3. Pessoal imaginem a seguinte situação: Possuo um arquivo binário que o seu conteúdo em 1(um) determinado byte ao converter para decimal deveria ser -10. Eu consigo ler todos os bytes positivos, porém quando o valor e negativo ele não me retorna o valor exato. Já li muito e ouvir falar algo sobre complemento de 2 (dois) e/ou sinal de magnitude. Alguém poderia me ajudar ?? Obrigado
  4. Pessoal, o código que postei abaixo só funciona para números decimais inteiros positivos. Alguém sabe como fazer para o código exibir números negativos também?? Ele até exibe um valor mas não o valor exato Obrigado
  5. Pessoal, consegui resolver.. eu estava fazendo confusão.mas segue anexo o código: #include <stdio.h> #include <stdlib.h> #include <conio.h> int main () { int a,b,c,d,num,dec,total; char e; FILE *fp; fp = fopen("arq.bin", "rb"); if (fp==NULL) { printf("Erro ao abrir arquivo!!!\n"); system("pause"); exit(1); } fseek(fp,3000 , SEEK_CUR); while(1) { a=fgetc(fp); b=fgetc(fp); c=fgetc(fp); d=fgetc(fp); total=(a * 256 * 256 * 256) + (b * 256 * 256) + (c * 256) + d; if (a==EOF & b==EOF & c==EOF & d==EOF ) break; printf("%d,%d,%d,%d,%d\n",a,b,c,d,total); getch (); } fclose(fp); system("pause"); }
  6. Pessoal, eu peguei grupos de 4 bytes, só que estou fazendo a conversão na hora de imprimir na tela. o problema é que preciso fazer uma conta antes de imprimir em shell fiz essa logica abaixo e funcionou, mas vale considerar que as variáveis já haviam sido convertidas para decimal. em C , gostaria de saber se existe alguma função já pronta para converter as variáveis de binário para decimal. assim farei a conta abaixo. ( a * 256 *256 *256) + (b *256 * 256 ) + (c *256) +d segue o código imprimindo em tela: int main () { int a,b,c,d,total; FILE *fp; fp = fopen("a.bin", "rb"); if (fp==NULL) { printf("Erro ao abrir arquivo!!!\n"); system("pause"); exit(1); } fseek(fp, 3000, SEEK_CUR); while(1) { a=fgetc(fp); b=fgetc(fp); c=fgetc(fp); d=fgetc(fp); if (a==EOF & b==EOF & c==EOF & d==EOF ) break; printf("%d,%d,%d,%d\n",a,b,c,d); //getch (); } fclose(fp); system("pause"); }
  7. Pessoal, espero que possam me ajudar! Sou novo na linguagem. Gostaria de saber como faço para ler um arquivo binário, porém só quero começar a ler após 3000 bytes (preciso fazer um skip). O arquivo esta agrupado em grupos de 4 bytes, ou seja tenho que ler de 4 em 4 bytes e fazer o BIG ENDIAN. para depois transformar em decimal. OBS: Arquivo grande 10 GB, tenho que ler sem colocar todo o arquivo na memória. Desde já, obrigado pela ajuda! Atenciosamente! Gellox