FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como puedo desordenar un archivo ??
hola a todos los delphiano..
Mi pregunta como se ve es que necesito leer un archivo de text, este archivo contiene numeros de telefono, pero vienen de forma ordenada pero yo necesito estos archivos de forma desordenada. ejem. mi archivo viene 5904310 5904311 5914380 5926010 y yo lo quiero 5904311 5926010 5926010 5901310 o sea que no tengan un orden me pueden dar una manito. gracias de antemano... |
#2
|
||||
|
||||
Bueno si el archivo no es muy rande puedes hacer una "rutinilla" que fácilmente te los desordene utilizando 2 TStrings;
(1) Carga el fichero en TStrings1 (2) Utilizando Randomize y Random (en la ayuda de delphi hay un ejemplo) con la limitación de TStrings1.Count obtienes un número aleatorio X. (3) Eliminas la línea X del TStrings1 y la pasas a TStrings2. (4) Repite el (2) mientras queden líneas en TStrings1. Espero haberme explicado decentemente.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Hola, no se si he entendido bien la cuestión:
¿el fichero lo quieres desordenado (aleatoriamente) o lo quieres en otro orden, es decir "TU" orden concreto? [s]1er caso[/s] Puedes cargar ese fichero en un TStringList (ignoro el tamaño que tiene) e implementar un algoritmo que intercambie 2 posiciones de los elementos del TStringList de forma aleatoria, usando el método Exchange del TStringList. NOTA: Este proceso de "desorden" debe terminar alguna vez... [s]2º caso[/s] Debe haber un orden dentro del desorden... el orden que TU quieres que tenga el fichero, y dicho orden debe poder implementarse mediante un algoritmo... Salu2. |
#4
|
|||
|
|||
Muchas gracias a los 2 probare con la ideas que me dieron.
ah, el archivo realmente no se de que tamano sera porque tiene muchos # de telefono. Otra cosa el orden final realmente no me importa, lo unico que necesito es que esten desordenado. Esto es para realizar un pequeno sistema de loteria. si alguien tiene una mejor idea, pleasse se lo agradeceria |
#5
|
|||
|
|||
y en vez de desordenar el fichero, porque no eliges un numero al azar, y vas a la linea que te indica ese numero. y marcas los numeros que sacas, de manera que si los vuelves a sacar, repites la tirada.
__________________
frenadol |
#6
|
||||
|
||||
Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
|||
|
|||
!Hola!
Si el fichero tiene más de un campo, ordenalo por otro campo y, prácticamente seguro, que no te quedará ordenado por el campo principal. Si el número de teléfono es el único campo, entonces añádele otro con un número aleatorio y lo ordenas por este último campo. Además, puedes aprovechar para añadir un tercer campo donde marques si el número ha sido marcado o no (como solución a lo que te dice Neftalí). Saludos.
__________________
Rafita. |
#8
|
|||
|
|||
Si es para una loteria y no son muchisimos telefonos (no mas de unos cuantos miles), seria mejor elegirlos al azar como explica Neftali o maruenda, e ir eliminadolos de la lista, para que no se vuelvan a usar, ej:
Código:
var List : TStringList; Index: integer; begin List:= TStringList.Create; try List.LoadFromFile('mistelefonos.txt'); while List.Count>0 do begin Index:= random(List.Count); Memo1.Lines.Add(List[Index]); List.Delete(Index); end{while}; finally List.Free; end; end; |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|