|
DÉVELOPPEMENT RAPIDE D'APPLICATIONS
![]() | |||||||||||||||||||||||
|
Notes de cours 8 Textes et Dates | |||||||||||||||||||||||
|
Manipuler les "strings"
Il est souvent nécessaire quand on saisie des données ou qu'on valide des informations,
de pouvoir manipuler les chaînes de caractères de différentes façons. Voyons quelques fonctions utiles pour exécuter ces manipulations: Len(chaine): retourne la longueur - nombre de caractères dans la chaine. Left(chaine, nombre): retourne le nombre de caractères spécifié à partir de la gauche de chaine. Right(chaine, nombre): retourne le nombre de caractères à partir de la droite de la chaine. Mid(chaine, position, nombre): retourne le nombre de caractères spécifié à partir de position dans la chaine. InStr(chaine1, chaine2): retourne la position dans la chaine1 où chaine2 commence - retourne 0 si chaine2 pas trouvée LTrim(chaine), RTrim(chaine) et Trim(chaine): retourne la chaine avec les espaces non-significatifs enlevés, à gauche, à droite ou les deux. LCase(chaine), UCase(chaine): LCase retourne la chaine toute en minuscules (lower case) et UCase retourne toutes des majuscules (upper case). Format(chaine, format): retourne la chaine formattée selon le format spécifié; les caractères de formattage utilisés pour les données numériques sont: 0 représente un chiffre, avec les zéros non-significatifs Par exemple:# représente un chiffre, sans les zéros non-significatifs . pour la position du décimal , pour les groupes de milliers + - ( ) espace affichés littéralement
Pour les données de type date ou heure on utilise les caractères suivants: yy --> l'année sans le centennaire - eg: 98 yyyy --> l'année avec centennaire - eg: 1998 m --> le mois numérique - eg: 10 mmm --> le mois abbrévié - eg: oct mmmm --> le nom du mois au long - eg: octobre d --> le jour du mois, sans zéro - eg: 8 dd --> le jour du mois, avec zéro - eg: 08 dddd --> le nom du jour de la semaine - eg: lundi h --> l'heure, sans zéro - eg: 7 hh --> l'heure avec zéro - eg: 07 mm --> minutes - eg: 45 ss --> secondes - eg: 50 Blocs de texte Il est souvent utile dans une application de pouvoir travailler avec des blocs de texte. Les contrôles TextBox et ComboBox possèdent des propriétés qui permettent de manipuler les blocs de texte. Il s'agit de: SelStart: entier long qui identifie le début du bloc - 0 signifie le début du texte et un nombre égal à la longueur signifie tout le texte SelLength: un entier long qui identifie le nombre de caractères à sélectionner SelText: un string qui contient les caractères sélectionnés Par exemple, le code suivant sélectionne tout le texte dans un TextBox: TextBox1.Focus() TextBox1.SelectionStart = 0 TextBox1.SelectionLength = Len(TextBox1.Text) ' ' Si je veux remplacer le texte choisi ' j'assigne une nouvelle valeur à SelectedText ' TextBox1.SelectedText = "Nouvelle valeur" Le Console Application Un Console app est une fenetre DOS dans laquelle on peut exécuter des commandes VB On doit créer une Solution et un Project de type 'Console application'. Le Console app est un Module. Les 2 dernières lignes sont importantes car autrement, le Module termine et ferme avant qu'on aie le temps de voir le résultat. On se sert d'un Console app quand on veut tester la syntaxe sans avoir à rédiger un Form. Le menu d'édition de texte Private Sub Edit_Cut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Edit_Cut.Click
' Ensure that text is currently selected in the text box.
If TextBox1.SelectedText <> "" Then
' Cut the selected text in the control and paste it into the Clipboard.
TextBox1.Cut()
End If
End Sub
Private Sub Edit_Copy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Edit_Copy.Click
' Ensure that text is selected in the text box.
If TextBox1.SelectionLength > 0 Then
' Copy the selected text to the Clipboard.
TextBox1.Copy()
End If
End Sub
Private Sub Edit_Paste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Edit_Paste.Click
' Determine if there is any text in the Clipboard to paste into the text box.
If Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) = True Then
' Determine if any text is selected in the text box.
If TextBox1.SelectionLength > 0 Then
' Ask user if they want to paste over currently selected text.
If MessageBox.Show("Do you want to paste over current selection?", _
"Cut Example", MessageBoxButtons.YesNo) = DialogResult.No Then
' Move selection to the point after the current selection and paste.
TextBox1.SelectionStart = _
TextBox1.SelectionStart + _
TextBox1.SelectionLength
End If
End If
' Paste current text in Clipboard into text box.
TextBox1.Paste()
End If
End Sub
Private Sub Edit_Undo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Edit_Undo.Click
' Determine if last operation can be undone in text box.
If TextBox1.CanUndo = True Then
' Undo the last operation.
TextBox1.Undo()
' Clear the undo buffer to prevent last action from being redone.
TextBox1.ClearUndo()
End If
End Sub
Le code dans l'exemple fonctionne pour TextBox1 seulement. Pour le faire fonctionner pour n'importe quel TextBox dans le Form, on peut changer toutes les références à TextBox1 à ceci: Ctype(ActiveControl, TextBox) Les Events Le Click event n'est pas le seul utilisable pour un objet. Par exemple: on veut vider le TextBox en entrant dedans parce qu'on affiche un message de formattage:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
txtDate.Text = "aaaa-mm-jj"
End Sub
Private Sub txtDate_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles txtDate.GotFocus, txtDate.Click
txtDate.SelectionStart = 0
txtDate.SelectionLength = Len(txtDate.Text)
End Sub
L'énoncé Handles est un event handler. Il sert à identifier les events que le code du module peut traiter.Pour utiliser le même code pour plusieurs events, on change le event handler. Private Sub btnEffacer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles btnEffacer.Click, mnuEfface.Click
EffaceTout()
End Sub
Créer une fonction Je crée une fonction Entrer( ) comme l'exemple précédent pour faire la sélection du texte en entrant dans le TextBox:
Private Sub txtNom_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles txtNom.Click, txtNom.GotFocus, txtAchats.Click, _
txtAchats.GotFocus, txtVille.Click, txtVille.GotFocus
entrer1()
End Sub
Private Sub entrer1()
CType(ActiveControl, TextBox).SelectionStart = 0
CType(ActiveControl, TextBox).SelectionLength = Len(CType(ActiveControl, TextBox).Text)
End Sub
Créer un Module Le module est un programme. Le module ne contient que du code - il n'a pas d'interface visuel (form, etc). Un module est appellé par les autres objets du Project. Le code dans le module est disponible à tous les forms si on l'identifie comme Public.
Module Module1
Public Sub Entrer(ByVal sender As Object)
sender.SelectionStart = 0
sender.SelectionLength = Len(sender.Text)
End Sub
End Module
Calculs avec les dates
Pour accéder à cette référence, cliquez : Date and Time Summary
Fonction pour calculer l'âge
| |||||||||||||||||||||||