Re: [prog] test d'égalité

2007-09-03 Par sujet Francois Gatto
Bonsoir,

Bernard Siaud alias Troumad a écrit :
> Laurent Godard a écrit :
>> Bonjour Bernard
>>
>>> Florent Manens a écrit :
>> Florent t'a probablement donné la reponse
>> il nous faudrait le code de la fonction maj()
> Function maj(l1 as String) as String
> if l1="" then  rem si l est vide, il faut le traiter
> avant sous peine d'erreur
>  maj=""
> else
>  if Asc(l1)>Asc("Z") then  rem si le code ascii de l est
> suppérieur à celui de Z comme les minuscules
>   l1=Chr$(Asc(l1)-Asc("a")+Asc("A"))  rem conversion minuscule -> MAJUSCULE

On peut convertir simplement par : chr(asc(l1)-32)


>  endif
>  if Asc(l1)>Asc("Z") then  rem si la consersion a ratée ou si le
> code ASCII de l était déjà plus petit que A
>   maj="0"
>  elseif Asc(l1)   maj="0"   rem on met le code d'erreur dans maj
> pour le retour
>  else
>   maj=l1 rem l étant une majuscule, on le
> met dans maj pour le retour
>  endif
> endif
> end Function
> 
> J'ai mis et là, je perds la variable l dans *if l2<>maj(l) then* !
> 
> Function maj(l as String) as String
> dim l1 as string
> l=l1
> if l1="" then  rem si l est vide, il faut le traiter
> avant sous peine d'erreur
>  maj=""
> else
>  if Asc(l1)>Asc("Z") then  rem si le code ascii de l est
> suppérieur à celui de Z comme les minuscules
>   l1=Chr$(Asc(l1)-Asc("a")+Asc("A"))  rem conversion minuscule -> MAJUSCULE
>  endif
>  if Asc(l1)>Asc("Z") then  rem si la consersion a ratée ou si le
> code ASCII de l était déjà plus petit que A
>   maj="0"
>  elseif Asc(l1)   maj="0"   rem on met le code d'erreur dans maj
> pour le retour
>  else
>   maj=l1 rem l étant une majuscule, on le
> met dans maj pour le retour
>  endif
> endif
> end Function
>> si tu modifies c dans cette fonction, alors ton probleme est là
>> deux solutions
>>
>> - Function maj(byval c) - bofbof beurk
>> - ne pas utiliser c comme variable de travail dans maj
>>
>> Laurent
>>
> 
> 

Francois Gatto

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Bernard Siaud alias Troumad

Laurent Godard a écrit :

Bonjour Bernard


Florent Manens a écrit :

Florent t'a probablement donné la reponse
il nous faudrait le code de la fonction maj()

Function maj(l1 as String) as String
if l1="" then  rem si l est vide, il faut le 
traiter avant sous peine d'erreur

 maj=""
else
 if Asc(l1)>Asc("Z") then  rem si le code ascii de l est 
suppérieur à celui de Z comme les minuscules

  l1=Chr$(Asc(l1)-Asc("a")+Asc("A"))  rem conversion minuscule -> MAJUSCULE
 endif
 if Asc(l1)>Asc("Z") then  rem si la consersion a ratée ou si 
le code ASCII de l était déjà plus petit que A

  maj="0"
 elseif Asc(l1)  maj="0"   rem on met le code d'erreur dans 
maj pour le retour

 else
  maj=l1 rem l étant une majuscule, on le 
met dans maj pour le retour

 endif
endif
end Function

J'ai mis et là, je perds la variable l dans *if l2<>maj(l) then* !

Function maj(l as String) as String
dim l1 as string
l=l1
if l1="" then  rem si l est vide, il faut le 
traiter avant sous peine d'erreur

 maj=""
else
 if Asc(l1)>Asc("Z") then  rem si le code ascii de l est 
suppérieur à celui de Z comme les minuscules

  l1=Chr$(Asc(l1)-Asc("a")+Asc("A"))  rem conversion minuscule -> MAJUSCULE
 endif
 if Asc(l1)>Asc("Z") then  rem si la consersion a ratée ou si 
le code ASCII de l était déjà plus petit que A

  maj="0"
 elseif Asc(l1)  maj="0"   rem on met le code d'erreur dans 
maj pour le retour

 else
  maj=l1 rem l étant une majuscule, on le 
met dans maj pour le retour

 endif
endif
end Function

si tu modifies c dans cette fonction, alors ton probleme est là
deux solutions

- Function maj(byval c) - bofbof beurk
- ne pas utiliser c comme variable de travail dans maj

Laurent




--
Amicalement vOOotre, Troumad Alias Bernard SIAUD, http://troumad.org
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.openoffice.org

Adresse electronique speciale liste

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Bernard Siaud alias Troumad

Florent Manens a écrit :

par défaut en Basic, les variables sont passées par référence. Assures-toi que le parametre 
"c" n'est pas modifié dans la fonction "maj".
  

J'avais le même problème avec un
if l=maj(l) then

Pour passer en majuscule, il existe UCase.
  
Ça simplifierait le problème, mais je ne suis pas sûr du message de 
sortie si la lettre d'entrée n'est ni une minuscule simple, ni une 
majuscule simple. Cas que je repère en mettant un "0" en sortie.

--
Amicalement vOOotre, Troumad Alias Bernard SIAUD, http://troumad.org
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.openoffice.org

Adresse electronique speciale liste

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Laurent Godard

Bonjour Bernard


Florent Manens a écrit :


Florent t'a probablement donné la reponse
il nous faudrait le code de la fonction maj()

si tu modifies c dans cette fonction, alors ton probleme est là
deux solutions

- Function maj(byval c) - bofbof beurk
- ne pas utiliser c comme variable de travail dans maj

Laurent

--
Laurent Godard <[EMAIL PROTECTED]> - Ingénierie OpenOffice.org - 
http://www.indesko.com
Nuxeo Enterprise Content Management >> http://www.nuxeo.com - 
http://www.nuxeo.org

Livre "Programmation OpenOffice.org", Eyrolles 2004-2006

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Bernard Siaud alias Troumad

Florent Manens a écrit :

Bonjour,

- "Bernard Siaud alias Troumad" <[EMAIL PROTECTED]> a écrit:
  

Serge LE LOUARNE a écrit :


Bernard Siaud alias Troumad a écrit :
  

Bonjour

J'ai un problème avec le test d'égalité
if (c=maj(c)) m'affecte maj(c) dans c ! Est-ce normal ?


Bonjour,

En quel langage ?
  

Basic



par défaut en Basic, les variables sont passées par référence. Assures-toi que le parametre 
"c" n'est pas modifié dans la fonction "maj".

Pour passer en majuscule, il existe UCase.

Cordialement,

  

Partie du code incriminée (c'est même plus grave que mes souvenirs...)

sub diminue_lettre(c as string) rem décrémente le compteur de lettres 
restantes

dim Grille as object
dim c1 as string

Grille=ThisComponent.Sheets.getByName("Grille")
c1=c
if maj(c)=c then
 
Grille.getCellByPosition(20,ASC(c)-ASC("A")+1).value=Grille.getCellByPosition(20,ASC(c)-ASC("A")+1).value-1

else
 
Grille.getCellByPosition(20,27).value=Grille.getCellByPosition(20,27).value-1

endif
end sub

Dans mon fichier http://troumad.info/Linux/scrabble.zip
nb : pour que ça marche, j'ai changer le * if maj(c)=c then* car il 
remplaçait le c par la sortie de maj(c) :(

J'ai mis  *if maj(c)=c1 then* => seul intérêt de ce c1 !
--
Amicalement vOOotre, Troumad Alias Bernard SIAUD, http://troumad.org
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.openoffice.org

Adresse electronique speciale liste

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Florent Manens

Bonjour,

- "Bernard Siaud alias Troumad" <[EMAIL PROTECTED]> a écrit:
> Serge LE LOUARNE a écrit :
> > Bernard Siaud alias Troumad a écrit :
> >> Bonjour
> >>
> >> J'ai un problème avec le test d'égalité
> >> if (c=maj(c)) m'affecte maj(c) dans c ! Est-ce normal ?
> > Bonjour,
> >
> > En quel langage ?
> Basic

par défaut en Basic, les variables sont passées par référence. Assures-toi que 
le parametre "c" n'est pas modifié dans la fonction "maj".

Pour passer en majuscule, il existe UCase.

Cordialement,

-- 
Florent Manens
[EMAIL PROTECTED]
http://www.starxpert.fr

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet steve

Bernard Siaud alias Troumad a écrit :

Serge LE LOUARNE a écrit :

Bernard Siaud alias Troumad a écrit :

Bonjour

J'ai un problème avec le test d'égalité
if (c=maj(c)) m'affecte maj(c) dans c ! Est-ce normal ?


Peut être l'absence de then derrière if (c=maj(c)) produis le résultat 
dont tu parles . Mais est-il nécessaire que tu mettes le  c=maj(c) entre 
parenthèse?
Ce qui me semble un peu étrange c'est que le if du début de la ligne 
semble ignoré si l'affectation dont tu parles a eu lieu

Bonjour,

En quel langage ?

A+ 

Basic




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Laurent Godard

Bonjour Bernard


J'ai un problème avec le test d'égalité
if (c=maj(c)) m'affecte maj(c) dans c ! Est-ce normal ?


Non


Basic



encore moins

Copie nous le bout de code qui fait ceci s'il te plait

Laurent

--
Laurent Godard <[EMAIL PROTECTED]> - Ingénierie OpenOffice.org - 
http://www.indesko.com
Nuxeo Enterprise Content Management >> http://www.nuxeo.com - 
http://www.nuxeo.org

Livre "Programmation OpenOffice.org", Eyrolles 2004-2006

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Bernard Siaud alias Troumad

Serge LE LOUARNE a écrit :

Bernard Siaud alias Troumad a écrit :

Bonjour

J'ai un problème avec le test d'égalité
if (c=maj(c)) m'affecte maj(c) dans c ! Est-ce normal ?

Bonjour,

En quel langage ?

A+ 

Basic

--
Amicalement vOOotre, Troumad Alias Bernard SIAUD, http://troumad.org
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.openoffice.org

Adresse electronique speciale liste

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] test d'égalité

2007-09-03 Par sujet Serge LE LOUARNE

Bernard Siaud alias Troumad a écrit :

Bonjour

J'ai un problème avec le test d'égalité
if (c=maj(c)) m'affecte maj(c) dans c ! Est-ce normal ?

Bonjour,

En quel langage ?

A+

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[prog] test d'égalité

2007-09-03 Par sujet Bernard Siaud alias Troumad

Bonjour

J'ai un problème avec le test d'égalité
if (c=maj(c)) m'affecte maj(c) dans c ! Est-ce normal ?
--
Amicalement vOOotre, Troumad Alias Bernard SIAUD, http://troumad.org
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.openoffice.org

Adresse electronique speciale liste

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]