Bueno ahora al grano.
El otro dia, estuve tratando de ordenar un archivo de texto llamado ItemAdd.ini
el archivo solo son numeros por ejemplo
123510 12 4214 32141 421421 4213 5436 534 12
los 2 primeros numeros son los que estoy tratando de ordenar, o sea que a partir de esos trato de ordeanr el archivo
el primer numero se repite siempre 12 veces /*Se repite en la misma linea? o en lineas diferentes?*/
por ejemplo
123510 1 ......
123510 2 ......
ahora, estan todos desordenados, asi que lo que hice fue 2 maneras de ordenarlo que es por el primer numero o el segundo numero.
tengo un List<string> llamado IDsque almacenara todas las ID (primer numero) y un byte llamado Maximo plus = 12; (el maximo base del segundo numero) /* Está parte no la entendí */
Si pudieras poner un ejemplo del archivo que quieres leer y del RESULTADO que quieres obtener me ayudaría un poco más a comprender.... no entendí del todo lo que deseas hacer....es que tocaria subir los 2 archivos pero como dije estoy en otro pc, pero mira
Saludos!
Bueno, aquí te paso lo que para mí es la mejor solución.
Tomando en cuenta el ejemplo que me pasaste, cree un archivo "ordenar.txt" con el siguiente contenido:
90 1 .......
84 3 .......
12 2 .......
90 2 .......
84 2 .......
84 1 .......
90 3 .......
12 3 .......
12 2 .......
entonces procedemos a ordenarlo.. :)Código: C#
string[] Lineas = System.IO.File.ReadAllLines(Application.StartupPath + "\\ordenar.txt"); IEnumerable<string> ordenar = Lineas.OrderBy(orde => orde); foreach (string x in ordenar) { richTextBox1.Text += x + (char)13; }
El resultado lo voy almacenando en un richTextBox como puedes observar, en tú caso recorres el vector ordenar y usas el StreamWriter para crear tú archivo. :) ...
Puedes apoyarte leyendo aquí: http://msdn.microsoft.com/es-es/library/bb534852.aspx , yo utilice el OrderBy (http://msdn.microsoft.com/es-es/library/bb534966.aspx)
Saludos espero te sirva.
Si bien entiendo quieres ordenar un vector de números de menor a mayor.
Hay muchos métodos documentados. Este es el de burbuja:
http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja
En resumen. Tienes un vector A unidimensional de n posiciones. Coges un elemento j y compruebas si para j+1 A(j+1)<A(j). En caso positivo intercambias posiciones y continuas. Recorres el vector para cada uno de los elementos i (te aseguras de ordenarlos todos).
for(i=0; <n; i++){
for(j=0; j<n-1; j++){
if(A[j]>A[j+1]){
x = A[j];
A[j] = A[j+1];
A[j+1] = x;
}
}
}