Abacus Application: Sorting Files

See all articles from QL_DOC n12
Author(s): Réal Gagnon
Publication: QL_DOC
Pub Details: QL_DOC n12 (Issue 12)
Date: October-November 1989
Pages: 8-9

In English: An alternative to DLO_BAS for listing a disk or microdrive directory in sorted columns, using Psion's Abacus spreadsheet. A short SuperBASIC program by Réal Gagnon writes the directory to a DIRECT_EXP file in Abacus's import format (quoted strings separated by commas); the article then gives the Abacus key sequences to import it, sort it with ORDER, arrange it in columns with COPY, widen cells with GRID WIDTH and clear the leftovers with RUBOUT.

Printed title: ABACUS Application *- Classement de fichiers -*. The article below is in French, as printed in QL_DOC n12 (October-November 1989).


Dans le QL_DOC#11, on présentait une nouvelle version du programme DLO_BAS qui sert à classer alphabétiquement les contenusd’une disquette ou d’un µdv. Nous allons voir une méthode différente pour faire le même travail avec ABACUS.

Premièrement il nous faut un petit programme SuperBASIC pour lire le DIRectory et le transformer sous une forme qui peut être IMPORTer avec ABACUS.

La façon de procéder est simple. On crée notre fichier contenant le DIRectory (“direct_tmp”) de façon standard. Puis on relie ce fichier en séparant chacun de ses éléments de façon à ce qu’ils soient acceptés par la fonction IMPORT d’ABACUS.

Pour importer du texte dans ABACUS, notre texte doit se présenter de la façon suivante: “TEXTE 1″,”TEXTE 2″,”TEXTE 3”, etc… . Chaque chaîne de caractères est entourée de guillemets et séparée par une virgule. Notre fichier séparé ainsi se nommera DIRECT_EXP.

Dans ABACUS, nous insérons la disquette/cartouche contenant le fichier DIRECT_EXP.

Nous faisons F3-F-I-direct_exp-(ENTER)-(ENTER).

Le contenu devrait apparaître à l’écran. La prochaine étape consiste à classer par ordre alphabétique le nom de fichier avec la commande ORDER.

Nous faisons F3-O-(ENTER)-(ENTER)-(ENTER).

L’étape suivante consiste à utiliser la commande COPY pour mettre nos fichiers en colonnes. A ce moment, notre imagination est libre de placer comme bon il nous semble les colonnes.

Par exemple, si nous avons 20 fichiers, on pourrait faire 4 colonnes de 5 fichiers. On importe le fichier DIRECT_EXP dans ABACUS, on fait le tri alphabétique (SORT). Les 2 premières lignes sont pour le nom de la disquette/µdv et le nombre de secteurs utilisés. Les rangées 3 à 22 contiennent les noms de fichiers. Avec la commande COPY, nous allons faire 4 colonnes de 5 fichiers.

F3-C-A3:A7(ENTER)-B3(ENTER)
F3-C-A8:A12(ENTER)-C3(ENTER)
F3-C-A13:17(ENTER)-D3(ENTER)
F3-C-A18:22(ENTER)-E3(ENTER)

Il est possible de changer la largeur des cellules si celles-ci sont trop étroites pour la longueur des noms de fichiers, avec l’option WIDTH de la commande GRID.

Un fois ceci fait il ne reste plus qu’à effacer le surplus qui reste dans la colonne A avec la commande RUBOUT A3:A22.

> ABACUS Application par RG-o89

100 REMark DIRECTORY SORT ABACUS V1
110 REMark par Réal Gagnon
120 :
130 REPeat debut
140 INPUT 'Le directory de quel DEVICE? (ex. flp1_) ',,medium$
150 IF medium$='':PRINT 'Retour au SuperBASIC.':STOP
160 IF medium$(1 TO 3) INSTR 'mdvflpfdkhdk':EXIT debut
170 END REPeat debut
180 :
190 DELETE medium$&'direct_EXP'
200 DELETE medium$&'direct_TMP'
210 OPEN_NEW #6,medium$&'direct_TMP'
220 DIR #6,medium$
230 CLOSE#6
240 :
250 OPEN#6,medium$&'direct_TMP'
260 OPEN_NEW#7,medium$&'direct_EXP'
270 PRINT "Mmmm";
280 REPeat BOUCLE
290 INPUT#6,FICHIER$
300 PRINT ".";
310 IF FICHIER$=='"direct_tmp"'
320 END REPeat BOUCLE
330 END IF
340 IF EOF(#6)
350 CLOSE#6:CLOSE#7
360 EXIT BOUCLE
370 END IF
380 PRINT#7,'"';FICHIER$;'"';',';
390 END REPeat BOUCLE
400 :
410 PRINT
420 PRINT "OK Terminé!"

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.