| N° | Fonction | Catégorie | Version |
|---|---|---|---|
| BIC 03 | BiC_Var2Str | Fonction de Convertion | 1.0 - Janvier 2007 |
| But | Convertit une variable en chaîne. |
| Prototype | (BiC_Var2Str Variable) |
| Argument | Variable - La variable à analyser - Tout type - |
| Retours | La variable sous forme de chaîne. |
| Var. globales | Néant |
| Description | Convertit n'importe quel type de variable en chaîne y compris les fonctions internes |
| Notes | Pour pouvoir convertir une variable en chaîne, il faut l'écrire dans un fichier
puis ensuite la relire à l'aide de la fonction read-line. Un fichier appelé "STRING$$.TMP" est laissé dans le répertoire en cours. Pour compatibilité avec tous systèmes, il n'est pas effacé automatiquement. |
| Exemples |
Command: (setq l1 (list '(a b) "aa" bb)
a2 5.236
s3 "azerty")
(BiC_Var2Str l1) retourne "((A B) "aa" nil)"
(BiC_Var2Str a2) retourne "5.236"
(BiC_Var2Str s3) retourne ""azerty""
(BiC_Var2Str toto) retourne "nil"
Et si on demande de convertir une fonction,
(pourquoi pas cette fonction elle-même)
Commande: (BiC_Var2Str BiC_Var2Str)
On obtient tout le texte de la fonction,
même si celle-ci a été chargée à l'aide d'un fichier protégé.
"((*VARIABLE / FILE1 RESULT) (SETQ FILE1 (OPEN "STRING$$.TMP" "w"))
(IF FILE1 (PROGN (PRIN1 *VARIABLE FILE1) (CLOSE FILE1) (SETQ FILE1 (OPEN
"STRING$$.TMP" "r")) (SETQ RESULT (READ-LINE FILE1)) (CLOSE FILE1)
RESULT) (PROGN (PRINC
"\\nImpossible d'ouvrir "STRING$$.TMP" en ecriture.") (PRINC))))"
|
1- (defun BiC_Var2Str (*Variable / File1 Result) 2- (setq File1 (open "STRING$$.TMP" "w")) 3- (if File1 4- (progn 5- (prin1 *Variable File1) 6- (close File1) 7- (setq File1 (open "STRING$$.TMP" "r")) 8- (setq Result (read-line File1)) 9- (close File1) 10- Result 11- ) 12- (progn 13- (princ "\nImpossible d'ouvrir \"STRING$$.TMP\" en écriture.") 14- (princ) 15- ) 16- ) 17- )
Ligne 2 : Ouvre le fichier provisoire " STRING$$.TMP" en écriture, sous le nom de File1
Ligne 3 : Si le fichier a pu s'ouvrir en écriture,
Ligne 4 : écrit la variable dans le fichier.
Ligne 5 : puis ferme le fichier
Ligne 7 : Rouvre le même fichier en lecture
Ligne 8 : lit le fichier
Ligne 9 : referme le fichier
Ligne 10 : et retourne le résultat
Ligne 12 : Sinon, (Si le fichier n'a pas pu s'ouvrir,
message : interdiction d'écrire, disque plein, etc...),
Ligne 13 : Retourne un message d'erreur.