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.