Página 1 de 1

Orden de archivos en CF para ZxDivIDE

Publicado: 17 Jun 2018, 16:33
por Bubu
Jarl, torpedos,

resulta que llevo 10 años usando el divIDE con una CF, y siempre me ha pasado lo pispo: cuando pincho la CF en un PC, veo los archivos perfestamente ordenados alfabéticamente, pero cuando pincho esa CF al CF2IDE del DivIDE pos hay archivos que no están bien ordenados. En general salen bien, pero 1 ó 2 de cada 10 no sale en su sitio, y no tengo ni idea de qué depende ese orden ni cómo arreglarlo.

¿A alguien le pasa lo pispo? ¿Hay alguna forma de ordenar correstamente (por orden alfabético) los archivos en la CF que tiene FAT?

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 17 Jun 2018, 16:44
por zup
Si mal no recuerdo, el funcionamiento de un sistema de ficheros FAT es el siguiente:
- La lista de ficheros se va rellenando en orden de llegada.
- Cuando un fichero se borra, su lugar en la lista se marca como "borrado".
- Cuando vuelves a copiar ficheros, se rellenan los huecos y después se van añadiendo a la lista

Los sistemas operativos modernos (Windows, Linux) leen la lista de ficheros y la ordenan antes de mostrarla, por lo que el orden que ves en pantalla no es el orden real de los ficheros. Supongo que el divIDE (al igual que hacía MS-DOS) no se molesta en ordenarlos, probablemente por cuestiones de potencia de proceso.

Buscando "sort fat files" aparecen aplicaciones que permiten ordenar los ficheros. En esta página explican el problema (aplicado a MP3 portátiles) y hay una aplicación (DriveSort) que además de ordenar te deja ver el orden real antes de tocar nada.

(P.D.: Por las probabilidades de pifiarla cuando se está mangoneando en una unidad FAT, te recomiendo hacer copia de seguridad de la tarjeta antes de empezar a torturarla)

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 17 Jun 2018, 16:45
por BlackHole
Primer resultado de Google:

YAFS - Yet Another FAT Sorter
http://www.luisrios.eti.br/public/en_us/projects/yafs/

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 17 Jun 2018, 17:02
por Bubu
Pues he seguido haciendo experimentos, y resulta que el FatWare ordena los archivos en función del orden de cuando fueron grabados, no los ordena alfabéticamente efestivamente. Así que la solución es muy simple:

(1) Copiar los archivos de la CF al Window$
(2) Formatear la CF
(3) Volcar los archivos del Window$ al CF


Teóricamente, el paso (3) hace que Window$ vaya grabando en orden alfabético, por lo que el FatWare los recuperará tamién en ese orden, jiji.

Voy a catar.

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 17 Jun 2018, 20:48
por zup
Eso seguro que funciona, pero personalmente creo que borrar y volver a grabar todo cada vez es un poco pesado...

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 17 Jun 2018, 21:22
por Bubu
Pues he catado el método sacar+formatear+meter, y ha tardado en total 6 minutos para 2.000 juegos que tengo. Y carbura perfestamente, ya está todo ordenadito alfabésticamente. De momento me va de lujo. Lo malo es si me da por meter a posteriori un nuevo juego, se iría al final, y de nuevo tendría que hacer el método del "saca-mete". ¿Tu método no tendría que hacer el "saca-mete"? ¿Actuaría direstamente sobre la CF?

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 18 Jun 2018, 10:31
por Skuall
Yo uso este en mi Divide desde linux:

https://fatsort.sourceforge.io/

Solo tarda unos segundos en una tarjeta bastante llena.

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 18 Jun 2018, 14:47
por Bubu
OK, yo es que uso Window$. Voy a catar la que propone zup a ver qué tal.

http://www.anerty.net/software/file/DriveSort/

Re: Orden de archivos en CF para ZxDivIDE

Publicado: 08 Jul 2018, 16:55
por Bubu
Torpedos, acabo de catar el DriveSort y va de fábula, oiga. He metido miles de juegos en subcarpetas: A, B, C, ... Le he dado a ordeñar la carpeta raíz, e instantáneamente lo ha ordeñado todo. He pinchado la CF en el Spectrum, y a la perfección.
¡Muchas gracias!

Sólo me ha quedado la duda de qué ocurre cuando se deja que Window$ lo ordeñe, ¿al ser FAT lo ordeñará por nombre corto : LAS3LU~1.Z80 y cosas así?