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"); } } }
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; }
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()); }