Exemple #1
0
void mostra_dados()
{
    FILE *arquivo;
    GAME jogo;
    arquivo = abrir_arquivo("locadora.dtb", "rb");
    printf("%-5s %-30s %-15s\n","ID:","NOME:","GENERO:");
    while(1)
    {
        fread(&jogo, sizeof(GAME), 1, arquivo);
        if(feof(arquivo) != 0)
        {
            break;
        }
        else
        {
            if(jogo.deletable == false)
            {
                printf("%-5d", jogo.id);
                printf("%-30s", jogo.nome);
                printf("%-15s\n", jogo.genero);
            }
            else
            {
                continue;
            }
        }
    }
    fclose(arquivo);
}
Exemple #2
0
bool file_exists(char *nome_arquivo)
{
    FILE *arquivo = abrir_arquivo(nome_arquivo, "rb");
    if(arquivo == NULL)
    {
        fclose(arquivo);
        return false;
    }
    else
    {
        fclose(arquivo);
        return true;
    }
}
void gravar_arquivo(char arq_name[]){
    FILE * arq;
    char texto[SIZE_TEXT+1];

    arq = abrir_arquivo(arq_name,"r+");

    if(arq != NULL){
        ler_texto(texto);

        fputs(texto,arq);

        fclose(arq);
    }

}
void imprime_arquivo(char arq_name[]){
    FILE * arq;
    char ch;

    arq = abrir_arquivo(arq_name,"r+");

    if(arq != NULL){
        printf("\n\n------------------------------------------\n\n");

        fseek(arq,0,SEEK_SET);

        ch = fgetc(arq);

        while(!feof(arq)){
            putchar(ch);
            ch = fgetc(arq);

        }

        printf("\n\n------------------------------------------\n\n");
        fclose(arq);
    }
}
Exemple #5
0
void deletar_game()
{
    int escolha_id = 0;
    FILE *arquivo;
    GAME jogo;
    if(file_exists("locadora.dtb") == false)
    {
        printf("\nO ARQUIVO NAO EXISTE!\n");
        printf("\nDESEJA CRIAR O ARQUIVO? [s/n]: \n");
        scanf("%s", escolha);
        if( (strcmp(escolha, "s") == 0) || (strcmp(escolha, "S") == 0) )
        {
            arquivo = abrir_arquivo("locadora.dtb", "r+b");
            fclose(arquivo);
            menu();
        }
        return;
    }
    else
    {
        arquivo = abrir_arquivo("locadora.dtb", "r+b");
        init_game(&jogo);
        mostra_dados();

        rewind(arquivo);
        printf("\nDigite o ID que deseja deletar: ");
        scanf("%d", &escolha_id);

        while(1)
        {
            fread(&jogo, sizeof(GAME), 1, arquivo);
            if(feof(arquivo) == 0)
            {
                if(jogo.id == escolha_id)
                {
                    jogo.deletable = true;
                    break;
                }
                else
                {
                    continue;
                }
            }
            else
            {
                printf("\nO ID NAO FOI ENCONTRADO!\n");
                printf("\nDESEJA VOLTAR AO MENU PRINCIPAL? [s/n]: \n");
                scanf("%s", escolha);

                if( (strcmp(escolha, "s") == 0) || (strcmp(escolha, "S") == 0) )
                {
                    menu();
                }
                else
                {
                    return;
                }
            }
        }

        fseek(arquivo, (-1 * sizeof(GAME)), SEEK_CUR);
        size_t result = fwrite(&jogo, sizeof(GAME), 1, arquivo);
        if(result == 1)
        {
            CLEAR_SCREEN();
            printf("\nJOGO DELETADO COM SUCESSO!");
            printf("\nDeseja deletar mais algum jogo? [s/n]: ");
            scanf("%s", escolha);

            if( (strcmp(escolha, "s") == 0) || (strcmp(escolha, "S") == 0) )
            {
                fclose(arquivo);
                CLEAR_SCREEN();
                deletar_game();
            }
            else
            {
                fclose(arquivo);
                CLEAR_SCREEN();
                menu();
            }
        }
        else
        {
            fclose(arquivo);
            CLEAR_SCREEN();
            printf("\nOCORREU UM ERRO AO TENTAR DELETAR O JOGO!\n");
            menu();
        }
    }
}
Exemple #6
0
void editar_game()
{
    int escolha_id = 0;
    GAME jogo, tmp_jogo;
    FILE *arquivo = NULL;

    if(file_exists("locadora.dtb") == false)
    {
        printf("\nO ARQUIVO NAO EXISTE!\n");
        printf("\nDESEJA CRIAR O ARQUIVO? [s/n]: \n");
        scanf("%s", escolha);
        if( (strcmp(escolha, "s") == 0) || (strcmp(escolha, "S") == 0) )
        {
            arquivo = abrir_arquivo("locadora.dtb", "r+b");
            fclose(arquivo);
            menu();
        }
        return;
    }
    else
    {
        arquivo = abrir_arquivo("locadora.dtb", "r+b");
    }

    mostra_dados();

    rewind(arquivo);
    printf("\nDigite o ID que deseja editar: ");
    scanf("%d", &escolha_id);

    while(1)
    {
        fread(&jogo, sizeof(GAME), 1, arquivo);
        if(feof(arquivo) == 0)
        {
            if(escolha_id == jogo.id )
            {
                tmp_jogo = jogo;
                fseek(arquivo, (-1 * sizeof(GAME)), SEEK_CUR); // ANDA ATE A POSICAO INICIAL DO DADO ESCOLHIDO
                break;
            }
            else
            {
                continue;
            }
        }
        else
        {
            printf("\nO ID NAO FOI ENCONTRADO!\n");
            printf("\nDESEJA VOLTAR AO MENU PRINCIPAL? [s/n]: \n");
            scanf("%s", escolha);

            if( (strcmp(escolha, "s") == 0) || (strcmp(escolha, "S") == 0) )
            {
                menu();
            }
            else
            {
                return;
            }
        }
    }

    CLEAR_SCREEN();
    printf("####################################################\n");
    printf("####################################################\n");
    printf("# \t\t\t\t\t\t   #");
    printf("\n#\t\tDADOS DO ID ESCOLHIDO \t\t   #\n# \t\t\t\t\t\t   #\n");
    printf("####################################################\n");
    printf("####################################################\n");

    printf("\n[1] NOME: %s", tmp_jogo.nome);
    printf("\n[2] GENERO: %s", tmp_jogo.genero);
    printf("\nQUAL DADO DESEJA EDITAR?\n");
    printf("-> ");
    scanf("%d", &escolha_id);

    if(escolha_id == 1)
    {
        CLEAR_SCREEN();
        printf("\nDigite o novo nome do jogo: ");
        scanf(" %[^\n]s", tmp_jogo.nome);
        fwrite(&tmp_jogo, sizeof(GAME), 1, arquivo);
    }
    else
    {
        CLEAR_SCREEN();
        printf("\nDigite o novo genero do jogo: ");
        scanf(" %[^\n]s", tmp_jogo.genero);
        fwrite(&tmp_jogo, sizeof(GAME), 1, arquivo);
    }

    fclose(arquivo);
    printf("\nDESEJA EDITAR MAIS ALGUM REGISTRO? [s/n]: \n");
    scanf("%s", escolha);

    if( (strcmp(escolha, "s") == 0) || (strcmp(escolha, "S") == 0) )
    {
        CLEAR_SCREEN();
        editar_game();
    }
    else
    {
        menu();
    }
}
Exemple #7
0
void inserir_game() // INSERE DADOS NO ARQUIVO BINÁRIO.
{
    FILE *arquivo = NULL;
    GAME jogo, tmp_jogo;

    init_game(&jogo);
    init_game(&tmp_jogo);
    arquivo = abrir_arquivo("locadora.dtb", "a+b");

    rewind(arquivo);
    fseek(arquivo, (-1 * sizeof(GAME)), SEEK_END); // ANDA ATÉ A POSIÇÃO N-1 BYTES
    fread(&jogo, sizeof(GAME), 1, arquivo); // PEGA O ÚLTIMO BLOCO DO TAMANHO DE "GAME"
    rewind(arquivo); // VOLTA O INDICADOR DA POSIÇÃO DO ARQUIVO NO COMEÇO

    // FUNCAO AUTO INCREMENT
    if(jogo.id == 0)
    {
        jogo.id = 1; // SE NÃO HOUVER UM "GAME" CADASTRADO ADICIONA O PRIMEIRO ID COM O VALOR DE "1"
    }
    else
    {
        jogo.id += 1; // CASO CONTRÁRIO ADICIONA +1 NO ID DO "GAME" QUE SERÁ CADASTRADO
    }

    CLEAR_SCREEN();
    printf("\nDigite o nome do jogo: ");
    scanf(" %[^\n]s", jogo.nome);
    printf("\nDigite o genero do jogo: ");
    scanf(" %[^\n]s", jogo.genero);

    while(1)
    {
        fread(&tmp_jogo, sizeof(GAME), 1, arquivo);
        if(feof(arquivo) != 0)
        {
            rewind(arquivo);
            fclose(arquivo);
            arquivo = abrir_arquivo("locadora.dtb", "a+b");
            break;
        }
        else
        {
            if(tmp_jogo.deletable == true)
            {
                fclose(arquivo);
                arquivo = abrir_arquivo("locadora.dtb", "r+b");
                jogo.id = tmp_jogo.id;
                fseek(arquivo, (-1 * sizeof(GAME)), SEEK_CUR);
                break;
            }
            else
            {
                continue;
            }
        }
    }

    size_t result = fwrite(&jogo, sizeof(GAME), 1, arquivo);
    if(result == 1)
    {
        CLEAR_SCREEN();
        printf("\nDADOS INSERIDOS COM SUCESSO!");
        printf("\nDeseja inserir mais dados? [s/n]: ");
        scanf("%s", escolha);

        if( (strcmp(escolha, "s") == 0) || (strcmp(escolha, "S") == 0) )
        {
            fclose(arquivo);
            CLEAR_SCREEN();
            inserir_game();
        }
        else
        {
            fclose(arquivo);
            CLEAR_SCREEN();
            menu();
        }
    }
    else
    {
        fclose(arquivo);
        CLEAR_SCREEN();
        printf("\nOCORREU UM ERRO AO TENTAR INSERIR OS DADOS!\n");
        menu();
    }
}