Me ajudem!

2 respostas
joaofs_18
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
  
	FILE *fpin;   //variável do arquivo
	FILE *fpout;   //variável do arquivo
	char frase[2048];
	char arquivo[20];
	char frase_saida[2048];
	int i=0;
	int l=1;
	int k=0;

  
	printf("Abrindo Painel txt\n");

	fpin=fopen("Painel.txt","r"); //abrindo para leitura
	if(fpin==NULL) {
		printf("Erro!");
		exit(1);
	}	

	fpout=fopen("Salvando.txt","w"); //criando para escrita
	if(fpout==NULL) {
		printf("Erro!");
		exit(1);
	}	



   k=0;

	while(!feof(fpin)&&(k==0)) { //enquanto não for o final do arquivo

    fgets(frase,2048,fpin); //  as 2048 próximas
    frase[37]=0;
    if (!strcmp("	Painel_Controle                Group",frase)) {
        fgets(frase,2048,fpin); //  as 2048 próximas
        fgets(frase,2048,fpin); //  as 2048 próximas
        fgets(frase,2048,fpin); //  as 2048 próximas
        fgets(frase,2048,fpin); //  as 2048 próximas
        while(!feof(fpin) && k==0  && frase[4]!='A'  ) { //enquanto não for o final do arquivo
           fgets(frase,2048,fpin); //  as 2048 próximas
            if (!strcmp(" ",frase)) {
              k=1;
              return (0);
              
            }
            fprintf(fpout,frase); //grava no arquivo
       }

fiz um codigo pra pegar os campos da matricula do arquivo Painel.txt tá funfando blz. Mas tem um problema, ao gerar o arquivo Salvando.txt exite matriculas repetidadas, queria fazer com que o programa comparasse essas matriculas e deletasse as matriculas repetidas, mas não tenho a menor ideia por onde o começar. Se alguem puder me ajudar desde já agradeço.

2 Respostas

LPJava

vc pode usar uma das classes de Set, que nao permite ter em um conjuntos elementos repetidos, e depois vc percorria o conjunto e inseria no arquivo o que está nesse conjunto.

pesquisa por conjunto/collection/generics no java que vc vai encontrar, para adiantar vai um post meu sobre o assunto:
http://camilolopes.wordpress.com/2008/07/21/conjuntoscollection-java-revisao-scjp/

ViniGodoy

Dica. Se você precisa de ajuda, dê um título descritivo para seu tópico. Algo como “Eliminar matriculas repetidas usando C”.

Seu título não só faz com que quem realmente pode te ajudar evite o tópico, como também leva a pessoas a darem respostas por engano, como o LPJava (que respondeu pensando no Java).

No caso do C, crie um vetor para guardar as matrículas. Então, compare cada matrícula lida com as presentes no vetor antes de grava-la no arquivo de saída.
No caso do C++, você pode usar o std::set.

Seria uma boa você postar a estrutura do arquivo Painel.txt

Criado 20 de novembro de 2010
Ultima resposta 21 de nov. de 2010
Respostas 2
Participantes 3