MIDB |
Milieu binaire |
|---|---|
| Visual Basic | |
Syntaxe
| Function MidB(chaine,position,longueur) |
Paramètres
| Nom | Description |
|---|---|
| chaine | Ce paramètre permet d'indiquer la chaîne de caractères source contenu la valeur d'origine |
| position | Ce paramètre permet d'indiquer la position en nombre de caractères dans la chaîne de caractères |
| longueur | Ce paramètre permet d'indiquer la longueur de la partie a renvoyer |
Description
Cette fonction retourne une sous-chaîne de caractères ASCII contenu dans une chaîne de caractères.
Remarques
- La fonction MIDB est utilisée pour extraire une sous-chaîne d'une chaîne de caractères, en travaillant sur des données au format ASCII. Elle est particulièrement utile lorsque la chaîne est manipulée en fonction du nombre d'octets, et non du nombre de caractères.
- Le paramètre position dans MIDB indique où commencer l'extraction, en se basant sur la position en octets dans la chaîne. Cela la distingue de MID$, se basant sur la position en termes de caractères, ce qui est très important dans les chaînes multi-octets.
- Lorsque seul le paramètre position est spécifié sans longueur, toute la chaîne à partir de cette position est retournée. Cela permet d'extraire rapidement la "fin" d'une chaîne de caractères sans avoir à calculer sa longueur exacte.
- Si la valeur de position est trop grande par rapport à la taille de la chaîne de caractères, MIDB renverra une chaîne vide. Cela permet d'éviter des erreurs de dépassement de mémoire, ce qui est une précaution importante dans les opérations binaires.
- Le traitement par MIDB étant basé sur des octets, il peut produire des résultats inattendus si on l'utilise sur des chaînes contenant des caractères Unicode ou multi-octets, car un caractère peut occuper plusieurs octets.
- En Visual Basic, MIDB est souvent utilisé lorsqu'on travaille avec des flux binaires ou des fichiers structurés, pour extraire des blocs de données sans avoir besoin de les convertir en texte lisible.
- Dans l'exemple donné, on observe que certaines extractions retournent des résultats corrompus ("???"), ce qui est dû au traitement octet par octet sans prendre en compte le découpage correct des caractères sur plusieurs octets.
- L'utilisation de MIDB doit être réservée aux contextes strictement binaires ou aux traitements ASCII purs. Pour les manipulations classiques de texte affiché, il est préférable d'utiliser MID$ afin d'éviter les problèmes d'affichage ou de caractères tronqués.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
on obtiendra le résultat suivant :
Bonjour le monde !Bon??? ??????? ?? ????? ???? ???????? ??
Dernière mise à jour : Lundi, le 19 novembre 2012