Cet article couvre les bases de la manipulation du texte en Small Basic en utilisant l'objet Text.
Un texte est une série de caractères, généralement appelée une "chaîne" en informatique. Une chaîne peut être une constante (ou littéral) entourée par des guillemets, ou une variable qui peut affecté pour stocker une chaîne.
txt
=
"Hello World"
Ci-dessus, la variable 'txt' contient la chaîne littérale "Hello World".
Comme indiqué, une chaîne contient un ensemble de caractères, dans cet exemple nous avons 11 catactères, 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l' et 'd'.
Une chaîne peut également être une série de nombre comme "3.14159", ou encore contenir des caractères spéciaux comme les retours chariot ou '♥' ou encore un beep clavier. Attention à pas confondre les différentes représentations d'un caractère que les polices proposent, notamment les polices symbole. Un caractère identique peut être affiché différemment en fonction de la police.
Chaque caractère est identifié en interne par un 'Code Caractère' qui est un nombre, souvent appelé code/nombre ASCII ou UNICODE.
Nous voulons souvant créer une chaîne à partir d'autres chaînes, ou interroger une chaîne pour savoir ce qu'elle contient.
Ce qui suit est un bref résumé des méthodes de l'objet Text dans Small Basic, avec quelques exemples simples.
Retourne le nombre de caractères qui se trouve dans la chaîne en paramètre.
TextWindow
.
WriteLine
(
+
" contient "
Text
GetLength
)
" caractères"
La chaîne vide "" à une signification particulière en Small Basic. Elle représente une variable qui n'est pas encore initialisée, de plus un élément d'un tableau est supprimé lorsqu'il lui est affecté "". Par conséquent nous ne pouvons pas avoir d'élément qui contienne une chaîne vide "".
Joint ou concatène deux chaînes. Nous pouvons également utiliser + pour joindre deux chaînes en général. De plus, si les chaînes contiennent des nombres, alors + ajoutera numériquement les valeurs plutôt que de faire une jointure de chaînes.
"35"
"17"
Append
,
C'est très simple, créer simplement une copie de la chaîne en paramètre en modifiant sa casse (changement majuscule/minuscule).
C'est très utile pour comparer des chaînes équivalentes sans être sensible à la casse. Si nous convertissons les deux chaînes de la même manière (par exemple en minuscule) alors comparer leur égalité ne prendra pas en compte la casse des chaînes originales.
"Entrer un nom"
inputName
Read
If
ConvertToLowerCase
"john"
Then
"Salut "
EndIf
Créé une copie de la chaîne en paramètre, avec tous les caractères convertis en minuscule.
Créé une copie de la chaîne en paramètre, avec tous les caractères convertis en minuscule (ou capitale).
Les codes caractères sont utiles pour :
For
i
0
To
127
CursorLeft
Write
4
GetCharacter
EndFor
"Entrer une phrase"
input
capitals
""
1
char
GetSubText
charCode
GetCharacterCode
>
65
And
<
90
"Les majuscules de votre phrase sont"
Les codes pour les caractères spéciaux pour un retour chariot (10) et ligne suivante (13) sont très utiles. Ces termes font référence aux machines à écrire; ils sont parfois utilisés séparément et parfois sont combinés pour former une retour à la ligne (ou nouvelle ligne).
CR
10
LF
13
mlTextBox
Controls
AddMultiLineTextBox
SetTextBoxText
"Hello"
"World"
Retourne le caractère du code caractère en paramètre.
Retourne le code caractère du caractère en paramètre.
Les commandes suivantes manipulent des sous-chaînes dans de plus grandes chaînes.
Détermine si une chaîne se termine par un ensemble de caractère, retourne "True" or "False".
EndsWith
fileName
".txt"
'We have found a txt file
A noter que "True" et "False" sont des chaînes spéciales dans Small Basic qui représentent un état vrai ou faux et sont utilisées directement par les instructions If ou While.
'An infinite loop
While
"True"
Program
Delay
20
EndWhile
Déterminer si une chaîne commence par un ensemble de caractère, retourne "True" ou "False".
Les méthodes restantes de Text vous permettent de rechercher et manipuler des sous-chaînes.
'A simple find and replace
"This is my test text, it contains text that has 3 instances of the word text."
txtCopy
' A working copy
find
"text"
'The text to find
replace
"TEXT"
'The text to replace with
result
'The result of the find and replace
pos
GetIndexOf
' The next occurence of our search text
-
'The text before our search text
'Add the replace text
GetSubTextToEnd
'The text after our search text
'The next occurence of our next search text
'The final text after our search text (if any).
Recherche l'index (c'est à dire la position depuis le début) du début d'une chaîne dans une autre. Elle retourne 0, si la chaîne n'est pas trouvée.
Retourne une sous-chaîne de la chaîne en paramètre et qui commence à l'index fourni et en ne gardant que le nombre de caractères définis.
Retourne une sous-chaîne de la chaîne en paramètre et qui commence à l'index fournir et en gardant tous les caractères jusqu'à la fin de la chaîne.
Détermine si une sous-chaîne se trouve n'importe où dans la chaîne en paramètre, retourne "True" ou "False". C'est identique à GetIndexOf retournant une valeur > 0.