Ahimsa Posté(e) le 10 juillet 2015 Posté(e) le 10 juillet 2015 Bonjour à tous, Je cherche à lire le contenu d'un fichier texte.J'utilise la fonction minimaliste ci-dessous pour tester, et j'ai en retour : type d'argument incorrect: FILE nil. (defun c:lecturetexte() (setq fichier (open "c:/debois/44.txt" "r")) ;j'ai testé aussi (setq fichier (open "c:\\debois\\44.txt" "r")) (setq ligne (read-line fichier)) (print ligne) (close fichier)) Le fichier existe bien dans le dossier, et est non vide. Généré via excel, il contient ce type d'éléments :44 0 14.044 27.935 15.244 55.87 15.944 111.74 16.2 Je ne trouve pas ce qui me bloque... Avez vous une idée ? Merci par avance !Julien.
bonuscad Posté(e) le 10 juillet 2015 Posté(e) le 10 juillet 2015 Bonjour, Ton code est bon, il n'y a pas d'erreur.La seule erreur possible pourrait venir de là: "c:/debois/44.txt" (fixé en dur dans ton code) et que ceci ne corresponde pas à au contenu de ton disque; ça je ne peux le vérifier.(un accent, un espace, une majuscule ....??) Pour éventuellement résoudre ton problème, essayes d'utiliser la fonction (getfiled):(setq fichier (open (getfiled "Fichier texte à ouvrir" "" "txt" 8) "r")) Pendant les tests antérieurs que t'aurais pus faire, si le fichier n'a pas été fermé (close fichier), cela peut aussi créer des problèmes ultérieures. Ferme ta session et recommence tes tests dans une nouvelle session; Autocad se charge de fermer les fichiers qui seraient resté ouvert... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Ahimsa Posté(e) le 10 juillet 2015 Auteur Posté(e) le 10 juillet 2015 Merci bonuscad, avec getfiled, ça fonctionne impéc..., et ça a débloqué la situation... tout refonctionne maintenant, même mon ancien code. Je ne comprend pas ce qui a cloché avant... effectivement j'ai la même conclusion, le prob se situait au niveau du fichier, même si je n'ai pas compris la raison exacte (peut-etre un fichier verrouillé, ou un truc du genre). Pour info, voila donc mon programme test modifié (avec ou sans boucle, enlever les commentaires) :(defun c:lecturetexte() (setq fichier (open (getfiled "Selectionnez le fichier support" "c:/debois/" "txt" 8) "r")) ; (while (setq ligne (read-line fichier)) (print ligne); ) (close fichier)) j'ai intégré ça dans mon programme principal (le nom "en dur" est saisi, ou généré en fonction de l'axe sur lequel on clique).Je reviendrai si j'ai d'autres blocages. Merci encore pour ta réponse !!!Ju.
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