Pascal/Turbo Pascal - Ordenar Datos dentro de un archivo de texto AYUDA

 
Vista:

Ordenar Datos dentro de un archivo de texto AYUDA

Publicado por lucas (4 intervenciones) el 26/11/2012 02:16:21
PROGRAMA EN FREE PASCAL

Tengo un archivo de texto en c:\agenda.txt que tiene id,apellido,nombre,telefono,email

(archivo)
6
mengano
menganito
456212
[email protected]
2
fulano
guli
3312112
[email protected]

Bueno como ordeno por Id osea el numero menor este primero , quedando el archivo ordenado asi:

(archivo)
2
fulano
guli
3312112
[email protected]
6
mengano
menganito
456212
[email protected]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ordenar Datos dentro de un archivo de texto AYUDA

Publicado por ramon (2158 intervenciones) el 26/11/2012 16:10:37
Si lo que tienes es una linea de texto mal podrás ordenarla puesto que tendrías que buscar
la posición del numero en todas las lineas y cambiar las de posición.
creo por lo que pones que se trata de un registro pero con firmarlo para poder ayudar.
En estas condiciones.

datos = record
fulano
guli
[email protected]
end;

Es esto o parecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ordenar Datos dentro de un archivo de texto AYUDA

Publicado por ruben (8 intervenciones) el 26/11/2012 20:14:40
El ordenamiento no se puede realizar sobre el mismo archivo, asi que te aconsejo que empleando una estructura auxiliar (lista simple vinculada) recorras el archivo registro por registro y vayas insertando en la lista vinculada los pares de números: (posición del registro/id del registro).
Esta lista la debés ir construyendo ordenada.
Luego generas un nuevo archivo y vas escribiéndole los registros según te lo indique la info que guardaste en cada nodo de la lista.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ordenar Datos dentro de un archivo de texto AYUDA

Publicado por ramon (2158 intervenciones) el 26/11/2012 21:55:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{Ordenacion de un archivo sobre el mismo}
 
type
   regprue = record
         nume : integer;
         nombre Ñ string[80];
         end;
 
 var;
 pru : array[1..2] of regprue;
  f : file of regprue;
  archivo : string;
 
 
procedure ordenar;
  var
    hl, il, len : longint;
    tempo : regprue;
  begin
      assign(f,archivo);
   {$I-} reset(f); {$I+}
     if ioresult <> 0 then
     begin
        writeln('Archivo <', archivo, ' > no Encontrado');
        halt(1);
       end
     else
         begin
            len := filesize(f) - 1;
            for il := 0 to len do
            begin
              seek(f,il);
              read(f,pru[1]);
              for hl := len downto il do
              begin
                 seek(f,hl);
                 read(f,pru[2]);
                 if pru[1].nume > pru[2].nume then
                 begin
                     tempo.nume := pru[1].nume;
                     tempo.nombre := pru[1].nombre;
                     pru[1].nume := pru[2].nume;
                     pru[1].nombre := pru[2].nombre;
                     pru[2].nume := tempo.nume;
                     pru[2].nombre := tempo.nombre;
                     seek(f,il);
                     write(f,pru[1]);
                     seek(f,hl);
                     write(f,pru[2]);
                 end;
              end;
            end;
            close(f);
       end;
  end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ordenar Datos dentro de un archivo de texto AYUDA

Publicado por ruben (8 intervenciones) el 26/11/2012 22:20:10
Si el achivo fuese tipado en lugar de ser de texto podrías usar el método de ordenamiento por burbujeo que es muy simple. O podrías usar el de Ramón que propone el método de selección.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar