void MainWindow::on_actionEncode_triggered() { QString text = ui->plainTextEdit->document()->toPlainText(); QString aux = "",res=""; int ind = 0; while (ind < text.length()){ aux += text.at(ind); ind++; if (aux.length() == 8){ res += codificar(aux); aux = ""; } else if(ind == text.length()){ while(aux.length() < 8) aux += tr("0"); res += codificar(aux); aux = ""; } } ui->plainTextEdit_2->clear(); ui->plainTextEdit_2->setPlainText(res); }
void Tree::codificar(Node *node, string temp){ if(node->isLeaf() == true){ aux = node->getContent(); codeNodes[aux] = temp; } else{ temp = temp + "0"; codificar(node->getLeftChild(), temp); temp = temp.substr(0, temp.length() - 1); temp = temp + "1"; codificar(node->getRightChild(), temp); } }
char *scodifica(char *dados, int chave){ char *ndados = (char *)malloc(sizeof(char)*strlen(dados)); int i; for(i=0; i<strlen(dados); i++){ ndados[i] = codificar(dados[i], chave); } return ndados; }
//Codifica os nós da árvore void Tree::codificar(No *node, std::string temp) { if(node->isLeaf() == true) { aux = node->getContent(); codeNodes[aux] = temp; //cout << aux << " " << codeNodes[aux].length() << " " << codeNodes[aux] << endl; } else { temp = temp + "0"; codificar(node->getLeftChild(), temp); temp = temp.substr(0, temp.length() - 1); temp = temp + "1"; codificar(node->getRightChild(), temp); } }
int main (void){ int a,b; printf("Introduce un entero: \n"); scanf("%d",&a); b=codificar(a); printf("La codificación de : %d es %d\n",a,b ); return 0; }
int main(){ int chave = 200; FILE *arq; arq = fopen("entrada.txt", "r"); if(arq == NULL) printf("Não abriu"); char dados[10000]; fgets(dados, 10000, arq); if(dados == NULL) printf("Não leu fgets"); int i = 0; for(i=0; i<strlen(dados); i++){ int k = (int)dados[i]; int gerado = codificar(k); int decodificado = decodificar(gerado); printf(">%c - %c\n", gerado, decodificado); } return 0; }
int main() { int i; codificacion cod [6]; cod[0].simbolo = 'a'; cod[0].longCod = 2; cod[0].cod = 3; cod[1].simbolo = 'r'; cod[1].longCod = 3; cod[1].cod = 0; cod[2].simbolo = 'o'; cod[2].longCod = 3; cod[2].cod = 1; cod[3].simbolo = 'n'; cod[3].longCod = 2; cod[3].cod = 2; cod[4].simbolo = 'w'; cod[4].longCod = 3; cod[4].cod = 2; cod[5].simbolo = 'g'; cod[5].longCod = 3; cod[5].cod = 3; char* buffer = malloc(12); buffer = "aarbonwbangb"; int basura; char* res; int tamBuff = 12; long long int *tamBits; res = cantBytesBstream( cod, buffer, tamBuff, 3, 1); basura = codificar(cod, buffer, tamBuff, 3, 1, res); for(i = 0; i < 3; i++) { printf("el resultado es: %d \n", res[i]); } printf("la basura es de :%d\n",basura ); return 0; }
int main (int argc, char *argv[]) { setlocale (LC_ALL, ""); int num_contactos = 0; // Se crea un contador de "Contactos" Contacto *ap_lista_contactos; // apuntador a la lista de contactos FILE *ap_archivo = NULL; // apuntador a file para referenciar un archivo // abierto, lo iniciamos en NULL por seguridad int i; // contador // ### Parte 1: Mensajes iniciales ### presentacion (); getchar (); #ifdef _WIN32 validarUsuario (); #endif //_WIN32 /* * ### Parte 2: Pedir contactos al usuario ### * Se pregunta al usuario cuantos contactos desea guardar y se le pide dicha * cantidad de veces datos para los contactos */ printf ("¿Cuántos contactos desea guardar?\n"); scanf ("%d", &num_contactos); ap_lista_contactos = crearArreglo(num_contactos); for (i = 0; i < num_contactos; ++i) { printf ("Para el contacto %d\n", i + 1); agregarContacto (ap_lista_contactos, i); putchar ('\n'); } /* ### Parte3: Guardar contactos en archivo ### */ codificar (ap_lista_contactos, num_contactos); escribirArchivo (ap_archivo, ap_lista_contactos, num_contactos); /* ### Parte 4: Mensaje de despedida ### */ despedida(); return 0; }
/** Funcion principal del programa*/ int main() { //Impresión de estructura para visualizar resultados obtenidos printf("*--------------------------------------*\n"); printf("* PROGRAMA PARA CODIFICAR FRASES *\n"); printf("*--------------------------------------*\n"); printf("Por favor Ingrese una frase:\n"); generar(); printf("*--------------------------------------*\n"); printf("+ La frase %s tiene %d caracteres. +\n",txt,n); printf("*--------------------------------------*\n"); printf("*...........................................*\n"); printf("La generacion aleatoria de codificacion es:\n "); printf("*...........................................*\n"); codificar(); printf("\n"); system("PAUSE"); return 0; }
void Tree::writefile(char *pathIn){ ifstream file; ofstream write; string aux; string aux2; string temporaria; int sobra = 0; int sizefile = 0; BitArray *buffer = new BitArray(); aux.clear(); temporaria.clear(); codificar(root, aux); aux.clear(); file.open(pathIn , ios::in | ios::binary | ios::ate); if(file.is_open()){ int size = file.tellg(); file.seekg(0, ios::beg); int i; int iw =1; for(i=0; i< size; i++){ unsigned char c = file.get(); int j = c; aux += codeNodes[j]; if(aux.length() >= 1024*8){ sobra = aux.length() - 1024*8; temporaria = aux.substr(1024*8, sobra); for(int k = 0;k < (aux.length()/8); k++){ int n = k*8; aux2 = aux.substr(n, 8); codenode_to_bitarray(aux2, buffer); } iw++; write.open("temp.huff", ios::out | ios::binary | ios::app); if(write.is_open()){ for(int z = 0;z < aux.length()/8;z++){ write << buffer->getArray()[z]; sizefile++; } } write.close(); aux.clear(); aux = temporaria; buffer->clear(); } } int y = (aux.length()/8); sobra = aux.length() - (y*8); aux2 = aux.substr(y*8,sobra); string teste = aux2; for(int k = 0;k < (aux.length()/8); k++){ int n = k*8; aux2 = aux.substr(n, 8); codenode_to_bitarray(aux2, buffer); } int u = 8 - sobra; sizeTrash = u; aux2 = teste; for(int i = 0;i < u;i++){ aux2 += '0'; } codenode_to_bitarray(aux2, buffer); sizeLast = (buffer->getCurrent() / 8); sizeLast--; write.open("temp.huff", ios::out | ios::binary | ios::app); if(write.is_open()){ for(int z=0; z <= sizeLast;z++){ write << buffer->getArray()[z]; sizefile++; } } write.close(); sizeTrash = buffer->trashLenght(); buffer->clear(); } else cout << "TRASH!in WriteFile" << endl; file.close(); }