예제 #1
0
//---------------------------------------------------------------------------
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;
}
예제 #3
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";
}
  */

}