Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int lerbasedados(int argc, char *argv[], struct infocarros carros[DIMBASEDADOS]){
- int linha, i, j, posicao, passouponto;
- char nomeficheiroleitura[DIMSTRING], linhaficheiro[DIMLINHA];
- FILE *ficheiroleitura;
- if(argc>1) strcpy(nomeficheiroleitura, argv[1]);
- else{
- printf("\nIntroduza o nome do ficheiro da base de dados: ");
- scanf("%s", nomeficheiroleitura);
- }
- ficheiroleitura=fopen(nomeficheiroleitura, "r");
- if (ficheiroleitura==NULL)
- printf("\nImpossivel a abertura do ficheiro %s.\n", nomeficheiroleitura);
- else {
- printf("\nAbertura do ficheiro %s efectuada com sucesso.\n", nomeficheiroleitura);
- linha=0;
- while (fgets(linhaficheiro, DIMLINHA, ficheiroleitura)!=0){
- posicao=2;
- for (j=posicao; j<DIMSTRING+posicao; ++j) {
- carros[linha].marca[j-posicao]=linhaficheiro[j];
- if(linhaficheiro[j+1]==' ' && linhaficheiro[j+2]==' ') break;
- }
- posicao=posicao+2+strlen(carros[linha].marca);
- for (j=posicao; j<DIMSTRING+posicao; ++j){
- carros[linha].modelo[j-posicao]=linhaficheiro[j];
- if(linhaficheiro[j+1]==' ' && linhaficheiro[j+2]==' ') break;
- }
- posicao=posicao+2+strlen(carros[linha].modelo);
- for (j=posicao; j<DIMSTRING+posicao; ++j){
- carros[linha].versao[j-posicao]=linhaficheiro[j];
- if(linhaficheiro[j+1]==' ' && linhaficheiro[j+2]==' ') break;
- }
- posicao=posicao+2+strlen(carros[linha].versao);
- carros[linha].portas=linhaficheiro[posicao]-'0';
- posicao=posicao+3;
- for (j=posicao; j<DIMSTRING+posicao; ++j){
- carros[linha].combustivel[j-posicao]=linhaficheiro[j];
- if(linhaficheiro[j+1]==' ' && linhaficheiro[j+2]==' ') break;
- }
- posicao=posicao+2+strlen(carros[linha].combustivel);
- i=0;
- for (j=posicao; j<DIMSTRING+posicao; ++j){
- ++i;
- if(linhaficheiro[j+1]==',') break;
- }
- carros[linha].preco=0;
- passouponto = 0;
- for(j=0; j<i; ++j){
- carros[linha].preco=carros[linha].preco+(linhaficheiro[posicao+i-j-1]-'0')*pow(10,j-passouponto);
- if(j==2) {
- ++j;
- passouponto = 1;
- }
- }
- printf("%s %s %s %d %s %d €\n", carros[linha].marca, carros[linha].modelo, carros[linha].versao, carros[linha].portas, carros[linha].combustivel, carros[linha].preco);
- ++linha;
- }
- printf("\nForam lidas %d linhas.\n", linha);
- return linha;
- }
- }
- void mostramarcas(struct infocarros carros[DIMBASEDADOS], int tamanho){
- int i, j, haigual;
- for(i=0; i<tamanho; ++i){
- haigual=0;
- for(j=0; j<i; ++j){
- if(strcmp(carros[i].marca,carros[j].marca)==0){
- haigual=1;
- break;
- }
- }
- if (haigual==0) printf("%s\n", carros[i].marca);
- }
- }
Add Comment
Please, Sign In to add comment