Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Lire et ecrire dans un fichier

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Autres questions
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
trivecteur



Inscrit le: 02 Oct 2006
Messages: 8

MessagePosté le: 23 Mar 2007 15:36    Sujet du message: Lire et ecrire dans un fichier Répondre en citant

Bonjour,

J'ai besoin de faire le produit de deux entiers de 100.000 chiffres décimaux chacun. Bien sûr, ça ne passe pas dans le GUI de Maple.

Quelqu'un qui aurait déjà fait de la lecture/écriture dans un fichier pourrait me dire comment on fait ça ?
D'après l'aide de Maple, je suppose qu'il faut faire un fopen des fichiers qui contiennent les facteurs, faire un fscanf avec le format %d et écrire le résultat dans un fichier avec un pfrintf, bon mais j'aimerais quelque chose de plus précis ?


Un grand merci à celui qui me donnera une réponse et m'aura fait ainsi gagner beaucoup de temps.


Trivecteur
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 23 Mar 2007 18:52    Sujet du message: Répondre en citant

Bonjour, voyez du côté du package FileTools qui contient bon nombre d'outils pour lire et écrire dans des fichiers.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
trivecteur



Inscrit le: 02 Oct 2006
Messages: 8

MessagePosté le: 24 Mar 2007 10:29    Sujet du message: L'aide de Maple est nulle Répondre en citant

Bon, je donne la méthode par laquelle j'y suis parvenu, peut-être que ça aidera quelqu'un qui lirait les archives du forum, je me souviens d'avoir galéré à comprendre comment marchait l'écriture dans un fichier sous Maple.

Le but était donc le suivant : lire des données numériques dans un ou plusieurs fichiers texte, faire traiter les données par Maple et éventuellement, renvoyer le(s) résultat(s) du traitement dans un fichier texte.

Dans mon cas, multiplier deux grands nombres placés resp. dans les fichiers facteur1.txt et facteur2.txt placés dans le répertoire E:/toto (je suis sous Windows). Voici ce que ça donne :

>restart;
> a:=readdata("E:\\toto\\facteur1.txt",integer,1):
> b:=readdata("E:\\toto\\facteur2.txt",integer,1):
> sortie := fopen("E:\\toto\\produit.txt",WRITE,TEXT):
> fprintf(sortie,%d,a[1]*b[1]):
> fclose(sortie):



Quelques sommaires explications mais certainement plus claires que la bouillie que propose l'aide (?!) de Maple qui est d'une nullité totale (malgré tout ce qu'on en dit).

Pour lire les données numériques, on utilise la commande readdata qui va lire dans un fichier dont l'adresse est donnée en argument et qui va retourner un tableau au sens de Maple, ce qui permet d'accéder aux données et de les faire traiter par Maple.

Pour écrire des données dans un fichier (ce qui peut être fait independamment de la lecture dans un fichier) , le principe est le suivant :

1) on ouvre le fichier avec la commande fopen qui prend entre autres pour argument l'adresse du fichier (ci-dessus c'est E:/toto/produit.txt). L'ouverture est transparente pour l'utilisateur, ça n'ouvre pas son éditeur de textes ! l'ouverture est une opération interne a Maple.
2) Pour écrire dans le fichier ouvert au 1), on utilise la commande fprintf dont la syntaxe est vraiment merdique (il faut donner un format en argument, genre %d pour indiquer un nombre à écrire en décimal), si on a déjà fait des entrées-sorties en C, ça aide, en particulier pour les chaînes de caractères, les caractères d'échappement (les doubles slash dans les adresses de l'exemple ci-dessus) etc.
3) on fait fermer le fichier par Maple avec la commande fclose.

Sinon, Maple sait multiplier instantanément deux entiers de 100.000 chiffres chacun, c'est déjà ça.

Trivecteur
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
trivecteur



Inscrit le: 02 Oct 2006
Messages: 8

MessagePosté le: 04 Avr 2007 19:46    Sujet du message: Re: L'aide de Maple est nulle Répondre en citant

trivecteur a écrit:

> a:=readdata("E:\\toto\\facteur1.txt",integer,1):
> b:=readdata("E:\\toto\\facteur2.txt",integer,1):
> sortie := fopen("E:\\toto\\produit.txt",WRITE,TEXT):


Puisque je suis encore sur ces questions, je me rends compte qu'on n'est pas obligé de donner l'adresse complète du fichier à lire (ou écrire), il suffit si le fichier est dans le même répertoire que le fichier Maple courant, de donner le nom du fichier sans préciser son adresse complète, ainsi ci-dessus, ça donnerait :

> a:=readdata("facteur1.txt",integer,1):

Trivecteur
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Autres questions Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.