Exploiter un fichier texte situé dans les ressources du programmes [Résolu]

Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
- - Dernière réponse : cs_aus3004
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
- 5 mai 2010 à 12:09
Bonjour, je crée en ce moment un système de favoris pour mon navigateur Internet.

Le problème c'est qu'actuellement le fichier nommé "Favoris.ini" qui est exploité pour stocker les favoris, utilise

FileOpen(1, "C:\Favoris.ini", OpenMode.Input)

Cela fait que le fichier "Favoris.ini" n'est pas exploité comme ressource et il doit se trouver dans C:\ ce qui n'est pas pratique du tout.

J'ai longtemps cherché une solution, mais c'est plus compliqué que ce que l'on pense une fois que l'on regarde mon code :

i = 1 'Lecture du fichier de données
Try
FileOpen(1, "C:\Favoris.ini", OpenMode.Input)
While Not EOF(1)
data(1, i) = LineInput(1)
data(2, i) = LineInput(1)
data(3, i) = LineInput(1)
data(4, i) = LineInput(1)
i = i + 1
End While
Catch
Finally
NbData = i - 1
FileClose(1)
End Try

'Comptage du nombre de listes déroulantes
s = ""
NbListes = 0
j = -1
For i = 1 To NbData
j = j + 1
If data(1, i) <> s Then
If NbListes <> 0 Then
NDparListe(NbListes) = j
j = 0
End If
s = data(1, i)
NbListes = NbListes + 1
NomListes(NbListes) = s
End If
Next
NDparListe(NbListes) = j + 1

'Initialisation de la box des favoris
If NbListes >= 1 Then
l1.Clear()
For i = 1 To NDparListe(1)
l1.Add(data(2, i))
Next i
ComboBox1.DataSource = l1
ComboBox1.Enabled = True
End If
End Sub

Private Sub Form1_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
MAJListes() ' La liste des Favoris
End Sub

Public Function DonneURL(ByVal s As String) As String
Dim ds As String
Dim res As String = ""
FileOpen(1, "C:\Favoris.ini", OpenMode.Input)
While Not EOF(1)
ds = LineInput(1)
If ds s Then res LineInput(1)
End While
FileClose(1)
Return res
End Function
Afficher la suite 

20/25 réponses

Meilleure réponse
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
3
Merci
MERCI BEAUCOUP, J'AI REGLE LE PROBLEME CA MARCHE TRES BIEN !!!!


Il faut mettre :

FileOpen(1, Favoris, OpenMode.Input)

Et dans la sauvegarde :

FileOpen(1, Favoris, OpenMode.Output)

Et bien penser à mettre la propriété du fichier texte : copier =) Toujours copier

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Voici une solution,
En mettant votre fichier ini dans le dossier debug avec ce code:

Dim Favoris= My.Application.Info.DirectoryPath & "\Favoris.ini" 'chemin du fichier texte
et
FileOpen(1, Favoris, OpenMode.Append)

Pour plus de détail voir ma source "NotifyIcon"
@+Le Pivert
Commenter la réponse de cs_Le Pivert
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Il faut lire OpenMode.Input à la place OpenMode.Append. j'ai fait un copier-coller de ma source que je n'ai pas rectifié.
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
Oui, merci ca fonctionne impecable pour afficher les favoris, mais je dispose d'un second formulaire destiné à les modifier.
Et là... ca bloque !
Lorsque j'applique

Dim Favoris= My.Application.Info.DirectoryPath & "\Favoris.ini" 'chemin du fichier texte

et

FileOpen(1, Favoris, OpenMode.Input)

il y a marqué deux erreurs :

- Une valeur de type 'System.Windows.Forms.DataGridViewTextBoxColumn' ne peut pas être convertie en 'String'.

- 'Favoris' est déjà déclaré en tant que 'Friend WithEvents favoris As System.Windows.Forms.DataGridViewTextBoxColumn' dans ce class.

Voici mon code, à mon avis ca doit être une petite erreur de déclaration.

Public Class Form2
Dim i As Integer
Dim data(4, 100) As String 'Tableau de données
Dim NbData As Integer 'Nombre de références dans les onglets
Dim DimCol As Integer
Dim Favoris = My.Application.Info.DirectoryPath & "\Favoris.ini" 'chemin du fichier texte

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Sauvegarde()
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Lecture du fichier de données
Dim s1, s2, s3, s4 As String
Try
FileOpen(1, favoris, OpenMode.Input)
Do
s1 = LineInput(1)
s2 = LineInput(1)
s3 = LineInput(1)
s4 = LineInput(1)
DataGridView1.Rows.Add(New String() {s1, s2, s3, s4})
Loop Until EOF(1)
Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
ToolStripTextBox1.Text = DataGridView1.CurrentCell.Value
ToolStripTextBox1.Focus()
End Sub

Private Sub ToolStripTextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ToolStripTextBox1.KeyPress
If Asc(e.KeyChar) = 13 Then
DataGridView1.CurrentCell.Value = ToolStripTextBox1.Text
End If
End Sub

Public Sub Sauvegarde()
'Sauvegarde dans le fichier Favoris.ini
Dim boucle As Boolean
boucle = True
Try
FileOpen(1, favoris, OpenMode.Input)
For i = 0 To DataGridView1.Rows.Count - 1
Dim row As DataGridViewRow = DataGridView1.Rows(i)
If row.Cells(0).Value + row.Cells(1).Value + row.Cells(2).Value + row.Cells(3).Value <> "" Then
PrintLine(1, row.Cells(0).Value)
PrintLine(1, row.Cells(1).Value)
PrintLine(1, row.Cells(2).Value)
PrintLine(1, row.Cells(3).Value)
End If
Next
Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Sauvegarde()
Me.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Je pense que dans:
Public Sub Sauvegarde()
Il faut changer
FileOpen(1, favoris, OpenMode.Input)'lecture du fichier
par
FileOpen(1, favoris, OpenMode.Append)'fichier ouvert pour être ajouté
Ou
FileOpen(1, favoris, OpenMode.Output) 'fichier ouvert pour accès à l'écriture
@+
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
Désolé mais ca marche pas
Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Favoris est déclaré comme cela et ensuite dans l'utilisation on retrouve: favoris comme cela en 1ère lettre minuscule est-ce que cela ne viendrait pas de là
@+
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
Si, cela m'inquiète car dès que j'écris le "f" en majuscule il redevient en minuscule automatiquement.
Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Je ne comprends pas car dans mon programme "NotifyIcon" la déclaration est la même et dans le code le terme est repris exactement pareil:
Pour exemple
Dim FAVORI_TXT = My.Application.Info.DirectoryPath & "\Favoris.txt" 'chemin du fichier texte
' on enregistre le chemin de l'URL dans le fichier texte 'Favoris'
Private Sub btnurl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnurl.Click
' on enregistre l'adresse dans un fichier texte
If Textname.Text "" Or txtFile.Text "" Then
MsgBox("Tous les champs sont obligatoires pour entrer une nouvelle adresse", MsgBoxStyle.Critical, "Attention")
Exit Sub
Else
ligne = Textname.Text & "," & txtFile.Text & "," & "0"
FileOpen(1, FAVORI_TXT, OpenMode.Append)
PrintLine(1, ligne)
FileClose(1)
MsgBox("N'oubliez pas d'actualiser la liste déroulante.")
Me.Hide()
End If
End Sub
' on enregistre le chemin de la clé dans le fichier texte 'Favoris'
Private Sub btnsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsave.Click
' on enregistre l'adresse dans un fichier texte
If Textname.Text "" Or txtFile.Text "" Then
MsgBox("Tous les champs sont obligatoires pour entrer une nouvelle adresse", MsgBoxStyle.Critical, "Attention")
Exit Sub
Else
ligne = Textname.Text & "," & txtFile.Text & "," & "1"
FileOpen(1, FAVORI_TXT, OpenMode.Append)
PrintLine(1, ligne)
FileClose(1)
MsgBox("N'oubliez pas d'actualiser la liste déroulante.")
Me.Hide()
End If
End Sub
Vous remarquerez que FAVORI_TXT est écrit de la même façon!
Commenter la réponse de cs_Le Pivert
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
En voyant les 2 codes je me demande si:
FileOpen(1, favoris, OpenMode.Append) est à la bonne place et ne devrait pas se situer avant:
PrintLine(1, row.Cells(0).Value)
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
J'ai modifié le code en inversant comme vous le pensez mais il y a marqué toujours les quatre (2 x les 2) erreurs :

- Une valeur de type 'System.Windows.Forms.DataGridViewTextBoxColumn' ne peut pas être convertie en 'String'.

- 'Favoris' est déjà déclaré en tant que 'Friend WithEvents favoris As System.Windows.Forms.DataGridViewTextBoxColumn' dans ce class.

------------------------------------ Code ---------------------------------------------
Public Class Form2
Dim i As Integer
Dim data(4, 100) As String 'Tableau de données
Dim NbData As Integer 'Nombre de références dans les onglets
Dim DimCol As Integer
Dim Favoris = My.Application.Info.DirectoryPath & "\Favoris.ini" 'chemin du fichier texte

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Sauvegarde()
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Lecture du fichier de données
Dim s1, s2, s3, s4 As String

Do
s1 = LineInput(1)
s2 = LineInput(1)
s3 = LineInput(1)
s4 = LineInput(1)
DataGridView1.Rows.Add(New String() {s1, s2, s3, s4})
Loop Until EOF(1)
Try
FileOpen(1, favoris, OpenMode.Output)
Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
ToolStripTextBox1.Text = DataGridView1.CurrentCell.Value
ToolStripTextBox1.Focus()
End Sub

Private Sub ToolStripTextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ToolStripTextBox1.KeyPress
If Asc(e.KeyChar) = 13 Then
DataGridView1.CurrentCell.Value = ToolStripTextBox1.Text
End If
End Sub

Public Sub Sauvegarde()
'Sauvegarde dans le fichier Favoris.ini
Dim boucle As Boolean
boucle = True

For i = 0 To DataGridView1.Rows.Count - 1
Dim row As DataGridViewRow = DataGridView1.Rows(i)
If row.Cells(0).Value + row.Cells(1).Value + row.Cells(2).Value + row.Cells(3).Value <> "" Then
PrintLine(1, row.Cells(0).Value)
PrintLine(1, row.Cells(1).Value)
PrintLine(1, row.Cells(2).Value)
PrintLine(1, row.Cells(3).Value)
End If
Next
Try
FileOpen(1, favoris, OpenMode.Output)
Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Sauvegarde()
Me.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Le code c-dessus ne va pas du tout, il vaut mieux revenir au précédent.C'était dans le module Sauvegarde qu'il fallait changer et mettre:

FileOpen(1, favoris, OpenMode.Append)
devant
PrintLine(1, row.Cells(0).Value)

La lecture du fichier fonctionne elle très bien. Elle est dans un autre Form donc une autre Class et la déclaration du fichier Favoris est correcte.Donc il faudrait voir de ce côté là si dans le Form2 il n'y a pas de différences de déclaration
@+
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
Je ne comprend pas car dans le code initial FileOpen (1, favoris, OpenMode.Append) est déjà devant PrintLine (1, row.Cells(0).Value). Si vous pensez qu'il s'agit de l'erreur pouvez-vous recopier le code avec la modification apportée.

Le code initial :

Public Class Form2
Dim i As Integer
Dim data(4, 100) As String 'Tableau de données
Dim NbData As Integer 'Nombre de références dans les onglets
Dim DimCol As Integer
Dim Favoris = My.Application.Info.DirectoryPath & "\Favoris.ini" 'chemin du fichier texte

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Sauvegarde()
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Lecture du fichier de données
Dim s1, s2, s3, s4 As String
Try
FileOpen(1, favoris, OpenMode.Output)
Do
s1 = LineInput(1)
s2 = LineInput(1)
s3 = LineInput(1)
s4 = LineInput(1)
DataGridView1.Rows.Add(New String() {s1, s2, s3, s4})
Loop Until EOF(1)

Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
ToolStripTextBox1.Text = DataGridView1.CurrentCell.Value
ToolStripTextBox1.Focus()
End Sub

Private Sub ToolStripTextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ToolStripTextBox1.KeyPress
If Asc(e.KeyChar) = 13 Then
DataGridView1.CurrentCell.Value = ToolStripTextBox1.Text
End If
End Sub

Public Sub Sauvegarde()
'Sauvegarde dans le fichier Favoris.ini
Dim boucle As Boolean
boucle = True
Try
FileOpen(1, favoris, OpenMode.Output)
Catch
For i = 0 To DataGridView1.Rows.Count - 1
Dim row As DataGridViewRow = DataGridView1.Rows(i)
If row.Cells(0).Value + row.Cells(1).Value + row.Cells(2).Value + row.Cells(3).Value <> "" Then
PrintLine(1, row.Cells(0).Value)
PrintLine(1, row.Cells(1).Value)
PrintLine(1, row.Cells(2).Value)
PrintLine(1, row.Cells(3).Value)
End If
Next

Finally
FileClose(1)
End Try
End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Sauvegarde()
Me.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Essayez cela:
Public Class Form2
Dim i As Integer
Dim data(4, 100) As String 'Tableau de données
Dim NbData As Integer 'Nombre de références dans les onglets
Dim DimCol As Integer
Dim Favoris = My.Application.Info.DirectoryPath & "\Favoris.ini" 'chemin du fichier texte

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Sauvegarde()
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Lecture du fichier de données
Dim s1, s2, s3, s4 As String
Try
FileOpen(1, Favoris, OpenMode.Input)
Do
s1 = LineInput(1)
s2 = LineInput(1)
s3 = LineInput(1)
s4 = LineInput(1)
DataGridView1.Rows.Add(New String() {s1, s2, s3, s4})
Loop Until EOF(1)

Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
ToolStripTextBox1.Text = DataGridView1.CurrentCell.Value
ToolStripTextBox1.Focus()
End Sub

Private Sub ToolStripTextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ToolStripTextBox1.KeyPress
If Asc(e.KeyChar) = 13 Then
DataGridView1.CurrentCell.Value = ToolStripTextBox1.Text
End If
End Sub

Public Sub Sauvegarde()
'Sauvegarde dans le fichier Favoris.ini
Dim boucle As Boolean
boucle = True
Try
For i = 0 To DataGridView1.Rows.Count - 1
Dim row As DataGridViewRow = DataGridView1.Rows(i)
If row.Cells(0).Value + row.Cells(1).Value + row.Cells(2).Value + row.Cells(3).Value <> "" Then
FileOpen(1, favoris, OpenMode.Append)
PrintLine(1, row.Cells(0).Value)
PrintLine(1, row.Cells(1).Value)
PrintLine(1, row.Cells(2).Value)
PrintLine(1, row.Cells(3).Value)
End If
Next
Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Sauvegarde()
Me.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
J'ai copié votre code et les deux mêmes erreurs apparaîssent.
Après de longues recherches sur le net, j'ai rien trouvé d'util...

Peut être que la structure du code ne supporte pas ces modifications, alors il faudrait songer à refaire tout le code ???

Merci et bonne soirée
Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Si tout fonctionnait correctement avant le changement de chemin il faut vous pencher sur la déclaration de la variable "Favoris"
Peut-être en la déclarant differement:
Dim file As String
file = My.Application.Info.DirectoryPath & "\Favoris.ini" 'chemin du fichier texte
FileOpen(1, file, OpenMode.Append)
@+
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
Merci, ces modifications éliminent les erreurs mais maintenant ou dois-je placer le fichier "Favoris.ini" ??
Commenter la réponse de cs_aus3004
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Pouvez-vous remplir et lire votre fichier ini?
Si oui je pense qu'on peut essayer de le mettre dans les Resources comme vos exe et l'appeler de la même manière.
'déclaration
Dim fichier As String
fichier = Application.StartupPath & "\Resources\Favoris.exe") 'chemin du fichier

et là ne changez que fichier à la place du chemin en dur
FileOpen(1, "C:\Favoris.ini", OpenMode.Input)
Comme cela
FileOpen(1, fichier, OpenMode.Input)
@+
Commenter la réponse de cs_Le Pivert
Messages postés
6299
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
87
0
Merci
Lire Favoris.ini à la place de Favoris.exe
Commenter la réponse de cs_Le Pivert
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
0
Merci
Maintenant le formulaire des favoris affiche bien les favoris et il est possible de les modifier mais lorsque l'on quitte le formulaire les modifications apportées ne sont pas sauvegardées.

Faut voir l'erreur dans le code de la sauvegarde logiquement.
Dernière version du code :

Public Class Form2
Dim i As Integer
Dim data(4, 100) As String 'Tableau de données
Dim NbData As Integer 'Nombre de références dans les onglets
Dim DimCol As Integer
Dim file As String

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Sauvegarde()
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
file = Application.StartupPath & "\Resources\Favoris.ini"
'Lecture du fichier de données
Dim s1, s2, s3, s4 As String
Try
FileOpen(1, file, OpenMode.Input)

Do
s1 = LineInput(1)
s2 = LineInput(1)
s3 = LineInput(1)
s4 = LineInput(1)
DataGridView1.Rows.Add(New String() {s1, s2, s3, s4})
Loop Until EOF(1)

Catch
Finally
FileClose(1)
End Try
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
ToolStripTextBox1.Text = DataGridView1.CurrentCell.Value
ToolStripTextBox1.Focus()
End Sub

Private Sub ToolStripTextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ToolStripTextBox1.KeyPress
If Asc(e.KeyChar) = 13 Then
DataGridView1.CurrentCell.Value = ToolStripTextBox1.Text
End If
End Sub

Public Sub Sauvegarde()
'Sauvegarde dans le fichier Favoris.ini
Dim boucle As Boolean
boucle = True
Try
For i = 0 To DataGridView1.Rows.Count - 1
Dim row As DataGridViewRow = DataGridView1.Rows(i)
If row.Cells(0).Value + row.Cells(1).Value + row.Cells(2).Value + row.Cells(3).Value <> "" Then
FileOpen(1, file, OpenMode.Input)

PrintLine(1, row.Cells(0).Value)
PrintLine(1, row.Cells(1).Value)
PrintLine(1, row.Cells(2).Value)
PrintLine(1, row.Cells(3).Value)
End If
Next
Catch
Finally
FileClose(1)
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
Commenter la réponse de cs_aus3004