From 5de4f7897f35a339eccbc8ab1a16286a891a35a5 Mon Sep 17 00:00:00 2001 From: Juliano Fantozzi Date: Mon, 27 May 2019 13:55:27 -0300 Subject: [PATCH 1/2] refactoring --- trabalho3/Makefile | 4 ++-- trabalho3/{build => bin}/programaTrab1 | Bin trabalho3/bin/programaTrab2 | Bin 0 -> 45368 bytes trabalho3/build/programaTrab2 | Bin 67456 -> 0 bytes 4 files changed, 2 insertions(+), 2 deletions(-) rename trabalho3/{build => bin}/programaTrab1 (100%) create mode 100755 trabalho3/bin/programaTrab2 delete mode 100755 trabalho3/build/programaTrab2 diff --git a/trabalho3/Makefile b/trabalho3/Makefile index 97c2353..d07fd34 100644 --- a/trabalho3/Makefile +++ b/trabalho3/Makefile @@ -5,9 +5,9 @@ NAME=programaTrab2 # Directories INCDIR=include LIBDIR=lib -BLDDIR=build +BLDDIR=bin SRCDIR=src -OBJDIR=$(SRCDIR)/obj +OBJDIR=$(SRCDIR) # Can use any debbuger (like gdb) or overlay (like valgrind) (though gdb is an overlay too) DEBUGGER= diff --git a/trabalho3/build/programaTrab1 b/trabalho3/bin/programaTrab1 similarity index 100% rename from trabalho3/build/programaTrab1 rename to trabalho3/bin/programaTrab1 diff --git a/trabalho3/bin/programaTrab2 b/trabalho3/bin/programaTrab2 new file mode 100755 index 0000000000000000000000000000000000000000..53063ab89214a426ad701a89ff29d2339c160a71 GIT binary patch literal 45368 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 G{{H|eL&((t literal 0 HcmV?d00001 diff --git a/trabalho3/build/programaTrab2 b/trabalho3/build/programaTrab2 deleted file mode 100755 index ca1ee68141cb452cab1e1731322fbac53261d10c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67456 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 H`{?g~vNzfd From cb60ca2cf113bf1f626d1dd46fba33be453c54c2 Mon Sep 17 00:00:00 2001 From: Juliano Fantozzi Date: Tue, 28 May 2019 14:17:08 -0300 Subject: [PATCH 2/2] midway through func 8. Code does not compile yet --- trabalho3/src/main.c | 25 ++----- trabalho3/src/manipulaReg.c | 2 +- trabalho3/src/organizaArq.c | 134 ++++++++++++++++++++++++++++-------- trabalho3/src/rcab.c | 2 +- trabalho3/src/rdados.c | 2 +- 5 files changed, 113 insertions(+), 52 deletions(-) diff --git a/trabalho3/src/main.c b/trabalho3/src/main.c index 0838588..2dddac6 100644 --- a/trabalho3/src/main.c +++ b/trabalho3/src/main.c @@ -2,7 +2,7 @@ TRABALHO 3 - ORGANIZAÇÃO DE ARQUIVOS Nome: Michelle Wingter da Silva nUSP: 10783243 - Juliano Fantozzi xxxxxxxx + Juliano Fantozzi 9791218 */ @@ -121,31 +121,17 @@ void remove_registro(){ char nomeCampo[MAX]; char valorCampo[MAX]; - //int n_rem = 0; - //REG_REM* listaRem = NULL; - scanf(" %s %d", nomeBin, &n); - //criando lista de removidos - //NO_REG_REM* lista_rem; - - for (int i = 0; i < n; ++i) - { - //scanf("%s %s", nomeCampo, valorCampo); + for (int i = 0; i < n; ++i){ scanf("%s", nomeCampo); scan_quote_string(valorCampo); //printf("nome e valor|%s|%s|\n", nomeCampo, valorCampo); - //lista_rem = calloc(1, sizeof(NO_REG_REM)); busca_RemoveReg(nomeBin, nomeCampo, valorCampo); } - //fclose(bin); binarioNaTela2(nomeBin); - //printf("\nListar o arquivo binário %s.", nomeBin); - - - //free(lista_rem); - + //printf("\nListar o arquivo binário %s.", nomeBin); } /* @@ -158,13 +144,11 @@ void insere_registro(){ scanf(" %s %d", nomeBin, &n); char idStr[MAX], salStr[MAX], tel[MAX], nome[MAX], cargo[MAX]; - //int id; double sal; REGDADOS *rd; long int ultimo_reg = -1; - for (int i = 0; i < n; ++i) - { + for (int i = 0; i < n; ++i){ scanf("%s ", idStr); scanf("%s ", salStr); scan_quote_string(tel); @@ -173,7 +157,6 @@ void insere_registro(){ //printf("id|%s|, sal|%s|, tel|%s|, nome|%s|, cargo|%s|\n", idStr, salStr, tel, nome, cargo); rd = calloc(1, sizeof(REGDADOS)); - //criaNovoRegDados(rd, id, sal, tel, nome, cargo); criaNovoRegDados2(rd, idStr, salStr, tel, nome, cargo); // printf("\n==========INSERINDO: \n\tid|%d|, sal|%lf|, tel|%s|, nome|%s|, cargo|%s|\n", rd->idServidor, rd->salarioServidor, rd->telefoneServidor, rd->nomeServidor, rd->cargoServidor); // printf("TAMANHOS: \n\ttel = %ld\n\tnome = %d\n\tcargo = %d\n\t", strlen(tel), rd->tamNomeServidor, rd->tamCargoServidor); diff --git a/trabalho3/src/manipulaReg.c b/trabalho3/src/manipulaReg.c index ca59471..a8bd7e2 100644 --- a/trabalho3/src/manipulaReg.c +++ b/trabalho3/src/manipulaReg.c @@ -2,7 +2,7 @@ TRABALHO 3 - ORGANIZAÇÃO DE ARQUIVOS Nome: Michelle Wingter da Silva nUSP: 10783243 - Juliano Fantozzi xxxxxxxx + Juliano Fantozzi 9791218 */ diff --git a/trabalho3/src/organizaArq.c b/trabalho3/src/organizaArq.c index b9b37c8..9fd7b7c 100644 --- a/trabalho3/src/organizaArq.c +++ b/trabalho3/src/organizaArq.c @@ -2,7 +2,7 @@ TRABALHO 3 - ORGANIZAÇÃO DE ARQUIVOS Nome: Michelle Wingter da Silva nUSP: 10783243 - Juliano Fantozzi xxxxxxxx + Juliano Fantozzi 9791218 */ @@ -71,9 +71,59 @@ void ordena_por_id(char *nomeBin_in, char *nomeBin_out){ fclose(bin_in); fclose(bin_out); +} + +//========================== MERGING DE DOIS ARQUIVOS ====================== +void read_andMerge(char *nomeBin_in1, char *nomeBin_in2, char *nomeBin_out){ + //========= checando arquivo 1 ============ + FILE* bin_in1 = fopen(nomeBin_in1, "rb"); + fileCheck(bin_in1); + + FILE* bin_in2 = fopen(nomeBin_in2, "rb"); + fileCheck(bin_in2); + + FILE* bin_out = fopen(nomeBin_out, "wb"); + fileCheck(bin_out); + + REGCAB* rc = calloc(1, sizeof(REGCAB)); + REGDADOS *rd1 = NULL; + REGDADOS *rd2 = NULL; + + + leCabecalho(nomeBin_in1, rc); + regCabToArqBin(rc, bin_out); + do{ + rd1 = pegarProximoRegistro(bin_in1); + rd2 = pegarProximoRegistro(bin_in2); + pegaRegistroNoOffset + + if(rd1.idServidor > rd2.idServidor && rd1 && rd2){ + REGDADOS *aux = rd2; + rd2 = rd1; + rd1 = aux; + } + + escreveRegDados(bin_out, rd1); + if(rd1.idServidor != rd2.idServidor) escreveRegDados(bin_out, rd2); + + if (rd1) free(rd1); + if (rd2) free(rd2); + } + while(rd1 || rd2); + + free(rc); + fclose(bin_in1); + fclose(bin_in2); + fclose(bin_out); } +//========================== MATCHING DE DOIS ARQUIVOS ====================== +void read_andMatch(char *nomeBin_in1, char *nomeBin_in2, char *nomeBin_out){ +} + +//========================== FUNCOES AUXILIARES ============================= + int int_compare_id(const void *A, const void *B) { // para ordenar de forma crescente REGDADOS *pA, *pB; pA = (REGDADOS *) A; @@ -81,51 +131,79 @@ int int_compare_id(const void *A, const void *B) { // para ordenar de forma cres return pB->idServidor - pA->idServidor; } -//========================== MERGING DE DOIS ARQUIVOS ====================== -void read_andMerge(char *nomeBin_in1, char *nomeBin_in2, char *nomeBin_out){ - //========= checando arquivo 1 ============ - FILE* bin_in1 = fopen(nomeBin_in1, "rb"); - if(bin_in1 == NULL){ +void fileCheck(FILE *fp){ + if(fp == NULL){ printf("Falha no processamento do arquivo.\n"); exit(0); } - char status1; - fread(&status1, STATUS_TAM, 1, bin_in1); + char status; + fread(&status, STATUS_TAM, 1, fp); //printf("status = %c\n", status); - if (status1 == '0') { - printf("Falha no processamento do arquivo.\n"); - fclose(bin_in1); - exit(0); - } - //========= checando arquivo 2 ============ - FILE* bin_in2 = fopen(nomeBin_in2, "rb"); - if(bin_in2 == NULL){ + if (status == '0') { printf("Falha no processamento do arquivo.\n"); + fclose(fp); exit(0); } +} - char status2; - fread(&status2, STATUS_TAM, 1, bin_in2); - //printf("status = %c\n", status); +REGDADOS *pegarProximoRegistro(FILE *fp){ + if(feof(fp)) return NULL; - if (status2 == '0') { - printf("Falha no processamento do arquivo.\n"); - fclose(bin_in2); - exit(0); +} + +void escreveRegDados(int* tamPagina, int *tamRegAnterior, REGDADOS* r, REGCAB* c, FILE* bin){ + if (r->idServidor == -1){ + return; } - //======================================== - //merge dos dois arquivos de entrada para o arquivo de saida + int aux = r->tamanhoRegistro + 5; + if((*tamPagina - aux) < 0){ + char arroba = '@'; + + for(int i = 0; i < *tamPagina; i++){ + fwrite(&arroba, sizeof(char), 1, bin); + (*tamRegAnterior) = (*tamRegAnterior) + 1; + } -} + //adicionar o tamanho desses arrobas no ultimo registro da pagina + fseek(bin, -(*tamRegAnterior + 4), SEEK_CUR); + fwrite(&(*tamRegAnterior), sizeof(int), 1, bin); + fseek(bin, 0, SEEK_END); + *tamPagina = 32000; + } -//========================== MATCHING DE DOIS ARQUIVOS ====================== -void read_andMatch(char *nomeBin_in1, char *nomeBin_in2, char *nomeBin_out){ + *tamPagina -= aux; + + fwrite(&r->removido, REM_TAM, 1, bin); + fwrite(&r->tamanhoRegistro, TAM_TAM, 1, bin); + fwrite(&r->encadeamentoLista, ENC_TAM, 1, bin); + fwrite(&r->idServidor, ID_TAM, 1, bin); + fwrite(&r->salarioServidor, SAL_TAM, 1, bin); + fwrite(&r->telefoneServidor, TEL_TAM * sizeof(char), 1, bin); + + if(r->nomeServidor[0] != '\0'){ + int tamanho2 = strlen(r->nomeServidor) + 2; + fwrite(&tamanho2, TAM_TAM, 1, bin); + fwrite(&c->tags[3], TAG_TAM, 1, bin); + fwrite(&r->nomeServidor, strlen(r->nomeServidor) * sizeof(char) + 1, 1, bin); + } + if(r->cargoServidor[0] != '\0'){ + int tamanho = strlen(r->cargoServidor) + 2; + fwrite(&tamanho, TAM_TAM, 1, bin); + fwrite(&c->tags[4], TAG_TAM, 1, bin); + fwrite(&r->cargoServidor, strlen(r->cargoServidor) * sizeof(char) + 1, 1, bin); + } + if(*tamPagina == 0){ + *tamPagina = 32000; + } + + (*tamRegAnterior) = r->tamanhoRegistro; } +} \ No newline at end of file diff --git a/trabalho3/src/rcab.c b/trabalho3/src/rcab.c index 11ded62..a2a9f08 100644 --- a/trabalho3/src/rcab.c +++ b/trabalho3/src/rcab.c @@ -2,7 +2,7 @@ TRABALHO 3 - ORGANIZAÇÃO DE ARQUIVOS Nome: Michelle Wingter da Silva nUSP: 10783243 - Juliano Fantozzi xxxxxxxx + Juliano Fantozzi 9791218 */ diff --git a/trabalho3/src/rdados.c b/trabalho3/src/rdados.c index 749c956..2c6d73a 100644 --- a/trabalho3/src/rdados.c +++ b/trabalho3/src/rdados.c @@ -2,7 +2,7 @@ TRABALHO 3 - ORGANIZAÇÃO DE ARQUIVOS Nome: Michelle Wingter da Silva nUSP: 10783243 - Juliano Fantozzi xxxxxxxx + Juliano Fantozzi 9791218 */