Exemple #1
0
//main
int main(){
	int funcionalidade;
	char nomeArquivo[100];
	FILE *arquivoLido, *arquivoBin;

	scanf("%d", &funcionalidade);

	switch (funcionalidade){
		case 1:
			scanf("%s", nomeArquivo);
			criaArquivoBin(nomeArquivo);
			break;
		case 2:
			scanf("%s", nomeArquivo);
			leArquivoBin(nomeArquivo);
			break;
		case 3:
			scanf("%s", nomeArquivo);
			buscaArquivoBin(nomeArquivo);
			break;
        case 4:
			scanf("%s", nomeArquivo);
			removeRegistro(nomeArquivo);
			break;

        case 5:
			scanf("%s", nomeArquivo);
			insereRegistro(nomeArquivo);
			break;

        case 6:
			scanf("%s", nomeArquivo);
			atualizaRegistro(nomeArquivo);
			break;
	
		default:
			break;
	}

	return 0;
}
Exemple #2
0
//main
int main(){
	int funcionalidade;
	char nomeArquivo[100], nomeArquivo2[100];
	char campo[20], *valor;
	FILE *arquivoLido, *arquivoBin;
	int numRegistros;
	int init;

	scanf("%d", &funcionalidade);

	switch (funcionalidade){
		case 1:
			scanf("%s", nomeArquivo);
			criaArquivoBin(nomeArquivo);
			break;
		case 2:
			scanf("%s", nomeArquivo);
			leArquivoBin(nomeArquivo);
			break;
		case 3:
			//obtencao das entradas
			scanf("%s", nomeArquivo);
			scanf("%s ", campo);
    		valor = readLine();

			buscaArquivoBin(nomeArquivo, campo, valor, 1);

			free(valor);
			break;
        case 4:
			scanf("%s", nomeArquivo);
			init = removeRegistro(nomeArquivo);
			if(init == 0)
				binarioNaTela2("arquivo-novo.bin");
			break;

        case 5:
			scanf("%s", nomeArquivo);
			scanf("%d", &numRegistros);
			if(insereRegistro(nomeArquivo, &numRegistros) != NULL)
				binarioNaTela2("arquivo-novo.bin");
			break;

        case 6:
			scanf("%s", nomeArquivo);
			atualizaRegistro(nomeArquivo);
			break;
		
		case 7:
			scanf("%s", nomeArquivo);
			ordenaArquivo(nomeArquivo);
			break;
		
		case 8:
			scanf("%s", nomeArquivo);
			scanf("%s", nomeArquivo2);
			mergeArquivos(nomeArquivo, nomeArquivo2);
			break;
		
		case 9:
			scanf("%s", nomeArquivo);
			scanf("%s", nomeArquivo2);
			matchArquivos(nomeArquivo, nomeArquivo2);
			break;

		case 10:
			scanf("%s", nomeArquivo);
			scanf("%s", nomeArquivo2);
			init = funcionalidade10(nomeArquivo, nomeArquivo2);
			if(init == 0)
				binarioNaTela2(nomeArquivo2);
			break;

		case 11:
			//obtencao das entradas
			scanf("%s", nomeArquivo);
			scanf("%s", nomeArquivo2);
			scanf("%s ", campo);
    		valor = readLine();

			funcionalidade11(nomeArquivo, nomeArquivo2, campo, valor, 1);

			free(valor);
			break;

		case 12:
			scanf("%s", nomeArquivo);
			scanf("%s", nomeArquivo2);
			funcionalidade12(nomeArquivo, nomeArquivo2);
			break;
		
		case 13:
			scanf("%s", nomeArquivo);
			scanf("%s", nomeArquivo2);
			funcionalidade13(nomeArquivo, nomeArquivo2);
			break;

		case 14:
			//obtencao das entradas
			scanf("%s", nomeArquivo);
			scanf("%s", nomeArquivo2);
			scanf("%s ", campo);
    		valor = readLine();

			funcionalidade14(nomeArquivo, nomeArquivo2, campo, valor);

			free(valor);
			break;
	
		default:
			break;
	}

	return 0;
}
int main()
{
	int key,age;
	char name[MAXSTR],operacao;
	FILE *fIndex,*fTerminal;
	Register reg,*cons;
	float start,end,timeElapsed;

	fIndex = checkFileIndex();
	fTerminal = checkFileTerminal();
	do
	{
		fseek(fIndex,0,SEEK_SET);
		fseek(fTerminal,0,SEEK_SET);
		scanf("%c%*c",&operacao);
		operacao = tolower(operacao);
		switch(operacao)
		{
			//Sair do Programa
			case 'e':
			{
				fclose(fIndex);
				fclose(fTerminal);
				exit(1);
				break;
			}

			//Insere Registro
			case 'i':
			{
				scanf("%d%*c",&key);
				getstr(name,MAXSTR);
				scanf("%d%*c",&age);
				if(fIndex && fTerminal)
				{
					reg.key = key;
					strcpy(reg.name,name);
					reg.age = age;
					if(!insereRegistro(fIndex,fTerminal,&reg))
					{
						printf("chave ja existente: %d\n",key);
					}
				}
				break;
			}

			//Consulta Regisro
			case 'c':
			{
				scanf("%d%*c",&key);
				start = (float)clock()/CLOCKS_PER_SEC;
				cons = consultaRegistro(fIndex,fTerminal,key);
				end = (float)clock()/CLOCKS_PER_SEC;
				timeElapsed = end - start;
				if(cons) printf("chave: %d\n%s\n%d\n",key,cons->name,cons->age);
				else printf("chave nao encontrada\n");

				printf("query rapida: %f segundos\n",timeElapsed);
				start = (float)clock()/CLOCKS_PER_SEC;
				cons = slowQuery(fTerminal,key);
				end = (float)clock()/CLOCKS_PER_SEC;
				timeElapsed = end - start;
				printf("query lenta: %f segundos\n",timeElapsed);
				break;
			}

			//Remove Registro
			case 'r':
			{
				scanf("%d%*c",&key);
				if(!removeRegistro(fIndex,fTerminal,key))
				{
					 printf("chave nao encontrada\n");
				}
				break;
			}

			//Imprime Árvore
			case 'p':
			{
				imprimeArvore(fIndex,fTerminal);
				break;
			}

			//Imprime nós Terminais
			case 'f':
			{
				imprimeNosTerminais(fTerminal);
				break;
			}
		}

	}while(operacao != 'e');

	return 0;
}