Pascal/Turbo Pascal - Ficheros

 
Vista:

Ficheros

Publicado por Milton (7 intervenciones) el 22/11/2002 02:28:20
Alguien sabe aplicar el metodo de ordenacion de la burbuja a los ficheros de pascal?.
Un saludo.
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

RE:Ficheros

Publicado por Diego Romero (786 intervenciones) el 22/11/2002 18:36:00
Tiene una dificultad extra hacerlo directamente con el archivo, no puedes borrar un registro a la mitad del archivo :(.
Por tanto te sugiero que cargues el archivo completo en una lista en memoria, ordenes la lista completa y sobreescribas el archivo en disco con la lista ya ordenada.
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

RE:Ficheros

Publicado por Milton (7 intervenciones) el 22/11/2002 21:03:20
El problema es q aún no he dado listas y no creo q adelantarme al temario le guste a la profesora, seguramente me la pondria No apta y me diria quien te la ha dejao niñato :) .
No sería igual q con vectores pero poniendo filepos y filepos - 1 y si filepos-1 es menor q filepos le asigno a filepos:= filepos-1?
Un saludo.
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

RE:Ficheros

Publicado por Roberto Garcia (128 intervenciones) el 23/11/2002 06:50:35
Para ordenar los registros de un archivo, lo que hago basicamente es

leer dos registros del archivo (dato1, dato2), si dato1 >dato2 (o dato1 < dato2), entonceslo que esta en dato2 lo guardo donde esta dato1 y viceversa.

seek(archivo,j);
read(archivo,dato1);
seek(archivo,j+1);
read(archivo,dato2);
if dato1 > dato 2 then begin
seek(archivo,j);
write(archivo,dato2);
seek(archivo,j+1);
write(archivo,dato1);
end;

todo esto dentro de un for y el for dentro de un repeat o while (until ordenado, etc.);
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