Difference between revisions of "FR/Documentation/BASIC Guide/Strings (Runtime Library)"
Jeanmi2403 (Talk | contribs) (→Recherche et remplacement) |
Jeanmi2403 (Talk | contribs) (Undo revision 237722 by Jeanmi2403 (talk) (enregistrer un point de contrôle)) |
||
Line 75: | Line 75: | ||
<source lang="oobas"> | <source lang="oobas"> | ||
− | ResultString = InStr(StartPosition, MyString, SearchString, 0) | + | ResultString = InStr(StartPosition,MyString, SearchString, 0) |
</source> | </source> | ||
Revision as of 14:40, 6 November 2016
- Fonctions de conversion (bibliothèque d'exécution de Apache OpenOffice)
- Chaînes (bibliothèque d'exécution de Apache OpenOffice BASIC)
- Date et heure (bibliothèque d'exécution de Apache OpenOffice)
- Fichiers et répertoires (bibliothèque d'exécution de Apache OpenOffice)
- Boîtes de message et zones de saisie(bibliothèque d'exécution de Apache OpenOffice)
- Autres fonctions (bibliothèque d'exécution de Apache OpenOffice)
Utilisation de jeux de caractères
Lorsqu'il traite les jeux de caractères, Apache OpenOffice Basic utilise le jeu de caractères Unicode. Les fonctions Asc et Chr permettent d'obtenir la valeur Unicode d'un caractère ou le caractère correspondant à une valeur Unicode donnée. Les expressions suivantes assignent les différentes valeurs Unicode à la variable Code :
Code = Asc("A") ' Latin letter A (Unicode-value 65) Code = Asc("€") ' Euro character (Unicode-value 8364) Code = Asc("Л") ' Cyrillic letter Л (Unicode-value 1083)
Inversement, l'expression :
MyString = Chr(13)
permet d'initialiser la chaîne MyString avec la valeur correspondant au nombre 13, qui correspond à un retour à la ligne forcé.
La commande Chr est fréquemment utilisée dans les langages Basic pour insérer des caractères de contrôle dans une chaîne. Ainsi, l'assignation suivante :
MyString = Chr(9) + "This is a test" + Chr(13)
fait précéder le texte d'un caractère de tabulation (valeur Unicode 9) et le fait suivre d'un retour à la ligne forcé (valeur Unicode 13).
Accès à une partie de la chaîne
Apache OpenOffice Basic fournit quatre fonctions retournant des parties de chaîne :
- Left(MyString, Length)
- retourne les Length premiers caractères de MyString.
- Right(MyString, Length)
- retourne les Length derniers caractères de MyString.
- Mid(MyString, Start, Length)
- retourne les Length premiers caractères de MyString à partir de la position Start.
- Len(MyString)
- retourne le nombre de caractères dans MyString.
Quelques exemples de ces fonctions sont répertoriés ci-dessous :
Dim MyString As String Dim MyResult As String Dim MyLen As Integer MyString = "This is a small test" MyResult = Left(MyString,5) ' Provides the string "This " MyResult = Right(MyString, 5) ' Provides the string " test" MyResult = Mid(MyString, 8, 5) ' Provides the string " a sm" MyLen = Len(MyString) ' Provides the value 21
Recherche et remplacement
La fonction InStr de Apache OpenOffice Basic permet de rechercher une chaîne partielle à l'intérieur d'une autre :
ResultString = InStr (MyString, SearchString)
Le paramètre SearchString spécifie la chaîne à rechercher dans MyString. La fonction retourne un nombre contenant la position à laquelle la chaîne SearchString apparaît pour la première fois dans MyString. Pour rechercher d'autres occurrences de la chaîne, la fonction fournit une option permettant de spécifier la position à partir de laquelle Apache OpenOffice Basic commence la recherche. Dans ce cas, la syntaxe de la fonction est :
ResultString = InStr(StartPosition, MyString, SearchString)
Dans les exemples ci-dessus, InStr ne fait pas la distinction entre les majuscules et les minuscules. Pour effectuer une recherche avec InStr en respectant la casse, ajoutez le paramètre 0, comme indiqué dans l'exemple suivant. Dans ce cas, il faudra préciser le premier argument, car son absence provoque une erreur.
ResultString = InStr(StartPosition,MyString, SearchString, 0)
En utilisant les fonctions d'édition de chaînes indiquées ci-dessus, les programmeurs peuvent rechercher et remplacer une chaîne à l'intérieur d'une autre :
Function Replace(Source As String, Search As String, NewPart As String) Dim Result As String Dim StartPos As Long Dim CurrentPos As Long Result = "" StartPos = 1 CurrentPos = 1 If Search = "" Then Result = Source Else Do While CurrentPos <> 0 CurrentPos = InStr(StartPos, Source, Search) If CurrentPos <> 0 Then Result = Result + Mid(Source, StartPos, _ CurrentPos - StartPos) Result = Result + NewPart StartPos = CurrentPos + Len(Search) Else Result = Result + Mid(Source, StartPos, Len(Source)) End If ' Position <> 0 Loop End If Replace = Result End Function
La fonction effectue la recherche dans la chaîne transférée Search dans une boucle, en utilisant InStr dans le terme d'origine Source. Si elle trouve le terme recherché, elle écrit la partie précédant l'expression dans le tampon de retour Result. Elle ajoute la section Part au niveau du terme recherché Search. Si aucune occurrence supplémentaire du terme recherché n'est trouvée, la fonction détermine la partie de la chaîne restante et l'ajoute au tampon de retour. Elle retourne la chaîne ainsi créée comme résultat du processus de remplacement.
Comme le remplacement de parties de séquences de caractères est une des fonctions les plus fréquemment utilisées, la fonction Mid dans Apache OpenOffice Basic a été étendue de manière à pouvoir effectuer cette tâche automatiquement. L'exemple suivant remplace trois caractères par la chaîne is à partir de la sixième position de la chaîne MyString.
Dim MyString As String MyString = "This was my text" Mid(MyString, 6, 3, "is")
Formatage des chaînes
La fonction Format formate les nombres sous forme de chaînes. Pour ce faire, la fonction attend une expression Format, qui sert de modèle pour le formatage des nombres. Chaque substituant à l'intérieur du modèle assure que cet élément est bien formaté en conséquence dans la valeur de sortie. Les cinq substituants les plus importants sont le zéro (0), le dièse (#), le point(.), la virgule (,) et le dollar ($).
Dans le modèle, un zéro (0) assure que l'emplacement correspondant sera toujours occupé par un nombre. Si aucun chiffre n'est fourni, un 0 s'affiche à sa place.
Un point (.) correspond au séparateur de décimales défini par le système d'exploitation dans les paramètres nationaux.
L'exemple ci-dessous définit le nombre de décimales d'une expression à l'aide des caractères 0 et . :
MyFormat = "0.00" MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80" MyString = Format(1579.8, MyFormat) ' Provides "1579,80" MyString = Format(0.4, MyFormat) ' Provides "0,40" MyString = Format(0.434, MyFormat) ' Provides "0,43"
De la même manière, il est possible d'ajouter des zéros devant un nombre pour lui donner la longueur souhaitée :
MyFormat = "0000.00" MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80" MyString = Format(1579.8, MyFormat) ' Provides "1579,80" MyString = Format(0.4, MyFormat) ' Provides "0000,40" MyString = Format(0.434, MyFormat) ' Provides "0000,43"
Une virgule (,) représente le caractère utilisé par le système d'exploitation comme séparateur de milliers, tandis qu'un dièse (#) représente un chiffre ou un emplacement qui n'est affiché que si la chaîne en entrée le nécessite.
MyFormat = "#,##0.00" MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80" MyString = Format(1579.8, MyFormat) ' Provides "1.579,80" MyString = Format(0.4, MyFormat) ' Provides "0,40" MyString = Format(0.434, MyFormat) ' Provides "0,43"
À la place du substituant $, la fonction Format affiche le symbole monétaire adapté, défini par le système (cet exemple considère qu'un environnement linguistique européen a été défini) :
MyFormat = "#,##0.00 $" MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80 €" MyString = Format(1579.8, MyFormat) ' Provides "1.579,80 €" MyString = Format(0.4, MyFormat) ' Provides "0,40 €" MyString = Format(0.434, MyFormat) ' Provides "0,43 €"
Vous pouvez également utiliser les instructions de formatage utilisées dans VBA pour la date et l'heure :
sub main dim myDate as date myDate = "01/06/98" TestStr = Format(myDate, "mm-dd-yyyy") ' 01-06-1998 MsgBox TestStr end sub
Content on this page is licensed under the Public Documentation License (PDL). |