Lecture des données (version 1.66 et version 1.94)

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
DGH
Messages : 11
Enregistré le : mer. 28 avr. 2010, 14:24

Lecture des données (version 1.66 et version 1.94)

Message non lu par DGH » mar. 11 mai 2010, 20:35

Bonsoir,

Ma question concerne la lecture des données. J'ai mes données sont sont stockées dans un fichier nommé : "MesDonnees.dat"
    1 5
    2 11
    3 7
    4 5
    7 9

Code : Tout sélectionner

// pour la lecture
file fichD=line(input("MesDonnees.dat"));
int[][] a=dimension(fichD,0,0);
a=transpose(a);
int[] X=a[0] , Y =a[1];


Avec la version 1.66 le code fonctionne alors qu'avec la version 1.94, j'ai le message d'erreur :
variable line n'est pas définie . J'ai besoin de quelqu'un (qui a la version 1.94) de tester pour voir s'il a le même problème que moi.

Merci
D.GH

OG
V.I.P.
V.I.P.
Messages : 142
Enregistré le : dim. 7 mars 2010, 22:27

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par OG » mar. 11 mai 2010, 20:59

Bonsoir

Il y a certainement eu du changement. Je suis allé lire un peu la doc (si si c'est possible)
Voici un code qui marche (j'espère)

Code : Tout sélectionner

// pour la lecture
file fichD=input("MesDonnees.dat");
int[][] a=fichD.dimension(0,2);
a=transpose(a);
int[] X=a[0] , Y =a[1];
write (X,Y);


Cordialement
O.G.

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1474
Enregistré le : dim. 7 mars 2010, 14:50

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par GM » mar. 11 mai 2010, 21:12

Réponse rapide (sans avoir pris le temps de tester l'exemple proposé) ... uniquement pour dire que je me suis aperçu récemment qu'il y a des

Code : Tout sélectionner

line(input(...))
à remplacer par

Code : Tout sélectionner

input(...).line()
.
Je m'en suis aperçu pour les exemples suivants mais je n'ai pas encore pris le temps de voir si les exemples de cette galerie étaient à réactualiser. Je le ferai quand je trouverai un peu de temps.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.69)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

DGH
Messages : 11
Enregistré le : mer. 28 avr. 2010, 14:24

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par DGH » mer. 12 mai 2010, 11:27

Merci pour la réponse. Avec la version 1.94, le code suivant fonctionne.

Code : Tout sélectionner

file fichD=input("MesDonnees.dat").line();
int[][] a=fichD.dimension(0,0);
a=transpose(a);
int[] X=a[0] , Y =a[1];
write (X,Y);


Une question : Lors de la compilation est-il possible de récupérer la version d'Asymptote ? Quelque chose de type :

Code : Tout sélectionner

 si (version==1.66)
     file fichD=line(input("MesDonnees.dat"));
     sinon
       file fichD=input("MesDonnees.dat").line();

Merci
D.GH

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1474
Enregistré le : dim. 7 mars 2010, 14:50

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par GM » mer. 12 mai 2010, 11:55

DGH a écrit :Lors de la compilation est-il possible de récupérer la version d'Asymptote ?

Figure asymptote e110cb916b9f43c9ee22abd3c08a050b
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(200);
  2. draw((0,0){dir(-45)}..{dir(45)}(10,0),red);
  3. draw((5,1)--(5,3));
  4. dotfactor=10;
  5. dot((0,5));
  6. dot((10,5));
  7. label("Cr\'e\'e avec Asymptote "+version.VERSION,point(S),2S);
  8. shipout(bbox(5mm,gray));
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.69)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

DGH
Messages : 11
Enregistré le : mer. 28 avr. 2010, 14:24

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par DGH » mer. 12 mai 2010, 12:40

Merci Gaétan pour ce Joli dessin.

Toujours pour la lecture des données, comment lire un fichier de données qui est un mélange de réel , entier et string? Par exemple :

Jean 1.2 Paris 14000
Olivier 1.7 Rennes 12041
Ga\'etan 1.9 Strasbourg 21045
Alex 1.3 Lille 10047

Merci
Modifié en dernier par DGH le mer. 12 mai 2010, 13:13, modifié 1 fois.

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1474
Enregistré le : dim. 7 mars 2010, 14:50

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par GM » mer. 12 mai 2010, 12:46

C'est une bonne question... dont je n'ai pas encore la réponse du fait que je n'ai pas encore eu à l'utiliser mais je vais y réfléchir et faire des tests, ce soir... si personne ne donne une solution avant.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.69)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

OG
V.I.P.
V.I.P.
Messages : 142
Enregistré le : dim. 7 mars 2010, 22:27

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par OG » mer. 12 mai 2010, 15:24

DGH a écrit :Merci Gaétan pour ce Joli dessin.

Toujours pour la lecture des données, comment lire un fichier de données qui est un mélange de réel , entier et string? Par exemple :

Jean 1.2 Paris 14000
Olivier 1.7 Rennes 12041
Ga\'etan 1.9 Strasbourg 21045
Alex 1.3 Lille 10047

Merci


Cela te convient-il ?

Code : Tout sélectionner

file fichD=input("donnee.txt").line().word();
string[] nom, ville;
int [] distance;
real [] dreel;
while(true) {
  nom.push(fichD);
  dreel.push(fichD);
  ville.push(fichD);
  distance.push(fichD);
  if(eof(fichD)) break;
}

write(nom);
write(dreel);
write(ville);
write(distance);


Sinon il serait plus facile d'avoir les données par ligne. Tu lis la 1ère ligne : tableau de "string", etc

O.G.

DGH
Messages : 11
Enregistré le : mer. 28 avr. 2010, 14:24

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par DGH » mer. 12 mai 2010, 16:15

OG a écrit :Cela te convient-il ?
O.G.

Parfait

D.GH

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1474
Enregistré le : dim. 7 mars 2010, 14:50

Re: Lecture des données (version 1.66 et version 1.94)

Message non lu par GM » mer. 12 mai 2010, 23:59

Je ne comprends pas trop l'intérêt du while(true) puis du break.

Cela me semble plus simple ainsi :

Code : Tout sélectionner

file fichD=input("donnees.txt").line().word();
string[] nom, ville;
int [] distance;
real [] dreel;
while(eof(fichD)!=true) {
  nom.push(fichD);
  dreel.push(fichD);
  ville.push(fichD);
  distance.push(fichD);
}
write(nom);
write(dreel);
write(ville);
write(distance);
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.69)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Répondre