La référence Basic Casio

Nom : StrMid(

Localisation :

[ PRGM ] [ STR ]
[ SHIFT ] + [ VARS ] + [ F6 ] + [ F6 ] + [ F1 ]

Syntaxe de la fonction :

StrMid(chaine,debut[,longueur])

Description de la fonction :

Extrait une partie de la chaîne de caractères passée en paramètre.
chaine : une chaine de caractères littérale ou une variable de type Str
debut : toute expression s'évaluant en un entier strictement positif
longueur : toute expression s'évaluant en un entier positif (optionnel)

Lorsque les paramètres fournis sont valides, cette fonction extrait au plus longueur caractères à partir de la position debut (qui est prise), dans le chaîne de caractères donnée en premier argument.

Lorsque longueur est omis, la fonction StrMid() prend jusqu'à la fin de la chaîne. S'il n'y a moins de longueur caractères disponibles, la fonction renvoie toute la fin de la chaîne.

Compatibilité :

  • Graph 20/25(+)
  • Graph 35/65/80(+)
  • Graph 100(+)
  • Graph 25+ PRO
  • Graph 85 (SD) OS 1.xx
  • Graph 85 (SD) OS 2.xx
  • Graph 35+ USB/75/95 SD
  • Graph OS 2.04
  • Fx-CG 10/20 OS 1.xx
  • Fx-CG 10/20 OS 2.xx


<<< Retourner à la liste des fonctions

Pages: 1, 2 | Suivante

Light_spiritHors ligneMembrePoints: 2099 Défis: 38 Message
Posté le 13-04-2011 à 23:42 | #
B indique le nombre de caractères à copier. A la position de début de la copie. La position commence à 1.

StrMid("ABCDEF", 3, 2) renvoie "CD"
TotoyoHors ligneMembre d'honneurPoints: 15897 Défis: 101 Message
Posté le 13-04-2011 à 23:59 | #
Mise à jour
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message
Posté le 14-04-2011 à 01:01 | #
Exact LS. En voyant l'ajout de la fonction, j'ai eu un doute, parce que d'habitude les fonctions substr demandent en 2nd paramètre la longueur de la chaine. J'avais donc regardé dans la doc avant de dire une connerie, et elle dit bien
StrMid("<chaine>",N[,M)]
Effectue l’extraction du Nième jusqu’au Mième caractère d’une chaîne.

Du coup quand j'ai vu ton message, j'ai vérifié sur la calto, et t'as raison, la doc est fausse ...
DrakHors ligneRédacteurPoints: 1921 Défis: 38 Message
Posté le 06-07-2016 à 19:39 | #
StrMid(str 1,A,B)


J'imagine que cette commande dysfonctionne et affiche une erreur si jamais : B > StrLen(Str 1) - A ?
RemiwebHors ligneMembre de CreativeCalcPoints: 1040 Défis: 32 Message
Posté le 06-07-2016 à 19:58 | #
@Dark non, ça s'arrête simplement au bout de la chaîne en principe.

Edit : après vérification ça fonctionne bien comme ça, et A peut même dépasser la longueur de la chaîne (on obtient rien du coup, mais on n'a pas d'erreur).
ZezombyeHors ligneRédacteurPoints: 1593 Défis: 12 Message
Posté le 06-07-2016 à 20:01 | #
Hmm, la doc et les commentaires se contredisent là... cette fonction est-elle donc bien comme le substring() de la plupart des langages de programmation, où StrMid("Hello World!", 7, 12) donne "World" ?
LephenixnoirHors ligneAdministrateurPoints: 13942 Défis: 136 Message
Posté le 06-07-2016 à 20:31 | #
Zezombye, ton « où » est trompeur. Dans la plupart des langages substring() demande un offset et une longueur, et StrMid() le fait aussi. Jamais un appel avec "Hello, World!", 7, 12 ne renverra "World" : il faudrait spécifier 7, 5.
Dark stormHors ligneMembre d'honneurPoints: 10763 Défis: 174 Message
Posté le 06-07-2016 à 20:31 | #
Non. Les commentaires sont corrects et la description aussi.

L'équivalent de substring(), c'est StrMid("Hello World", 7, StrLen("Hello World")-12)
Éventuellement avec des +/-1 pour rectifier l'indiçage de Casio.
LephenixnoirHors ligneAdministrateurPoints: 13942 Défis: 136 Message
Posté le 06-07-2016 à 20:36 | #
C'est pas bon ça Darks x) Ton deuxième argument doit être 12 - 7. Tu te doutes bien que si tu rajoutes un troisième mot à la fin les paramètres nécessaires pour extraire « World » ne doivent pas changer (puisque c'est compté à partir du début) ; ils ne peuvent donc pas dépendre de la longueur de la chaîne...
ZezombyeHors ligneRédacteurPoints: 1593 Défis: 12 Message
Posté le 08-01-2017 à 13:42 | #
Les cas particuliers :
- Si B < 0 ou A < 1, ça fait une erreur (rappel: les strings commencent à 1)
- Si A > StrLen, ça n'affiche rien
- Si B = 0, ça n'affiche rien
- Si A+B > StrLen, ça n'affiche que jusqu'au bout du string

Pages: 1, 2 | Suivante

Retour liste des commandes

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 22 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd