Bonsoir,
Quel est la manière de faire ou interpété le code qui est plus rapide sur
cet exemple ?
Si instruction Fin comme ci-dessous ou sur une seule ligne
SI ..... OU ..... OU ..... OU etc...... Alors
Info("4 caractères de suite pas autorisés")
RETOUR
Ou comme le code ici
BOUCLE
t=t+1
SI Lromain[[t A t+3]] = "MMMM" ALORS
Info("4 caractères de suite pas autorisés")
RETOUR
FIN
SI Lromain[[t A t+3]] = "CCCC" ALORS
Info("4 caractères de suite pas autorisés")
RETOUR
FIN
SI Lromain[[t A t+3]] = "XXXX" ALORS
Info("4 caractères de suite pas autorisés")
RETOUR
FIN
....
.....
.....
etc......
En passant je suis au final en train de tester le code Romain - Arabe :-)
--
Merci et bonnes salutations
Visitez www.saphirw.ch et donner vos impressions et idées
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal H
Le mer. 02 juil. 2003 19:15:16, dans le message news:bdv3vb$1046mo$, "R Vuille" a écrit :
Quel est la manière de faire ou interpété le code qui est plus rapide sur cet exemple ?
Bonsoir,
Pour ma part j'opterais pour l'utilisation de ChaineOccurrence() ou Position() et une addition des valeurs retournées par ces fonctions.
Ce qui donnerait un code du genre:
Si position(Lromain, "XXXX") + position(Lromain,"CCCC") ... + position(Lromain,"MMMM") (etc) > 0 alors // la condition n'est pas respectée Fin
Par contre en terme de performance je ne sais pas quel code sera interprété le plus rapidement :( En fait je pense que si ta chaîne est longue, la parcourir élément par élément n'est pas judicieux.
De plus quand tu écrits << SI Lromain[[t A t+3]] = "MMMM" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN
tu ne gères pas le cas des 3 derniers caractères de la chaîne (t+3 -> indice hors limite) ou d'une chaîne de 3 caractères.
-- Pascal Héraud
Le mer. 02 juil. 2003 19:15:16, dans le message
news:bdv3vb$1046mo$1@ID-144556.news.dfncis.de, "R Vuille"
<xrmvuille@freesurf.ch> a écrit :
Quel est la manière de faire ou interpété le code qui est plus
rapide sur cet exemple ?
Bonsoir,
Pour ma part j'opterais pour l'utilisation de ChaineOccurrence() ou
Position() et une addition des valeurs retournées par ces fonctions.
Ce qui donnerait un code du genre:
Si position(Lromain, "XXXX") + position(Lromain,"CCCC") ...
+ position(Lromain,"MMMM") (etc) > 0 alors
// la condition n'est pas respectée
Fin
Par contre en terme de performance je ne sais pas quel code sera
interprété le plus rapidement :(
En fait je pense que si ta chaîne est longue, la parcourir élément par
élément n'est pas judicieux.
De plus quand tu écrits
<<
SI Lromain[[t A t+3]] = "MMMM" ALORS
Info("4 caractères de suite pas autorisés")
RETOUR
FIN
tu ne gères pas le cas des 3 derniers caractères de la chaîne (t+3 ->
indice hors limite) ou d'une chaîne de 3 caractères.
Le mer. 02 juil. 2003 19:15:16, dans le message news:bdv3vb$1046mo$, "R Vuille" a écrit :
Quel est la manière de faire ou interpété le code qui est plus rapide sur cet exemple ?
Bonsoir,
Pour ma part j'opterais pour l'utilisation de ChaineOccurrence() ou Position() et une addition des valeurs retournées par ces fonctions.
Ce qui donnerait un code du genre:
Si position(Lromain, "XXXX") + position(Lromain,"CCCC") ... + position(Lromain,"MMMM") (etc) > 0 alors // la condition n'est pas respectée Fin
Par contre en terme de performance je ne sais pas quel code sera interprété le plus rapidement :( En fait je pense que si ta chaîne est longue, la parcourir élément par élément n'est pas judicieux.
De plus quand tu écrits << SI Lromain[[t A t+3]] = "MMMM" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN
tu ne gères pas le cas des 3 derniers caractères de la chaîne (t+3 -> indice hors limite) ou d'une chaîne de 3 caractères.
-- Pascal Héraud
R Vuille
Bonsoir Non je ne gère pas car autorisé MMMCCCXXXIII c'est autorisé
Le programme est téléchargeable sur mon site :-) Pour un débutant avec 1 vingtaine d'heures en Windev ! Quelque adaptations de confort et des messages d'erreurs + éventullement une aide "explication" du système romain viendront pour la prochaine mouture........... J'aimerais un commentaire
www.rmvuille.ch bouton ENTREE ensuite dans le menu Windev !
-- Merci et bonnes salutations Visitez www.saphirw.ch et donner vos impressions et idées "Pascal H" a écrit dans le message de news:
Le mer. 02 juil. 2003 19:15:16, dans le message news:bdv3vb$1046mo$, "R Vuille" a écrit :
> Quel est la manière de faire ou interpété le code qui est plus > rapide sur cet exemple ? >
Bonsoir,
Pour ma part j'opterais pour l'utilisation de ChaineOccurrence() ou Position() et une addition des valeurs retournées par ces fonctions.
Bonsoir
Non je ne gère pas car autorisé
MMMCCCXXXIII c'est autorisé
Le programme est téléchargeable sur mon site :-)
Pour un débutant avec 1 vingtaine d'heures en Windev ! Quelque adaptations
de confort et des messages d'erreurs + éventullement une aide "explication"
du système romain viendront pour la prochaine mouture...........
J'aimerais un commentaire
www.rmvuille.ch bouton ENTREE ensuite dans le menu Windev !
--
Merci et bonnes salutations
Visitez www.saphirw.ch et donner vos impressions et idées
"Pascal H" <pascal@alussinan.org> a écrit dans le message de
news:XnF93ACD5DBCCEA8PHFree@213.228.0.75...
Le mer. 02 juil. 2003 19:15:16, dans le message
news:bdv3vb$1046mo$1@ID-144556.news.dfncis.de, "R Vuille"
<xrmvuille@freesurf.ch> a écrit :
> Quel est la manière de faire ou interpété le code qui est plus
> rapide sur cet exemple ?
>
Bonsoir,
Pour ma part j'opterais pour l'utilisation de ChaineOccurrence() ou
Position() et une addition des valeurs retournées par ces fonctions.
Bonsoir Non je ne gère pas car autorisé MMMCCCXXXIII c'est autorisé
Le programme est téléchargeable sur mon site :-) Pour un débutant avec 1 vingtaine d'heures en Windev ! Quelque adaptations de confort et des messages d'erreurs + éventullement une aide "explication" du système romain viendront pour la prochaine mouture........... J'aimerais un commentaire
www.rmvuille.ch bouton ENTREE ensuite dans le menu Windev !
-- Merci et bonnes salutations Visitez www.saphirw.ch et donner vos impressions et idées "Pascal H" a écrit dans le message de news:
Le mer. 02 juil. 2003 19:15:16, dans le message news:bdv3vb$1046mo$, "R Vuille" a écrit :
> Quel est la manière de faire ou interpété le code qui est plus > rapide sur cet exemple ? >
Bonsoir,
Pour ma part j'opterais pour l'utilisation de ChaineOccurrence() ou Position() et une addition des valeurs retournées par ces fonctions.
Fabrice Burghgraeve
bonjour.
"R Vuille" a écrit dans le message de news:bdv3vb$1046mo$
Bonsoir, Quel est la manière de faire ou interpété le code qui est plus rapide sur cet exemple ?
Si instruction Fin comme ci-dessous ou sur une seule ligne
SI ..... OU ..... OU ..... OU etc...... Alors Info("4 caractères de suite pas autorisés") RETOUR
Ou comme le code ici
Il me semble que windev n'est pas bien optimise pour cela, et qu'il va evaluer toutes les conditions du OU, meme si la premiere est vraie.
Donc le deuxieme code serait plus rapide. Cela dit, les codes reviennent aux meme dans le cas ou toutes les conditions sont fausses c'est a dire si il n'y a pas d'erreur de saisie et comme en cas d'erreur, il y a un "info" qui va bloquer le programme.....
Je dirais que les deux se valent dans ce cas particulier, mais dans un cas plus general, la deuxieme forme d'ecriture est meilleure en terme de performance...
Mais le mieux pour ce cas la, c'est encore l'ecriture de Pascal avec les "position" plutot que les boucles : plus court et plus lisible.
BOUCLE t=t+1 SI Lromain[[t A t+3]] = "MMMM" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN SI Lromain[[t A t+3]] = "CCCC" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN SI Lromain[[t A t+3]] = "XXXX" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN ....
(...)
-- Fabrice Burghgraeve Computer & Services
(enlevez le _pas_de_spam_ pour me répondre en privé)
bonjour.
"R Vuille" <xrmvuille@freesurf.ch> a écrit dans le message de
news:bdv3vb$1046mo$1@ID-144556.news.dfncis.de...
Bonsoir,
Quel est la manière de faire ou interpété le code qui est plus rapide sur
cet exemple ?
Si instruction Fin comme ci-dessous ou sur une seule ligne
SI ..... OU ..... OU ..... OU etc...... Alors
Info("4 caractères de suite pas autorisés")
RETOUR
Ou comme le code ici
Il me semble que windev n'est pas bien optimise pour cela, et qu'il va
evaluer toutes les conditions du OU, meme si la premiere est vraie.
Donc le deuxieme code serait plus rapide.
Cela dit, les codes reviennent aux meme dans le cas ou toutes les conditions
sont fausses
c'est a dire si il n'y a pas d'erreur de saisie
et comme en cas d'erreur, il y a un "info" qui va bloquer le programme.....
Je dirais que les deux se valent dans ce cas particulier, mais dans un cas
plus general, la deuxieme forme d'ecriture est meilleure en terme de
performance...
Mais le mieux pour ce cas la, c'est encore l'ecriture de Pascal avec les
"position" plutot que les boucles : plus court et plus lisible.
BOUCLE
t=t+1
SI Lromain[[t A t+3]] = "MMMM" ALORS
Info("4 caractères de suite pas autorisés")
RETOUR
FIN
SI Lromain[[t A t+3]] = "CCCC" ALORS
Info("4 caractères de suite pas autorisés")
RETOUR
FIN
SI Lromain[[t A t+3]] = "XXXX" ALORS
Info("4 caractères de suite pas autorisés")
RETOUR
FIN
....
(...)
--
Fabrice Burghgraeve
Computer & Services
f_pas_de_spam_burghgraeve@computeretservices.com
(enlevez le _pas_de_spam_ pour me répondre en privé)
"R Vuille" a écrit dans le message de news:bdv3vb$1046mo$
Bonsoir, Quel est la manière de faire ou interpété le code qui est plus rapide sur cet exemple ?
Si instruction Fin comme ci-dessous ou sur une seule ligne
SI ..... OU ..... OU ..... OU etc...... Alors Info("4 caractères de suite pas autorisés") RETOUR
Ou comme le code ici
Il me semble que windev n'est pas bien optimise pour cela, et qu'il va evaluer toutes les conditions du OU, meme si la premiere est vraie.
Donc le deuxieme code serait plus rapide. Cela dit, les codes reviennent aux meme dans le cas ou toutes les conditions sont fausses c'est a dire si il n'y a pas d'erreur de saisie et comme en cas d'erreur, il y a un "info" qui va bloquer le programme.....
Je dirais que les deux se valent dans ce cas particulier, mais dans un cas plus general, la deuxieme forme d'ecriture est meilleure en terme de performance...
Mais le mieux pour ce cas la, c'est encore l'ecriture de Pascal avec les "position" plutot que les boucles : plus court et plus lisible.
BOUCLE t=t+1 SI Lromain[[t A t+3]] = "MMMM" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN SI Lromain[[t A t+3]] = "CCCC" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN SI Lromain[[t A t+3]] = "XXXX" ALORS Info("4 caractères de suite pas autorisés") RETOUR FIN ....
(...)
-- Fabrice Burghgraeve Computer & Services
(enlevez le _pas_de_spam_ pour me répondre en privé)