PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Types de chaînes de caractères
  • Cas particulier
  • Chaîne Fixe et chaîne ASCIIZ
  • Traitement des chaînes fixes
  • Notes
  • Valeur par défaut
  • Passer une chaîne de caractères en paramètre à une procédure
  • Utiliser le caractère guillemet dans une chaîne de caractères
  • Comparaison des différents types chaîne disponibles dans WINDEV et dans WINDEV Mobile
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Types de chaînes de caractères
Le WLangage propose différents types de chaînes de caractères.
1. Les types les plus courants sont les suivants :
  • Caractère
Caractère codé sur 1, 2 ou 4 octets selon le mode de gestion des chaînes de caractères et la plateforme d'exécution.
  • Sous Windows :
    • en mode Ansi, un caractère est codé sur 1 octet,
    • en mode Unicode, un caractère est codé sur 2 octets.
  • Sous Linux :
    • en mode Ansi, un caractère est codé sur 1 octet,
    • en mode Unicode, un caractère est codé sur 4 octets.
  • Sous iOS, en Unicode, un caractère est codé sur 4 octets.
Lorsque un caractère est vide, sa valeur correspond à Caract(0).
  • Versions 17 et supérieures
    Chaîne Ansi
    Nouveauté 17
    Chaîne Ansi
    Chaîne Ansi
Chaîne de taille dynamique contenant uniquement des caractères au format ANSI.
Ce format est notamment nécessaire pour manipuler :
  • les fichiers XML
  • les fichiers RTF
  • les fichiers PDF
  • les fonctions utilisant le format UTF8, ...
  • Chaîne Unicode
Chaîne de taille dynamique contenant uniquement des caractères au format UNICODE.
  • Chaîne
Chaîne de taille dynamique.

Le type "chaîne" est propre au WLangage. Avec ce type, il n'est pas nécessaire de déclarer la longueur de la chaîne. Celle-ci peut varier de façon libre lors de l'utilisation de la variable.
  • Buffer
Zone mémoire binaire. Permet d'écrire un code portable entre WINDEV et WINDEV Mobile en ce qui concerne la manipulation des données brutes. Pour plus de détails, consultez le type "Buffer".
2. D'autres types de chaînes de caractères peuvent également être utilisés :
  • Chaîne sur
Chaîne de taille fixée, terminée par un 0 binaire (identique au langage C). La taille spécifiée correspond au nombre maximum de caractères de la chaîne.
Ce type de chaîne de caractères permet de créer un code compatible WINDEV / WINDEV Mobile lors de l'appel d'API existantes sur les deux plateformes.
  • Chaîne ASCIIZ sur
Chaîne terminée par un 0 binaire (identique au langage C).
La longueur d'une chaîne ASCIIZ est limitée à environ 2 Go. La taille à donner à la chaîne ASCIIZ doit être égale à la taille de la chaîne plus 1 (pour le zéro binaire).
  • Chaîne fixe sur
Chaîne de taille fixe.
La longueur d'une chaîne fixe est limitée à environ 2 Go. La chaîne de caractères est complétée :
  • avec 0 si la variable n'est pas encore affectée.
  • avec des espaces si nécessaire si la variable est affectée (elle est semblable au type "string" du Basic).
  • Chaîne pascal sur
Chaîne précédée d'un octet précisant la longueur (identique au langage Pascal). Cet octet n'est pas accessible. Par exemple chaine[1] représente le premier caractère de la chaîne et non pas sa longueur.
La longueur d'une chaîne Pascal est limitée à 255 caractères maximum. La taille à donner à la chaîne Pascal doit être égale à la taille de la chaîne.
  • Chaîne Unicode sur
Chaîne de taille fixée contenant uniquement des caractères au format UNICODE.
Remarques :
  • Le type "Chaîne sur" doit être utilisé pour envoyer des paramètres en entrée / sortie à une API Windows.
  • Tous les types avancés (différents du type "Chaîne") sont disponibles pour compatibilité avec les autres langages de programmation (Turbo Pascal Windows, C, Visual Basic Windows, ...) ou pour recevoir le résultat d'une API Windows.
  • WINDEV Mobile et WINDEV ne proposent pas les mêmes types de chaînes de caractères. Pour plus de détails sur les différents types de chaînes de caractères proposées, consultez le paragraphe Notes.
Cas particulier
Etats et RequêtesWindows

Chaîne Fixe et chaîne ASCIIZ

  • Lors de la déclaration d'une chaîne ASCIIZ ou d'une chaîne fixe, la mémoire nécessaire est immédiatement allouée. Il est donc nécessaire d'éviter d'utiliser des chaînes de trop grande taille.
  • La chaîne fixe est complétée par des espaces. L'initialisation et l'affectation d'une chaîne de grande taille (plusieurs centaines de kilo octets) peuvent être relativement longues.
Windows

Traitement des chaînes fixes

Les chaînes fixes ne sont pas disponibles en Java. Elles sont remplacées en exécution par le type Chaîne.
Il est cependant possible d'utiliser la fonction Complète sur une variable de type Chaîne :
MaChaîne est une chaîne
MaChaîne = Complète("Test", 10)
// Equivalent à
// MaChaîne est une chaîne fixe sur 10 caractères
// MaChaîne = "Test"
Notes

Valeur par défaut

  • Une variable de type "Chaîne" ou "Chaîne sur" déclarée et non initialisée correspond à une chaîne vide ("").
  • Une variable de type "Buffer" déclarée et non initialisée est vide.
  • Une variable de type "Buffer sur" déclarée et non initialisée est remplie avec des 0.

Passer une chaîne de caractères en paramètre à une procédure

Il est possible de passer une variable de type "Chaîne" en paramètre à une procédure.
Attention : Si la variable a une taille fixée, il faut supprimer les espaces. Par exemple :
MaChaîne est une chaîne
MaChaîne = "WINDEV est formidable"
// Suppression des espaces dans MaChaîne
MaChaîne = SansEspace(MaChaîne)
ComptageLettre(MaChaîne)
// ComptageLettre est une procédure

Utiliser le caractère guillemet dans une chaîne de caractères

Pour utiliser le caractère guillemet dans une chaîne de caractères, il est nécessaire de le doubler.
Par exemple :
MaChaîne est une chaîne
MaChaîne = "L'option ""Conditions générales"" doit être cochée"
Info(MaChaîne)
// Affiche : L'option "Conditions générales" doit être cochée
Etats et RequêtesWindows

Comparaison des différents types chaîne disponibles dans WINDEV et dans WINDEV Mobile

WINDEV / WEBDEV
Format de la chaîne
WINDEV Mobile
Format de la chaîne
ChaîneANSIUnicode
CaractèreANSIUnicode
Chaîne ASCIIZ surChaîne ANSI de N caractèresnon disponible
Chaîne fixe surChaîne ANSI de N caractèresnon disponible
Chaîne Pascal surChaîne ANSI de N caractèresnon disponible
Chaîne UnicodeUnicodeUnicode
BufferBinaireBinaire
Chaîne surChaîne ANSI de N caractèresChaîne Unicode de N caractères
Chaîne Unicode surChaîne Unicode de N caractèresChaîne Unicode de N caractères
Buffer surMémo binaire de N octetsMémo binaire de N octets
Liste des exemples associés :
Divers types de chaînes Exemples unitaires (WINDEV) : Divers types de chaînes
[ + ] Utilisation des différents types de chaînes disponibles avec WINDEV.
Les spécificités de chaque type sont détaillées.
Types utilisés :
- Chaîne "standard"
- Chaîne UNICODE
- Chaîne fixe
- Chaîne Pascal
- Chaîne ASCIIZ
- Type Buffer
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire