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

Signaler
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
-
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
-
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

25 réponses

Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
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
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
Il faut lire OpenMode.Input à la place OpenMode.Append. j'ai fait un copier-coller de ma source que je n'ai pas rectifié.
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
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
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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
@+
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
Désolé mais ca marche pas
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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à
@+
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
Si, cela m'inquiète car dès que j'écris le "f" en majuscule il redevient en minuscule automatiquement.
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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!
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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)
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
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
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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
@+
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
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
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
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
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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)
@+
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
Merci, ces modifications éliminent les erreurs mais maintenant ou dois-je placer le fichier "Favoris.ini" ??
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
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)
@+
Messages postés
6984
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2020
114
Lire Favoris.ini à la place de Favoris.exe
Messages postés
319
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
16 mars 2011
1
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