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_spirit
Hors ligne
Membre
Points: 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"
Totoyo
Hors ligne
Membre d'honneur
Points: 15867
Défis: 101
Message
Posté le 13-04-2011 à 23:59 | #
Mise à jour
Pierrotll
Hors ligne
Ancien administrateur
Points: 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 ...
Drak
Hors ligne
Rédacteur
Points: 1744
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 ?
Remiweb
Hors ligne
Membre de CreativeCalc
Points: 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).
Zezombye
Hors ligne
Rédacteur
Points: 1423
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" ?
Lephenixnoir
Hors ligne
Administrateur
Points: 12512
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 storm
En ligne
Administrateur
Points: 10596
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.
Lephenixnoir
Hors ligne
Administrateur
Points: 12512
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...
Zezombye
Hors ligne
Rédacteur
Points: 1423
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 - 2018 | Il y a 35 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd