BiC_Var2Str

Fonction Catégorie Version
BIC 03 BiC_Var2Str Fonction de Convertion 1.0 - Janvier 2007

Description

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))))"

La fonction


   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.

Open "fichier" "w" : Ouvre un fichier en écriture. S'il n'existe pas le crée, sinon l'ancien contenu est écrasé.
Open "fichier" "r" : Ouvre un fichier en lecture seule. S'il n'existe pas nil est renvoyé.
Prin1 : Ici, enregistre *Variable dans le fichier ouvert.
Close : Referme un fichier.