Ir para conteúdo
Fórum Script Brasil

Namidia1

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Namidia1

Namidia1's Achievements

0

Reputação

  1. Tenho vários arquivos .txt que contém apenas números. O nome dos arquivos são folha0001.txt, folha0002.txt, folha0003.txt, ..., folha1000.txt. Quero um que conte as repetições de todos os números no intervalo de 0 a 255. por exemplo, se tenho 1000 arquivos e em cada arquivo aparece 5 vezes o número 13 e 4 vezes o número 327, no final da contagem deverá mostrar que há 5000 repetições do número 13 e 4000 repetições do numero 327. Tenho um Exemplo de um contador em que só tem interesse de contar o número 255 dentro de arquivos que contem apenas os números 0 e 255. #include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <math.h> unsigned folha ( int valor){ } int main(int argc, char* argv[]) { // varivavel com o nome do arquvio sera completada com o numero do arquivo char buffer[100] = "folha", ch; char aux[500]; int j = 0; int x = 0; int i=1; int valor = 255; unsigned num=0; unsigned contarq = 0; FILE *arq; //itoa(i,buffer,10);//aqui para converter apenas o inteiro em string //completando a string com o indice do arquivo sprintf(buffer,"%s000%d.txt",buffer,i); // para formatar as strings ou concatenar valores, onde %s(string) %(d) inteiro na base 10 printf("%s\n", buffer); arq = fopen(buffer, "r"); // vai abrindo os arquivos um por um ate não encontrar mais nenhum while (arq != NULL){ // percorrendo e procurando o valor no aquivo folhaINDICE.txt while( (ch=fgetc(arq))!= EOF ) //quando encontrar um numero, vai atribui ao vetor aux, um por um, ate encontrar o numero completo ex: 2 , 25 , 255 if (ch == '1' || ch == '2' ||ch == '3' || ch == '4' ||ch == '5' || ch == '6' ||ch == '7' || ch == '8' || ch == '9' || ch == '0'){ aux[j++] = ch; } else{ //finaliza a string aux com o \0 e transforma ela em inteiro aux[j] = '\0'; x = atoi(aux); j = 0; // verifica se o numero inteiro que foi encontrado é o que deseja // como so tem valores 255 e 0 , pode substituir a variavel por 255 if (x == valor){ contarq++; num++; } } printf ("quantidade de repeticao no arq %d : %d\n", i, contarq); //fecha arquivo fclose(arq); //abrindo o proximo arquivo i++; contarq = 0; strcpy( buffer, "folha"); //abrindo o proximo arquivo if (i < 10) { sprintf(buffer,"%s000%d.txt",buffer,i); printf("%s\n", buffer); arq = fopen(buffer, "r"); } else if ( i == 10 || i < 100){ sprintf(buffer,"%s00%d.txt",buffer,i); printf("%s\n", buffer); arq = fopen(buffer, "r"); } else if ( i == 100 || i < 1000){ sprintf(buffer,"%s0%d.txt",buffer,i); printf("%s\n", buffer); arq = fopen(buffer, "r"); } } printf("quantidade total de repeticoes: %d \n", num); system("pause"); return 0; }
×
×
  • Criar Novo...