Création d'un fichier config a l'aide de tableaux - VB/VBA/VBS - Programmation
Marsh Posté le 03-01-2010 à 19:11:51
Bonsoir,
J'ai trouvé la solution A la une des questions Posée.
Public Sub Enregistrer ()
Dim configname (0 à 29) As String
configname (1) = Form1.TextBox_Bex.Text
configname (2) = Form1.TextBox_BalBlanc1.Text
configname (3) = Form1.TextBox_BalBlanc2.Text
configname (4) = Form1.TextBox_BalNoir.Text
configname (5) = Form1.TextBox_BalMire.Text
configname (6) = Form1.TextBox_Sortie1.Text
configname (7) = Form1.TextBox_Sortie2.Text
configname (8) = Form1.TextBox_Sortie3.Text
configname (9) = Form1.TextBox_Sortie4.Text
configname (10) = Form1.TextBox_Sortie5.Text
configname (11) = Form1.TextBox_Sortie6.Text
configname (12) = Form1.TextBox_Sortie7.Text
configname (13) = Form1.TextBox_Sortie8.Text
configname (14) = Form1.TextBox_EntGr1.Text
configname (15) = Form1.TextBox_EntGr2.Text
configname (16) = Form1.TextBox_EntGr3.Text
configname (17) = Form1.TextBox_EntGr4.Text
configname (18) = Form1.TextBox_EntGr5.Text
configname (19) = Form1.TextBox_EntGr6.Text
configname (20) = Form1.TextBox_EntGr7.Text
configname (21) = Form1.TextBox_EntGr8.Text
configname (22) = Form1.TextBox_Mem1.Text
configname (23) = Form1.TextBox_Mem2.Text
configname (24) = Form1.TextBox_Mem3.Text
configname (25) = Form1.TextBox_Mem4.Text
configname (26) = Form1.TextBox_Mem5.Text
configname (27) = Form1.TextBox_Mem6.Text
configname (28) = Form1.TextBox_Mem7.Text
configname (29) = Form1.TextBox_Mem8.Text
Dim i As Integer = 0
My.Computer.FileSystem.WriteAllText ( "D: \ Projets_de_Yves \ essais Projets \ AlexTest \ Config.yjp", "", False)
For i = 0 To 29
My.Computer.FileSystem.WriteAllText ( "D: \ Projets_de_Yves \ essais Projets \ AlexTest \ Config.yjp", configname (i) & ",", True)
Suivant
End Sub
Je mets une fausse La Bolène de fin d'instruction avant ma boucle et j'efface le contenu du fichier.
Puis je passe cette Bolène Un moment d'écrire au True ma boucle Dans le fichier.
Tout ne marche pas encore parfaitement mais cela avance ...
Les autres questions bien sur retent d'actualité.
@ + Yves
Marsh Posté le 04-01-2010 à 17:52:16
Bonjour
J'ai pas bien tout regardé (ni tout suivi!), mais après "For i", et les instrructions diverses, tu dois inscrire "Next i" pour revenir en boucle, pas "suivant"...
Marsh Posté le 14-01-2010 à 06:45:18
Bonjour
Je ne sais pas où tu en es avec tes commandes, néanmoins en retombant sur ton post, j'ai eu cette idée pour simplifier un peu sans taper toute la litanie:
(l'idéal serait d'écrire juste une commande du type :
For each TextBox in MaPage
if TextBox(Z).Text = "" Then TextBox(Z).Text = Label(Z).Text
Z = Z + 1 'ou Z = nom de la TextBox TextBox.Name par ex !!!
Next
je rêve, mais pt-être que qq chose d'approchant est possible?
Voilà toujours ta macro simplifiée:
Code :
|
(Quand on n'a qu'une seule commande après If, on la met sur la même ligne sans End If)
Pour la copier sans N° clique sur "voir code"
Cordialement
Marsh Posté le 14-01-2010 à 23:29:59
Laoo a écrit : |
On peut aussi double cliquer sur la fenêtre du code pour faire disparaitre les n° de ligne
Marsh Posté le 15-01-2010 à 10:18:40
otobox a écrit : |
GENIAL!! SUPER-GENIAL !!!
MAIS PRKOI KE TU ME L'AS PAS DIT AVANT ? ?
J'ADORE MERCI
Marsh Posté le 15-01-2010 à 16:32:38
Bonsoir Laoo,
je viens de lire ce post, je confirme ce que tu dis , GENIAL etc...jusqu'à MERCI inclus.
Marsh Posté le 15-01-2010 à 17:23:14
Laoo a écrit :
J'ADORE MERCI |
seniorpapou a écrit : Bonsoir Laoo, |
Merci, c'est sympa merciiiii
Edit : ceci dit, je l'ai déjà dit avant : faire une recherche sur mes post dans ce forum
Marsh Posté le 15-01-2010 à 21:51:12
Ohouai, mais j'tais pas né, hé! Enfin, j'étais pas là, j'connaissais pas ce forum.
Pis en plus, j'ai pas ACCESS! Cé hachement cher juste pour faire joujou! Mais j'ai bien envie quand même, un jour! Les bases de données, c'est le pied aussi. Bien qu'on puisse faire tellement de trucs avec Excel, du code et des idées! Tellement plus, même, et j'en connais pas encore le millionnième!
J'ai regardé ton post en référence, beau travail, maître, beau travail!
-----------------
pourquoi la photo de M Jonasz? juste comme ça? j'aime beaucoup. J'ai cru que c'était Arthur, au début. Sur cette photo il lui ressemble beaucoup.
A+
Marsh Posté le 15-01-2010 à 22:09:33
Les BD sont le pivot central de beaucoup d'applications. Tu devrais regarder ça, car de nouveaux horizons vont s'ouvrir à toi
Au boulot, beaucoup de trucs développés sous Excel par des utilisateurs, je les verrais plus performant sous Access? Bien que cette base de donnée n'est pas le top en la matière, mais ça permet de s'y faire les dents, c'est très accessible surtout pour des personnes comme toi qui pratiquent les outils informatiques d'une façon assez poussée !
Les tableaux, ce sont des captures d'écran hébergées par Imageshack
Jonasz, c'est en rapport avec le merci, c'est sympa merci de sa chanson, la boite de jazz.
Marsh Posté le 03-01-2010 à 12:59:55
Bonjour à tous et à toutes...
Voila ma question, je developpe une petite application ou des boutons portent le nom de variables pour permettre à l'utilisateur de donner à ces boutons des noms de son choix.
Pour cela j'ai créé des TextBox comportant le nom de ces variables.
Chaque TextBox comporte un Label, et si le TextBox est vide Il prend comme valeur le Label.text
Private Sub PanelMnemo_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PanelMnemo.Paint
If TextBox_Bex.Text = "" Then
TextBox_Bex.Text = Label_Bex.Text
End If
If TextBox_BalBlanc1.Text = "" Then
TextBox_BalBlanc1.Text = Label_BalBlanc1.Text
End If
If TextBox_BalBlanc2.Text = "" Then
TextBox_BalBlanc2.Text = Label_BalBlanc2.Text
End If
If TextBox_BalNoir.Text = "" Then
TextBox_BalNoir.Text = Label_BalNoir.Text
End If
If TextBox_BalMire.Text = "" Then
TextBox_BalMire.Text = Label_MireBarre.Text
End If
If TextBox_EntGr1.Text = "" Then
TextBox_EntGr1.Text = Label_Entree1.Text
End If
If TextBox_EntGr2.Text = "" Then
TextBox_EntGr2.Text = Label_Entree2.Text
End If
If TextBox_EntGr3.Text = "" Then
TextBox_EntGr3.Text = Label_Entree3.Text
End If
If TextBox_EntGr4.Text = "" Then
TextBox_EntGr4.Text = Label_Entree4.Text
End If
If TextBox_EntGr5.Text = "" Then
TextBox_EntGr5.Text = Label_Entree5.Text
End If
If TextBox_EntGr6.Text = "" Then
TextBox_EntGr6.Text = Label_Entree6.Text
End If
If TextBox_EntGr7.Text = "" Then
TextBox_EntGr7.Text = Label_Entree7.Text
End If
If TextBox_EntGr8.Text = "" Then
TextBox_EntGr8.Text = Label_Entree8.Text
End If
If TextBox_Mem1.Text = "" Then
TextBox_Mem1.Text = Label_Mem1.Text
End If
If TextBox_Mem2.Text = "" Then
TextBox_Mem2.Text = Label_Mem2.Text
End If
If TextBox_Mem3.Text = "" Then
TextBox_Mem3.Text = Label_Mem3.Text
End If
If TextBox_Mem4.Text = "" Then
TextBox_Mem4.Text = Label_Mem4.Text
End If
If TextBox_Mem5.Text = "" Then
TextBox_Mem5.Text = Label_Mem5.Text
End If
If TextBox_Mem6.Text = "" Then
TextBox_Mem6.Text = Label_Mem6.Text
End If
If TextBox_Mem7.Text = "" Then
TextBox_Mem7.Text = Label_Mem7.Text
End If
If TextBox_Mem8.Text = "" Then
TextBox_Mem8.Text = Label_Mem8.Text
End If
If TextBox_Sortie1.Text = "" Then
TextBox_Sortie1.Text = Label_Sortie1.Text
End If
If TextBox_Sortie2.Text = "" Then
TextBox_Sortie2.Text = Label_Sortie2.Text
End If
If TextBox_Sortie3.Text = "" Then
TextBox_Sortie3.Text = Label_Sortie3.Text
End If
If TextBox_Sortie4.Text = "" Then
TextBox_Sortie4.Text = Label_Sortie4.Text
End If
If TextBox_Sortie5.Text = "" Then
TextBox_Sortie5.Text = Label_Sortie5.Text
End If
If TextBox_Sortie6.Text = "" Then
TextBox_Sortie6.Text = Label_Sortie6.Text
End If
If TextBox_Sortie7.Text = "" Then
TextBox_Sortie7.Text = Label_Sortie7.Text
End If
If TextBox_Sortie8.Text = "" Then
TextBox_Sortie8.Text = Label_Sortie8.Text
End If
End Sub
J'aurais du le faire avec un ableau et une boucle mais je n'y suis pas parvenu. Je m'y repencherais plus tard.
Pour ne pas avoir à retapper le nom de chque bouton à chaque lancement (pas tres cool) J'ai trouvé sur un forum une méthode pour écrir dans un fichier Texte des valeurs Puis une autre méthode pour lire le contenu de ce fichier texte.
'Module permetant de creer un fichier config
Module RecConfig
'Sub Permetant d'ecrire dans un fichier
Public Sub Record()
Dim configName(0 To 11) As String
configName(1) = Form1.TextBox_Bex.Text
My.Computer.FileSystem.WriteAllText("C:\testfile.txt", "," & configName(1), True)
End Sub
'Sub permetant de lire le contenu d'un fichier
Public Sub Read()
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\testfile.txt" )
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters("," )
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & _
"Text non valide, Il est ignoré." )
End Try
End While
End Using
End Sub
End Module
Tout cela fonctionne tres bien mais actuellement comme vous pouvez le voir la sortie de mon tableau affiche un MsgBox car je n'ai pas réussi à le diriger vers mon fichier Texte.
Donc
Question 1 comment écrire dans mon tableau ? (Mon code devrait marcher mais non...)
Question 2 Comment relire ce tableau et ecrir ces valeur dans un autre tableau .
Qiestion 3 Comment Effacer le contenu de mon Fichier Text avant chaque ecriture pour le reinitaliser. Car pour le moment chaque edition du fichier Texte viens s'ajouter a la suite au lieu de le remplacer.
Merci de vos reponses.
Yves
Message édité par Astondb8 le 03-01-2010 à 16:43:57