Fraid Posté(e) le 24 juillet 2012 Posté(e) le 24 juillet 2012 (modifié) Bonjour, Je cherche à "manipuler" des textes par l'Autolisp. revenu bredouille de google pensant trouver facilement des fonctions déjà faites, je m'y collasse. je commence par l'insertion d'une ligne, qui me semblais un exercice facile, que neni ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Insérer un ligne de texte dans un fichier texte ;Arguments: OpenFichier -String, Chemin du fichier ex: "C:/Test/Communes.csv" ; Line -Entier, Numero de la ligne d insertion (la ligne est inserée aprés celle-ci), si = 0 au debut, si superieur au nb de lignes à la fin ; Texte -String, Texte de la ligne à insérer ;retour: T si reussi sinon NIL ;Ex: (Insert-Line "C:/Test/Communes.csv" 10 "Abbenans;ABBENANS;25340;25003;43;47.5;6.45") (defun Insert-Line ( OpenFichier Line Texte / Nombline Pre Post Fichier ) (setq Nombline (Len-Line OpenFichier) Fichier (open OpenFichier "r") ) (cond ((= Line 0) (repeat Nombline (setq Post (cons (read-line Fichier) Post)) ) (setq Post (reverse Post)) (close Fichier) (setq Fichier (open OpenFichier "w")) (write-line Texte Fichier) (foreach Z Post (write-line Z Fichier)) (close Fichier) T ) ((< Line Nombline) (repeat line (setq Pre (cons (read-line Fichier) Pre)) ) (setq Pre (reverse Pre)) (repeat (- Nombline Line) (setq Post (cons (read-line Fichier) Post)) ) (setq Post (reverse Post)) (close Fichier) (setq Fichier (open OpenFichier "w")) (foreach Z Pre (write-line Z Fichier)) (write-line Texte Fichier) (foreach Z Post (write-line Z Fichier)) (close Fichier) T ) ((>= Line Nombline) (repeat line (setq Pre (cons (read-line Fichier) Pre)) ) (setq Pre (reverse Pre)) (close Fichier) (setq Fichier (open OpenFichier "w")) (foreach Z Pre (write-line Z Fichier)) (write-line Texte Fichier) (close Fichier) T ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Compteur de lignes d'un fichier Texte ;Arguments: OpenFichier -Chemin du fichier ex: "C:/Test/Communes.csv" ;retour: Entier (defun Len-Line ( OpenFichier / len Fich) (setq len 0 Fich (open OpenFichier "r")) (while ( read-line Fich) (setq Len (+ 1 len))) (close Fich) len ) Evidemment cela ne veux pas fonctionner, cela bloque au moment de l’écriture je n'arrive pas a savoir pourquoi. (1er question) 2em : j'ai l'impression de vouloir réinventer la poudre, n'existe t'il pas des fonctions d'editions de fichiers textes, comme supprimer une ligne...? merci Modifié le 24 juillet 2012 par Fraid https://github.com/Fraiddd
bryce Posté(e) le 24 juillet 2012 Posté(e) le 24 juillet 2012 Bonjour, Dans la routine Len-Line, tu ne fermes pas le fichier après l'avoir lu.Peut-être que c'est ce qui empêche de le rouvrir ensuite en écriture ? Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
bryce Posté(e) le 24 juillet 2012 Posté(e) le 24 juillet 2012 En fait il y a une coquille lignes 25 et 42, il faut remplacer (foreach Z Post (write-line Z post)) par (foreach Z Post (write-line Z Fichier)) ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Fraid Posté(e) le 24 juillet 2012 Auteur Posté(e) le 24 juillet 2012 Merci, Bryce encore des erreurs d’inattention.... du coup je vais savoir faire les fonctions qui me manque sur ce model. https://github.com/Fraiddd
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant