|
|
|
|
|
- Qu'est-ce que l'UNICODE
- Gestion de l'UNICODE
- Conversions implicites
Gestion de l'Unicode dans les chaînes de caractères
L'UNICODE est un système de codage spécifiant un nombre unique pour chaque caractère. Ce codage est réalisé sur 16 bits. Ce nombre est lisible quelle que soit la plateforme, le logiciel et la langue utilisée. L'UNICODE peut prendre en compte tous les systèmes d'écriture de la planète. La gestion de l'Unicode est prise en compte : - pour la gestion des chaînes de caractères
- pour la gestion des fichiers de données
- pour la gestion des champs affichant des données provenant de chaînes de caractères ou de fichiers de données.
Pour gérer l'UNICODE, WINDEV propose : - un choix global du format des chaînes en exécution dans la description de la configuration de projet.
Pour modifier la gestion des chaînes de caractères dans la configuration courante :
- Affichez la fenêtre de description du projet : sous le volet "Projet", dans le groupe "Configuration de projet", cliquez sur "Configuration courante".
- Dans la fenêtre qui s'affiche, sélectionnez l'onglet "Unicode" et choisissez le mode voulu : Utiliser des chaînes ANSI en exécution ou Utiliser des chaînes UNICODE en exécution.
- le type Chaîne UNICODE.
- des fonctions de conversion :
Ces fonctions permettent de réaliser des conversions Ansi vers Unicode et Unicode vers Ansi. Lors de la manipulation de chaînes de caractères, ces conversions sont automatiquement réalisées (voir paragraphe suivant).
| | AnsiVersUnicode | Convertit :- une chaîne de caractères au format ANSI (Windows) en une chaîne de caractères au format UNICODE.
- un buffer contenant une chaîne de caractères au format ANSI (Windows) en un buffer contenant une chaîne de caractères au format UNICODE.
| ChaîneVersUTF8 | Convertit une chaîne ANSI ou UNICODE au format UTF8. | UnicodeVersAnsi | Convertit :- une chaîne de caractères au format UNICODE en une chaîne de caractères au format ANSI (Windows).
- un buffer contenant une chaîne de caractères au format UNICODE en un buffer contenant une chaîne de caractères au format ANSI (Windows).
| UTF8VersChaîne | Convertit une chaîne au format UTF8 en une chaîne ANSI ou une chaîne UNICODE. |
- l'adaptation des fonctions de manipulation des chaînes de caractères :
| | ChaîneCompare | Compare caractère par caractère deux chaînes :- selon l'ordre des caractères ASCII.
- selon l'ordre lexicographique.
| ChaîneFormate | Formate une chaîne de caractères selon les options choisies. | ChaîneOccurrence | Calcule : - le nombre d'occurrences d'une chaîne de caractères spécifique (en respectant les critères de recherche) dans une autre chaîne de caractères.
- le nombre d'occurrences d'un ensemble de chaînes présentes dans un tableau.
| Complète | Renvoie une chaîne de caractères spécifique de taille déterminée. | ComplèteRep | Ajoute, si nécessaire, le caractère "\" à la fin d'une chaîne de caractères. | Droite | Extrait la partie droite (c'est-à -dire les derniers caractères) d'une chaîne de caractères ou d'un buffer. | ExtraitChaîne | Permet de :- extraire une sous-chaîne d'une chaîne de caractères en fonction d'un séparateur de chaîne donné.
- effectuer un parcours de sous-chaînes dans une chaîne de caractères en fonction d'un séparateur de chaîne donné.
| Gauche | Extrait la partie gauche (c'est-à -dire les premiers caractères) d'une chaîne de caractères ou d'un buffer. | Inverse | Renvoie pour chaque caractère d'une chaîne de caractères le complément à 255. | Milieu | Extrait : - soit une sous-chaîne d'une chaîne à partir d'une position donnée.
- soit une portion d'un buffer à partir d'une position donnée.
| Position | Recherche la position d'une chaîne de caractères dans une autre chaîne de caractères. | PositionOccurrence | Recherche la Xème position d'une chaîne de caractères dans une chaîne de caractères. | Remplace | Remplace toutes les occurrences d'un mot présent dans une chaîne par un autre mot. | Répète | Concatène N répétitions d'une même chaîne de caractères ou d'un même buffer. | SansAccent | Transforme les caractères accentués d'une chaîne de caractères en caractères non accentués. | SansEspace | Renvoie une chaîne de caractères sans les espaces : - situés à gauche et à droite.
- situés à l'intérieur de la chaîne.
| Taille | Renvoie :- la taille d'une chaîne de caractères, c'est-à -dire le nombre de caractères composant la chaîne de caractères (y compris les caractères espace et 0 binaire).
- la taille d'un buffer, c'est-Ã -dire le nombre d'octets composant le buffer.
| TypeVar | Identifie le type d'une expression, d'une variable (lors d'un appel de procédure par exemple) ou d'un champ. | Val | Renvoie la valeur numérique d'une chaîne de caractères. |
- l'adaptation des opérateurs de manipulation des chaînes de caractères :
- l'adaptation des opérateurs de parcours des chaînes de caractères :
- l'adaptation des fonctions de manipulation des fichiers texte :
| | fEcrit | Écrit une chaîne de caractères dans un fichier externe (format ANSI ou UNICODE). | fEcritLigne | Écrit une ligne dans un fichier texte (au format ANSI ou UNICODE). | fLit | Lit un bloc d'octets (bloc de caractères) dans un fichier externe (ANSI ou UNICODE). | fLitLigne | Lit une ligne dans un fichier externe (au format ANSI ou UNICODE). | fOuvre | Ouvre un fichier externe de type ANSI ou Unicode pour le manipuler par programmation. |
Conversions implicites À partir de la version 12, les conversions réalisées entre des chaînes de caractères ANSI et des chaînes de caractères UNICODE sont implicites. Ces conversions sont effectuées en utilisant l'alphabet courant (défini si nécessaire avec la fonction ChangeAlphabet). A partir de la version 15, les chaînes de caractères UNICODE sont converties automatiquement lors de l'affectation dans une rubrique HFSQL de l'un des types suivants : booléen, entier (toutes tailles, avec ou sans signe), monétaire, numérique ou réel. Quelques exemples d'utilisation :
// Avec les fonctions de conversion ResU est une chaîne UNICODE = AnsiVersUnicode("Test d'une chaîne") // Conversion implicite ResU est une chaîne UNICODE = "Test d'une chaîne"
Res est une chaîne ResU est une chaîne UNICODE // Avec les fonctions de conversion ResU = AnsiVersUnicode(Res) Res = UnicodeVersAnsi(ResU) // Conversion implicite ResU = Res Res = ResU
Res est une chaîne ResU est une chaîne UNICODE // Avec les fonctions de conversion SI ResU <> AnsiVersUnicode("") ALORS ... SI ResU <> AnsiVersUnicode(Res) ALORS ... // Conversion implicite SI ResU <> "" ALORS ... SI ResU <> Res ALORS ...
nFic est un entier = fOuvre("E:\temp\Unicode.txt", foLecture + foUnicode) ResU est une chaîne UNICODE ResU = fLitLigne(nFic) TANTQUE ResU <> EOT Trace(ResU) ResU = fLitLigne(nFic) FIN
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|