//--------------------------------------------------------------------------- void MatrizNotas::Cambia(unsigned int num_col,unsigned int num_voz,TipoNotaCompuesto nueva_nota) { if ((Cancion.size()>num_voz)&&(Cancion[num_voz].size()>num_col)) { Cancion[num_voz][num_col]=nueva_nota; } else { Inserta(num_col,num_voz,nueva_nota.Duracion,nueva_nota.Velocity); } }
int main(){ //LEE LINEA X LINEA EL ARCHIVO E INSERTA dirArchivo = "C:/Users/Natthaliee/Desktop/texto.txt"; archivo=fopen(dirArchivo, "r"); if (archivo==NULL){ perror ("Error al abrir fichero.txt"); return -1; }else{ printf("Insertando datos al árbol: \n"); t1 = clock(); while(fgets(cad,1000000,archivo)!=NULL){ printf("%s",cad); Inserta(&arbol,atoi(cad)); add(atoi(cad)); cont=cont+1; arreglo[k] = atoi(cad); k++; } fclose(archivo); t2 = clock(); duracionInserta = tiemp(t1, t2); printf("\nTiempo Insercion: %ld milisegundos\n",duracionInserta); } //RECORRIDO printf("\n\nRecorrido enOrden:\n"); t1 = clock(); //recorrido(arbol); if(arbol!=NULL){ recorrido(arbol->left); recorrido(arbol->rig); } t2 = clock(); duracionRecorrido = tiemp(t1, t2); printf("\nTiempo Recorrido: %ld milisegundos\n",duracionRecorrido); //ORDENAMIENTO ordenamiento(arbol,k); //GRAFICA printf("Presione cualquier tecla para continuar.."); getchar(); graficar(cont); //SALIR system("PAUSE"); return 0; }
//--------------------------------------------------------------------------- void MatrizNotas::CargaFicheroTexto(AnsiString fichero) { ifstream archivo; //AnsiString fichero="prueba.txt"; archivo.open(fichero.c_str()); char temporal[16]; String A_Comparar="VOCES "; for (int i=0;i<5;i++) { archivo>>temporal[i]; if (temporal[i]!=A_Comparar[i+1]){ShowMessage("Archivo Corrupto/No válido");return;} } //comparamos que pone "Voces " int voces_archivo; int columnas_archivo; archivo>>voces_archivo; A_Comparar="COLUMNAS "; for (int i=0;i<8;i++) { archivo>>temporal[i]; if (temporal[i]!=A_Comparar[i+1]){ShowMessage("Archivo Corrupto/No válido");return;} } archivo>>columnas_archivo; A_Comparar="RESOLUCION "; for (int i=0;i<10;i++) { archivo>>temporal[i]; if (temporal[i]!=A_Comparar[i+1]){ShowMessage("Archivo Corrupto/No válido");return;} } archivo>>Resolucion; //queda cargar todos los patrones rítmicos, eso si, antes tenemos que limpiar las listas :) Cancion.clear(); int velocity; for (int voz=0;voz<voces_archivo;voz++)//por cada fila { for (int columna=0;columna<columnas_archivo;columna++)//por cada elemento de la fila {//leemos 6 for (int i=0;i<6;i++) { archivo>>temporal[i]; } switch (temporal[2]) { case 'L': { archivo>>temporal[6];archivo>>temporal[7]; break; } case 'G': { archivo>>velocity; Inserta(columna,voz,LIGADO,velocity); break; } case 'M': { archivo>>velocity; Inserta(columna,voz,SIMPLE,velocity); break; } } } for (int i=0;i<3;i++) { archivo>>temporal[i]; } //Esto es fin } archivo.close(); CambiaResolucion(128); /* archivo<<"VOCES "<<Voces<<"\n"; archivo<<"COLUMNAS "<<Columnas<<"\n"; archivo<<"RESOLUCION "<<Resolucion; for (int voz=0;voz<Voces;voz++) { archivo<<"\n"; for (int col=0;col<Columnas;col++) { TipoNotaCompuesto temporal=Dame(col,voz); switch (temporal.Duracion) { case SIMPLE:{archivo<<"SIMPLE ";break;} case SILENCIO:{archivo<<"SILENCIO ";break;} case LIGADO:{archivo<<"LIGADO ";break;} } //Ahora tendríamos que añadir el velocity if (temporal.Duracion!=SILENCIO){archivo<<temporal.Velocity<<" ";} } archivo<<"FIN"; } */ }