09.03.99

Bibliothèque n°500: STRG v1.1
Auteur: Yoann DESIR
e-mail: YoannDESIR@yahoo.com

Cette bibliothèque contient un certain nombre d'utilitaires maison permettant de travailler sur les chaînes de caractères.

T5C: Prend en argument une chaîne au niveau 1. Découpe virtuellement cette chaîne en morceaux de 5 quartets, et permet de lire cette chaîne selon une mise en page de lignes de 10 blocs de 5 caractères.

REPLS: Programme de remplacement en chaîne. Nécessite une chaîne dans laquelle s'effectuent les remplacements au niveau 3, une chaîne paterne au niveau 2, et une chaîne au niveau 1 par laquelle remplacer toutes les occurences de la chaîne niveau 2 dans la chaîne niveau 3.
Dans la chaîne niveau 2, le caractère ASCII n°127 signifie "caractère quelconque". Le nombre de remplacements est renvoyé au niveau 1, la chaîne éventuellement modifiée au niveau 2.
Seul inconvénient: l'emploi de REPLS nécessite souvent plus de place que de raison; j'essaie actuellement de palier cet inconvénient.

REVS: La plus rapide et la plus compacte version que j'aie trouvée de ce programme, qui renvoie à l'envers la chaîne argument niveau 1.

CKSMS: Donne les CheckSums du contenu de la chaîne niveau 1, ligne de 50 caractères par ligne de 50 caractères.
Ce programme et les deux suivants sont surout utiles dans une optique dépourvue de transferts HP-PC et de possibilité de sauvegarde informatique des fichiers.
Dans ce cas, on peut envisager de sauvegarder sur papier les fichiers de petite taille, ou du moins leurs quartets constitutifs.
CKSMS permet de sécuriser la resaisie ultérieure des quartets tapés.
( cf plus bas )

CHK: Vérifie que la liste des entiers-binaires du niveau 2 ( homologue de celle obtenue par CKSMS ) correspond à la chaîne de quartets du niveau 1.
Chaque entier-binaire doit être identique au code de redondance cyclique de la ligne de 50 caractères à laquelle il correspond.
En cas d'erreur de saisie, la pile telle que la laisse CHK sert d'argument à EDIT LINE.

EDIT LINE: Doit être lancé en cas d'erreur de saisie détectée par CHK: ne pas modifier la pile, et appuyer sur l'icône correspondant au XLIB EDIT LINE. Permet d'éditer la ligne où la ( première ) erreur a été détectée.
En appuyant sur , ou , on saisit la ligne corrigée ou non, qui est intégrée dans la chaîne initiale.

----> Exemple typique d'utilisation de l'ensemble CKSMS, CHK et EDIT LINE:
- Ecrire sur papier les quartets constitutifs d'un objet créé;
- Obtenir les ChkSums par CKSMS, et les noter à proximité;
Pour récupérer l'objet dans toute son intégrité,
- Taper les quartets constitutifs de cet objet, consciencieusement notés;
- Saisir les ChkSums correspondant aux différentes lignes, sous forme de liste d'entiers-binaires;
- Vérifier la conformité de la chaîne avec la liste de binaires par CHK;
- En cas d'erreur, utiliser EDIT LINE.

O->ST: Inclut l'objet du niveau 1 dans une chaîne dont le contenu est identique aux quartets de l'objet argument.

  Ex.: 1: 'A'       => 1: "H." 
          84E201014       C2A20 E0000 84E201014 

S->OB: Opération réciproque. Attention, n'importe quelle chaîne ne peut servir d'argument.

COM2S: Compare deux chaînes aux niveaux 1 et 2. En cas d'identité, aucun résultat renvoyé. En cas de différence, la position du caractère différant entre les deux chaînes est renvoyée au niveau 1.

GTDF: A partir du résultat renvoyé par COM2S en cas de chaînes différentes, renvoie aux niveaux 2 et 1 les deux caractères différents des chaînes initialement comparées.

SCAN STR : Permet de limiter le nombre de mots par ligne dans une chaîne fournie au niveau 1. Si plusieurs mots occupent plus de 22 caractères, les mots en fin de ligne sont placés dans la ligne suivante.
Si un alinéa est rencontré dans la ligne suivante, une ligne supplémentaire est créée.

STCRC: Calcule le Code de Redondance Cyclique des quartets CONTENUS dans la chaîne au niveau 1.
Ex.: C2A20 F0000 11920 50000 au niveau 1 => <4AD7h>,
Crc des quartets <11920 50000>. Essayez par exemple d'effectuer BYTES sur l'entier-système <5h>, dont les quartets sont justement <11920 50000>...

Voilà, pour information supplémentaire, écrivez-moi un e-mail...