Comment rediriger le résultat d’une commande console sur une form Un petit exemple pour vous montrer comment grâce à System.Management et System.ServiceProcess il est possible de lancer des commandes dans la console windows et de rediriger le résultat sur une form. Dans cet exemple …
Tuto les Tableaux Dynamiques
Les tableaux dynamique ou tableau mémoire sont utiles pour traiter les données directement en memoire et ainsi réduire le temps d’execution d’une fonction , limités l’accés aux fichiers, a une base..etc
Par exemple si vous devez lire un fichier texte pour rechercher une information plusieurs fois , il suffit de le « monter en mémoire » une fois pour ensuite y accéder autant de fois que vous le désirez sans re-ouvir le fichier.
Les tableau mémoire sont plus qu’une variable, on va dire une « très grosse » variable pouvant contenir plusieurs données d’un seul type, chaque une de ses données étant repérer par un indice (ou index).
Ils peuvent être de 1 à plusieurs dimension.
un tableau commence toujours par l’index 0
Déclaration d’un tableau mémoire vide d’une dimension :
dim tab() as string
On peut ensuite le redimensionner suivant nos besoin,
Dans notre cas nous allons remplir un tableau de 10 éléments comprenant les nombre paire compris entre 0 et 20
On redimensionne donc notre tableau
Redim tab(10)
pour remplir notre tableau nous allons aller de 2 a 20 en comptant de 2 en 2
for i=2 to 20 step 2 'step 2 nous allons de 2 en 2 (nombres pairs) tab(i)=i 'au premier tour i vaut 2, puis 4, puis 6 ....etc next 'le resultat dans tab() est tab(0)=2 ; tab(1)=4 ; tab(2)=6....tab(9)=20 (il y a bien 10 éléments)
à la fin de la boucle, nombre vaudra : « 2-4-6-8-10-12-14-16-18-20″
Nous allons ensuite afficher notre tableau, pour cela nous allons faire une boucle qui commence à 0 (souvenez vous , 0 est le premier indice du tableau), jusqu’à la limite du tableau (ubound(tab))
for i= 0 to ubound(tab) -1 nombre = nombre & tab(i) & "-" next i
Redimension d’un tableau
il est possible de redimensionner un tableau en utilisant l’instruction redim, seulement si un tableau contient des donnée cette instruction aura pour effet de les supprimer ,
Exemple :
redim tab(20), va redimensionner notre tableau de 10 élément à 20 éléments , mais va supprimer tout ce qu’il contient.
pour éviter cela , il suffit de combiner Redim avec preserve comme ceci
redim Preserve tab(20) va garder nos 10 éléments et va rajouter 10 espace mémoire supplémentaire
nous pouvons maitenant rajouter par exemple :
tab(10)=22 : tab(11)=24….etc tab(19)=30
Imaginons que nous souhaitons supprimer tout les nombre inférieur a 10
voici une petite fonction bien utile , puisque qu’au fur et à mesure qu’elle supprime un élément elle redimentionne automatiquement le tableau
Public Sub Supprime(ByRef tableau() As string, element As integer) Dim i As Integer For i = element To UBound(tableau) - 1 tableau(i) = tableau(i + 1) Next ReDim Preserve tableau(UBound(tableau) - 1) End Sub
donc pour notre exemple, nous allons parcourir le tableau pour rechercher si l’élément est inférieur à 10 auquel cas on le supprime du tableau
Pour faire une recherche dans un tableau, on doit le parcourir par une boucle du début à la fin
dim i as integer For i = 0 to ubound(tab) if tab(i)<10 then supprime(tab,i) end if next i
La fonction split
La fonction split(machaine, monseparateur) permet de découper une chaîne suivant un séparateur donné et de la mettre automatiquement dans un tableau dynamique.
soit un une variable « phrase » contenant une chaine, nous voulons extraire chaque mot qui sont séparer par des espace
dim phrase as string ="je suis membre vb de tresorsdevie.free.fr", dim tabmot=split(chaine," ")
split va redimensionner automatiquement notre tableau et mettre chaque mot dans un index soit:
tabmot(0)="je" tabmot(1)="suis" tabmot(2)="membre" tabmot(3)="vb" tabmot(4)="de" tabmot(5)="tresorsdevie.free.fr"
Sur les tableaux à 2 dimensions (matrice), le premier indice représente les lignes, le deuxième les colonnes
dim tab(3,2) as string ’ (4 lignes sur 3 colonnes)
tab(0,0) | tab(0,1) | tab(0,2) |
tab(1,0) | tab(1,1) | tab(1,2) |
tab(2,0) | tab(2,1) | tab(2,2) |
tab(3,0) | tab(3,1) | tab(3,2) |
exemple de données
prenom | age | lieu |
selkis | 36 | corse |
mathieu | 30 | paris |
charles | 25 | nice |
si l’on veut maintenant connaitre les informations de la personne qui habite paris, on va rechercher le lieu et afficher le prénom et l’age:
dim i as integer dim prenom, age as string for i=0 to ubound(tab) -1 if tab(i,2)=paris then prenom=tab(i,0) age=tb(i,1) next messagebox.show prenom & " " age
You must be logged in to post a comment.