Chaînes de carctères...

Voir le sujet précédent Voir le sujet suivant Aller en bas

Chaînes de carctères...

Message  Alphonse Capriani le Mar 26 Mai - 11:53

Bonjour bonjour!!!

Je voudrais juste quelques précisions au sujet des chaînes de caractères dans TeXgraph.

Ca fait déjà pas mal de temps que j'utilise TeXgraph, mais je dois avouer que je ne maitrise toujours pas la manipulation des chaînes de caractère.
Par exemple, y a t-il moyen d'affecter une chaîne de caractère à une variable (par exemple $ch:="BigCap"). Si je ne me trompe pas, ca ne marche pas comme ca. Il faut passer par la macro chaine(), non?
Tu pourrais donner des précisions à ce sujet Patrick? (Je me souviens pas que le sujet ait été abordé auparavant : si c'est le cas, un lien vers le sujet en question fera l'affaire!!)

Autre question liée au chaine de carctères. Y a t-il moyen sous TeXgraph de générer des variables en boucle (Wow quel clarté!!! Rolling Eyes ) Bon : je décrypte ma question par un exemple.
Est-il possible par exemple de définir des variables M1, M2, ..., Mn par l'intermédiaire d'une boucle sans avoir à se taper la définition une par une des n variables. Autrement dit, au lieu de taper ceci :
Code:
$M1:=1,
$M2:=2,
$M3:=3,
$M4:=4,

< .../... >

$M129:=129
on pourrait taper un truc du genre :
Code:
for $k from 1 to 129 do
   $M.k:=k
od
J'avais essayer il y a quelques temps la syntaxe suivante mais sans résultats :
Code:
for $k from 1 to 129 do
   ["M", k]:=k
od
En gros, j'avais supposé que les noms de variables était des chaines de caractères et donc je concaténais le nom de la variable avec un numéro. Il est possible que je n'arrive pas a faire ce genre de truc car justement je ne sais pas bien manipuler les chaînes de caractères.

(Je me sens un peu idiot de poser des questions aussi basiques!!! Embarassed J'espère que les réponses à mes questions seront plus compliquées que je ne le pense : j'aurais l'air un peu moins con!!! Laughing )

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Mar 26 Mai - 15:54

Bonjour Alphonse,

Grande question que les chaines de caractères dans TeXgraph!

Pour la première question:
L'affection := est en fait un raccourci pour la commande Set( variable, valeur), et l'évaluation de la valeur est uniquement numérique, donc pas moyen de stocker une chaine par ce biais. En fait il est possible de créer des variables de type chaine en utilisant une macro, depuis la version 1.94 j'ai ajouté une commande qui fait ce travail:
SetStr(nom, expression [, evaluer])

cette macro définit la macro appelée nom et dont la commande est définie par l'expression, cela permet de stocker une chaine, si evaluer vaut 1 (valeur par défaut), l'expression est évaluée sous forme de chaine, sinon elle est recopiée telle quelle dans la macro.

Exemples:
SetStr(x, pi) va créer une macro appelée x et contenant la chaine "3.14159265358979",

SetStr(x, "pi") va créer une macro appelée x et contenant la chaine "pi"

SetStr(x, pi,0) va créer une macro appelée x et contenant l'expression pi

Remarque: le nom de la variable peut être aussi sous la forme: ["x", k], ce qui donnera le nom x1 pour k=1, etc

Voilà pour la création d'une variable chaine (=macro). Comment utiliser une telle variable? Deux moyens:

1) Avec la commande GetStr( nom ) qui va "évaluer" la macro nom sous forme de chaine de caractères et renvoyer son résultat (cette évaluation n'est donc pas uniquement numérique)
2) Avec l'opérateur @ qui est un raccourci, par exemple on peut écrire @x à la place de GetStr(x).

Remarque: une variable chaine étant une macro, elle peut avoir des arguments, essayer par exemple la commande suivante:
[SetStr( test, ["bonjour mon ami ",%1],0), Message( @test( "Alphonse")) ]

Deuxième question: création automatique de variables indexées.

Tu es tout proche de la solution, c'est facile avec la commande DefVar qui crée des variables globales:

Code:

for k from 1 to 129 do DefVar( ["M",k], k) od

Malheureusement on ne peut pas le faire aussi simplement pour des variables locales car la commende Set n'accepte pas la syntaxe ["M",k] comme nom (c'est une lacune, je vais voir si on peut arranger cela). Sinon on peut faire par exemple:

Code:

for k from 1 to 129 do Eval( ["x",k, ":=", k]) od,
k:=Rand(139), Message( Eval([ "x", k+1] ))

La commande Eval est bien pratique, elle permet d'évaluer une expression sous forme de chaine puis évalue cette chaine comme si c'était une instruction TeXgraph, et renvoie le résultat (numérique).

Ps: les chaines ne sont donc pas si simples...

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Mar 26 Mai - 17:46

Et oui Patrick!!! Ce n'est pas si simple que ca (Ooouf! Wink )

En tout cas, merci pour toutes ces précisions. J'y vois bien plus clair à présent...

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Mer 27 Mai - 10:19

J'ai testé ces manipulations de chaînes de caractères : ca marche, mais y a un truc qui ne fonctionne pas, et je ne sais pas d'où vient le problème.
Le problème intervient lorsque je veux afficher un label Label(1+i, GetStr(label)) ou label est ma "macro-chaine". Quand je fais ca, rien ne s'affiche!!!

Comment ca se fait?
Tiens? C'est curieux!!! Je viens de réessayer sur un autre ordi et là ca marche!!! Je comprends pas!!!

Sinon, j'ai un autre problème (problème de codage de fontes) : les caractères é, è, ou tout autre symbole "exotique" (notament les lettres accentuées) sont remplacées par des "?". Comment je fais pour corriger le tir?

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Mer 27 Mai - 10:27

Salut Alphonse,

C'est curieux, chez moi ce code:

Code:

[
SetStr(label, "Alphonse"),
Label(1+i, GetStr(label))


fonctionne parfaitement.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Mer 27 Mai - 11:17

Oooops! Je pense que j'ai édité mon précédent message quand tu répondais!!

J'ai réessayé sur une autre machine et là, pas de problème! Je vais réessayer chez moi pour voir ce qui cloche.

Concernant le problème de fontes, T'as une solution?

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Mer 27 Mai - 12:37

Alphonse Capriani a écrit:
Sinon, j'ai un autre problème (problème de codage de fontes) : les caractères é, è, ou tout autre symbole "exotique" (notament les lettres accentuées) sont remplacées par des "?". Comment je fais pour corriger le tir?

C'est trop vague. Où sont-ils remplacès par des "?", dans l'interface graphique?, dans les fichiers exportés? dans l'aperçu?

N'oublie pas que depuis la version 1.94, TeXgraph travaille en utf8, TeXmaker gère parfaitement cela (il faut paramètrer TeXmaker pour ça), Notepad++ le gère aussi et permet le transcodage.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Mer 27 Mai - 13:57

Ooops! Désolé pour ce manque de précision. Rolling Eyes

En fait c'est dans TeXgraph que j'ai ce souci.
En fait, je suis en train de finir les modifications de PolyedresII.mac. J'ai pensé qu'une macro PolyNames(<Type>, <Numero>) permettant de renvoyer le nom du polyèdre en question pour , par exemple, être ensuite utilisé avec la commande Label, pourrait être utiles. Le problème, c'est que les accents présent dans le fichier *.mac ne passent pas sous texgraph (j'ai pas essayé après export, mais ca doit pa marcher!)

Tu vois ce que je veux dire?

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Mer 27 Mai - 14:05

Alphonse Capriani a écrit: Le problème, c'est que les accents présent dans le fichier *.mac ne passent pas sous texgraph

Parce que ton fichier n'est pas en utf8, tout smplement. Demande à ton éditeur de textes de l'enregistrer en utf8 et le problème sera résolu.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Mer 27 Mai - 14:32

C'est bizarre parce que j'ai fais la manip et ca n'a pas marché...

Il suffit simplement de changer l'encodage du document en cours et de l'enregistrer comme ca, non?

Bon! Je réessaie ce soir et si ca marche pas, je passe à Asymptote!!! Non je rigole... Laughing

(Au fait? T'as pas des nouvelles de Samuel? Ca fait une éternité qu'on a aucune nouvelles. Pour lui, on est en droit de se demander s'il n'est vraiment pas passer à Asymptote!!! Smile )

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Mer 27 Mai - 14:40

Alphonse Capriani a écrit:
Il suffit simplement de changer l'encodage du document en cours et de l'enregistrer comme ca, non?

Tu utilises quoi?


Au fait? T'as pas des nouvelles de Samuel? Ca fait une éternité qu'on a aucune nouvelles.

J'ai eu un message il y a quelques semaines, il m'a dit qu'il vient de temps en temps sur le forum, mais ce doit être en anonyme je pense, car sa dernière connexion date du 1er février.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Mer 27 Mai - 14:50

P.Fradin a écrit:Tu utilises quoi?
Notepad++.
P.Fradin a écrit:J'ai eu un message il y a quelques semaines, il m'a dit qu'il vient de temps en temps sur le forum, mais ce doit être en anonyme je pense, car sa dernière connexion date du 1er février.
Ouais! Tous le monde est overbooké ces dernier temps!!

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Mer 27 Mai - 16:19

Alphonse Capriani a écrit:
Notepad++.

Bon, ben menu Format/Convertir en utf8 suivi d'enregistrer devrait le faire non?

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Mer 27 Mai - 16:32

Ben c'est exactement ce que j'ai fait hier soir, mais sans succès!!!

Je suis pas à l'abri d'avoir fait une fausse manip, donc je vais réitérer la procédure ce soir : je te tiens au courant demain...

Sinon, j'arrive à la fin de mes modifs concernant PolyedresII.mac. Je vais essayer de poster la nouvelle version la semaine prochaine...

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Jeu 28 Mai - 19:58

Alphonse Capriani a écrit:Ben c'est exactement ce que j'ai fait hier soir, mais sans succès!!!

Je suis pas à l'abri d'avoir fait une fausse manip, donc je vais réitérer la procédure ce soir : je te tiens au courant demain...

Il me semble que "demain" c'est aujourd'hui, alors??

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Ven 29 Mai - 10:39

Ouais! Je crois même que demain, c'était hier Rolling Eyes

En fait j'ai refait le test hier soir et j'ai toujours un souci! J'ai fais quelques copie d'écran pour expliquer ce qu'il se passe.

Quand je passe en format UTF8, les caractères accentués sont remplacés par des rectangles noirs numérotés E8, E9, ...


Et quand je charge le fichier en question (fichier de macros), j'ai ce message :


J'ai aussi remarqué il y a quelque temps (peut être quand tu es passé au format UTF8) que les fichiers de macros sous TeXgraph n'était plus fais de la même manière.
Avant, on avait des déclaration du type :
Code:
16#MaMacro#{Hé hé...}
[
bla bla bla bla
]##
et maintenant, on a un fichier du genre :
Code:
Mac
MaMacro={hé hé}
[
bla bla bla bla
];
Pourquoi un tel changement? Mon problème vient de là?

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  P.Fradin le Ven 29 Mai - 10:47

Alphonse Capriani a écrit:
Quand je passe en format UTF8, les caractères accentués sont remplacés par des rectangles noirs numérotés E8, E9, ...

Ce n'est pas normal. Mais là ça ne vient pas de TeXgraph Laughing


Et quand je charge le fichier en question (fichier de macros), j'ai ce message :


Là c'est normal, TeXgraph lit en utf8.


J'ai aussi remarqué il y a quelque temps (peut être quand tu es passé au format UTF8) que les fichiers de macros sous TeXgraph n'était plus fais de la même manière.
Avant, on avait des déclaration du type :
Code:
16#MaMacro#{Hé hé...}
[
bla bla bla bla
]##
et maintenant, on a un fichier du genre :
Code:
Mac
MaMacro={hé hé}
[
bla bla bla bla
];
Pourquoi un tel changement? Mon problème vient de là?

Les deux formats sont valables, cela date de la première version 1.94! Le deuxième format est le futur format source, bien plus lisible.

Envoie-moi le fichier qui pose problème.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Alphonse Capriani le Ven 29 Mai - 13:59

Je l'ai pas sous la main.

Je poste ca la semaine prochaine (mardi au plus tot)

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Chaînes de carctères...

Message  Contenu sponsorisé Aujourd'hui à 11:51


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum