Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int introduzCategorias(int iCategoria, CATEGORIA array[]){
- CATEGORIA aux;
- int existe = 0;
- FILE *fp;
- fp=fopen("categorias.dat","ab");
- if(fp == NULL){
- fclose(fp);
- fp=fopen("categorias.dat","wb");
- }
- aux.ID = iCategoria;
- printf("Introduza uma categoria: \n");
- gets(aux.nome);
- for (int i = 0; i<iCategoria; i++){
- if(strcmp(aux.nome, array[i].nome) == 0){
- existe = 1;
- }
- }
- if (existe != 1){
- aux.ID = iCategoria;
- array[iCategoria] = aux;
- fwrite(&aux, sizeof(CATEGORIA),1, fp );
- fclose(fp); //fechar apontador
- return 1;
- }
- else {
- system("clear");
- printf("Essa categoria já existe \n");
- getchar();
- return 0;
- }
- }
- void listarCategorias(int iCategoria, CATEGORIA array[]){
- int i;
- for(i=0;i<iCategoria;i++){
- printf("%i - %s\n",array[i].ID+1, array[i].nome);
- }
- printf(">> 0 - Voltar << \n");
- getchar();
- }
- int carregarCategorias(CATEGORIA array[]){
- FILE *fp;
- CATEGORIA cat;
- fp=fopen("categorias.dat","rb");
- if(fp == NULL){
- return 0;
- }
- int i = 0;
- while(fread(&cat,sizeof(CATEGORIA),1,fp) == 1){
- array[i] = cat;
- i++;
- }
- return i;
- }
- void alterarCategorias(int iCategoria, CATEGORIA array[]){
- int i, op = 0;
- int id = 0;
- int existe = 0;
- char str[50];
- char nomeTemp[100]={0};
- CATEGORIA aux;
- for(i=0;i<iCategoria;i++){
- printf("%i - %s\n",array[i].ID+1, array[i].nome);
- }
- FILE *fp;
- fp=fopen("categorias.dat","rb+");
- if(fp == NULL){
- fclose(fp);
- printf("Erro ao abrir o ficheiro \n");
- return;
- }
- printf("Escolha a categoria que pretende alterar: \n");
- scanf("%i", &op);
- getchar();
- for(i = 0; i<iCategoria; i++){
- if(op == array[i].ID+1){
- system("clear");
- printf("Altere a categoria %s para o que desejar: \n", array[i].nome);
- gets(nomeTemp);
- strcpy(str,array[i].nome);
- id = array[i].ID;
- for( int j = 0; j<iCategoria; j++){
- if(strcmp(nomeTemp, array[j].nome) == 0){
- existe = 1;
- system("clear");
- printf("A categoria que introduziu já existe \n");
- }
- }
- while(fread(&aux,sizeof(CATEGORIA),1,fp) == 1){
- if(strcmp(aux.nome,str)== 0){
- fseek(fp,-1*sizeof(CATEGORIA), SEEK_CUR);
- strcpy(aux.nome, nomeTemp);
- aux.ID == id;
- fwrite(&aux, sizeof(CATEGORIA), 1, fp);
- strcpy(array[i].nome,nomeTemp);
- }
- }
- fclose(fp);
- if(existe == 0){
- system("clear");
- printf("Categoria alterada com sucesso \n");
- }
- }
- else{
- printf("O número que introduziu não exite \n");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement