Ir para conteúdo
Fórum Script Brasil
  • 0

Como faço para excluir um registro do banco em C


paulafabiana7

Pergunta

Enfim gente meu professor pediu para fazer um código que lia os nome de cliente e guardava, agora ele quer que exclua o nome, alguém sabe fazer isso, todo tutorias que eu vi só fala de excluir o código:

#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>

void pesquisaPorNome(){
    char linha[120], buscar[60];
    int n;
    setlocale(LC_ALL, "Portuguese");

    printf("Digite o nome do cliente (apenas primeiro nome) para a busca: ");
    scanf("%s", buscar);
    fflush(stdin);
    n = strlen(buscar);

    FILE *arquivo;
    arquivo = fopen("bdClientes.txt", "r");

    fgets(linha, 120, arquivo);
    while (!feof(arquivo)){
            if (strncmp (linha,buscar,n) == 0){

            printf ("Encontrado: %s\n",linha);
        }
        fgets(linha, 120, arquivo);
        fflush(stdin);
    }
    fclose(arquivo);
}

void listarClientes(){
    char linha[120];
    setlocale(LC_ALL, "Portuguese");
    FILE *arquivo;
    arquivo = fopen("bdClientes.txt", "r");

    fgets(linha, 120, arquivo);
    while (!feof(arquivo)){
        printf("%s", linha);
        fgets(linha, 120, arquivo);
    }
    fclose(arquivo);
}

void gravarDados(char nome[], char sexo, char cidade[], char setor[]){
    setlocale(LC_ALL, "Portuguese");
    FILE *arquivo;
    arquivo = fopen("bdClientes.txt", "a");
    fprintf(arquivo, "%s; %c; %s; %s\n", nome, sexo, cidade, setor);
    fclose(arquivo);
}

void lerDados(){
    char nome[50], sexo, cidade[30], setor [30];
    int verificador;
    setlocale(LC_ALL, "Portuguese");
    setbuf(stdin, NULL);
    do{
        printf("Digite o nome completo do cliente: ");
        scanf("%[^\n]s", nome);
        setbuf(stdin, NULL);
        verificador = strlen(nome);
    }while(verificador < 10);

    do{
        printf("Digite o sexo do cliente(M ou F): ");
        scanf("%c", &sexo);
        setbuf(stdin, NULL);
        sexo=toupper(sexo);
    } while (sexo != 'M' && sexo != 'F');

    do{
        printf("Digite a cidade onde o cliente mora: ");
        scanf("%[^\n]s", cidade);
        setbuf(stdin, NULL);
        verificador = strlen(cidade);
    }while(verificador < 3);

    do{
        printf("Digite o setor onde o cliente mora: ");
        scanf("%[^\n]s", setor);
        setbuf(stdin, NULL);
        verificador = strlen(setor);
    }while(verificador < 3);
    gravarDados(nome, sexo, cidade, setor);
}


/*void excluirCliente(){
    
    
    char nome[200];
    printf("\nEntre com o nome completo do cliente que deseja excluir: \n");
    scanf("%[^\n]s", nome);
    */
    
    
}
int main(){
    setlocale(LC_ALL, "Portuguese");
    int verificador;

    do{
        printf("\n");
        printf("\t1 - Incluir cliente\n");
        printf("\t2 - Listar clientes\n");
        printf("\t3 - Pesquisar cliente por nome\n");
        printf("\t4 - Excluir cliente\n");
        printf("\t5 - Sair\n");
        printf("Digite o procedimento a ser realizado: ");
        scanf(" %d", &verificador);
        printf("\n");

        switch(verificador){
            case 1:
                lerDados();
            break;
            case 2:
                listarClientes();
            break;
            case 3:
                pesquisaPorNome();
            case 4:
                excluirCliente();
            break;
        }
    } while(verificador != 5);
    return 0;
    system("pause");
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Carregue tudo em uma matriz, edite e volte a sobrescrever o arquivo, seria a forma mais fácil. Quando tiver mais experiência existem formas mais efetivas que podem ser usadas, porem acho que seria muito hard para lhe encaminhar ainda a elas.

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
#include<stdio.h>
#include <stdlib.h>

int main() {

    FILE *file = fopen ( "prova.txt", "r+" );
    
    if ( !file ) {
        perror ( "Erro: " );
        getchar();
        exit ( 1 );
    }
    
    
    //Contamos numero de linhas
    int ch, num_lineas=0;
    while ( ( ch = fgetc ( file ) ) != EOF ){
        if ( ch == '\n' ){
            num_lineas++;
        }
    }
    
    //"Rebobinamos" >_<
    rewind(file);
    
    char matriz[(const int)num_lineas][100];

    int i;
    while( fscanf(file,"%100[^\n]%*c", matriz[i]) != EOF ){
        printf("%s\n", matriz[i]); 
        i++;   
    }
    
    fclose ( file );
    
    //Aqui nesse ponto o array tem todo o arquivo dentro é só manipula-lo e voltar a guardar com o atributo w ao abrir com fopem
    

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...