예제 #1
0
int main(int argc, char *argv[]) {

    /*Verifica a quantidade de argumentos passados.*/
    if (argc != 4) {

        printf("Quantidade de argumentos inválidos!\n");

    } else {
        FILE *pt;

        /*Verifica o comando de busca.*/
        if (strcmp(argv[1], "busca_dna") == 0) {

            pt = fopen(argv[3], "r");

            /*Verifica a possibilidade de abrir o arquivo em disco.*/
            if (pt == NULL) {
                printf("Erro ao abrir o arquivo.\n");
                return EXIT_SUCCESS;

            } else {

                /*Realiza todo o processamento necessário e remoção de caracteres inválidos.*/
                int qtdcaracteres = calcularTamanhoArquivo(pt);

                char textoentrada[qtdcaracteres + 1];

                fread(textoentrada, sizeof (char), qtdcaracteres, pt);

                textoentrada[qtdcaracteres] = '\0';

                char textolimpo[qtdcaracteres];

                limpartexto(textoentrada, textolimpo, qtdcaracteres);


                /*Processamento do padrão inserido sobre o texto de entrada.*/
                int result = 0;
                result = KnuthMorrisPratt(textolimpo, strlen(textolimpo), argv[2], strlen(argv[2]));

                if (result == -1) {
                    printf("Not found!\n");
                }

                fclose(pt);
                return EXIT_SUCCESS;
            }
        }else{
            printf("Comando inválido!\n");
        }
    }
}
예제 #2
0
bool QfileQts::abrir(string arquivo){
	FILE *tmp;
	tmp = fopen(arquivo.c_str(),"rb");
	long tamanho = calcularTamanhoArquivo(tmp);
	fclose(tmp);

	if(tamanho != 0){
		abrir_qts(arquivo);
		return true;
	}
	else
		return false;
}
예제 #3
0
bool QfileQts::gerar_infxml(string destino){
	FILE *tmp;

	// cria o xml que contera as informacoes para conexao
	TiXmlDocument inf;
	TiXmlDeclaration *dcl = new TiXmlDeclaration("1.0","","");
	TiXmlElement *titulo = new TiXmlElement("titulo");
	TiXmlText *txt_titulo = new TiXmlText(Titulo.c_str());
	titulo->LinkEndChild(txt_titulo);


	//adiciona inf gerais
	TiXmlElement *gerais = new TiXmlElement("gerais");

	TiXmlElement *tipo = new TiXmlElement("tipo");
	TiXmlText *txt_tipo = new TiXmlText("");
	switch(Tipo){
		case Imagem:
			txt_tipo->SetValue("0");
			break;
		case Video:
			txt_tipo->SetValue("1");
			break;
	}
	tipo->LinkEndChild(txt_tipo);
	gerais->LinkEndChild(tipo);

	TiXmlElement *extensao = new TiXmlElement("extensao");
	TiXmlText *txt_extensao = new TiXmlText(Extensao.c_str());
	extensao->LinkEndChild(txt_extensao);
	gerais->LinkEndChild(extensao);

	TiXmlElement *arquivo = new TiXmlElement("arquivo");
	tmp = fopen(Arquivo.c_str(),"r");
	arquivo->SetAttribute("tamanho",calcularTamanhoArquivo(tmp));
	TiXmlText *txt_arquivo = new TiXmlText(nome_arquivo(Arquivo).c_str());
	arquivo->LinkEndChild(txt_arquivo);
	gerais->LinkEndChild(arquivo);

	TiXmlElement *thumb = new TiXmlElement("thumb");
	tmp = fopen(Thumb.c_str(),"r");
	thumb->SetAttribute("tamanho",calcularTamanhoArquivo(tmp));
	TiXmlText *txt_thumb = new TiXmlText(nome_arquivo(Thumb).c_str());
	thumb->LinkEndChild(txt_thumb);
	gerais->LinkEndChild(thumb);

	TiXmlElement *descricao = new TiXmlElement("descricao");
	TiXmlText *txt_descricao = new TiXmlText(Descricao.c_str());
	descricao->LinkEndChild(txt_descricao);
	gerais->LinkEndChild(descricao);

	TiXmlElement *cor = new TiXmlElement("cor_padrao");
	TiXmlText *txt_cor = new TiXmlText(CorPadrao.c_str());
	cor->LinkEndChild(txt_cor);
	gerais->LinkEndChild(cor);

	TiXmlElement *posicao = new TiXmlElement("posicao");

	TiXmlElement *postitulo = new TiXmlElement("pos_titulo");
	postitulo->SetAttribute("x",xTitulo);
	postitulo->SetAttribute("y",yTitulo);
	postitulo->SetAttribute("tamanho",tpTitulo);
	posicao->LinkEndChild(postitulo);

	TiXmlElement *posinicio = new TiXmlElement("pos_texto");
	posinicio->SetAttribute("x",xInicio);
	posinicio->SetAttribute("y",yInicio);
	posinicio->SetAttribute("tamanho",tpInicio);
	switch(posTexto){
		case Esquerda:
			posinicio->SetAttribute("posicao_texto","0");
			break;
		case Centralizado:
			posinicio->SetAttribute("posicao_texto","1");
			break;
		case Direita:
			posinicio->SetAttribute("posicao_texto","2");
			break;
	}
	posicao->LinkEndChild(posinicio);


	inf.LinkEndChild(dcl);
	inf.LinkEndChild(titulo);
	inf.LinkEndChild(gerais);
	inf.LinkEndChild(posicao);

	destino.append("inf_tema.xml");
	return inf.SaveFile(destino.c_str());
}