Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de la méthode SPLIT()

3 réponses
Avatar
Guy Lafrenière
Bonjour collègues,

Dans ma form j'ai un contrôle DataGridView nommé dgvRuban.
Dans un fichier texte j'ai les valeurs de chaque ligne du DataGrid séparées
par le caractère point-virgule, chaque ligne étant séparée par un retour
chariot.

Je veux récupérer les valeurs en utilisant la méthode Split de façon à
placer chaque valeur dans la colonne du DataGrid qui lui correspond. Je
n'arrive pas à écrire correctement la méthode Split. J'obtiens le message
"La référence d'objet n'est pas définie à une instance d'un objet". L'aide
locale ou en ligne ne m'a pas été d'un grand secours.

Une aide serait très appréciée.

Vous trouverez mon code après ma signature.

Merci!

Guy Lafrenière



Private Sub Ouvrir_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles Ouvrir.Click

Dim strNomFichier As String, strLigne As String, strData As String()

strNomFichier = "C:\Valeurs.txt"

' Vider le contenu précédent du DataGrid et repartir de rien.
With dgvRuban
.RowCount = 1
.Height = intRubanHeight ' Hauteur d'une ligne du DataGrid
.Top = intRubanTop ' Propriété Top du DataGrid
intCurrentRow = 0 ' Pour référence ailleurs dans le
programme
End With

Using sr As StreamReader = New StreamReader(strNomFichier)

Do
strLigne = sr.ReadLine()
strData = strLigne.Split(New [Char]() {";"c})
AddRow() ' Méthode personnelle pour ajouter une ligne au
DataGrid
' et en définir le style. Cette méthode
ajoute 1 à la valeur
' de la variable intCurrentRow à chaque
passage.
With dgvRuban
.Rows(intCurrentRow).Cells(0).Value = strData(0)
.Rows(intCurrentRow).Cells(1).Value = strData(1)
.Rows(intCurrentRow).Cells(2).Value = strData(2)
.Rows(intCurrentRow).Cells(3).Value = strData(3)
End With
Loop Until strLigne Is Nothing

sr.Close()

End Using

End Sub

3 réponses

Avatar
Fred
Dans : news:%,
Guy Lafrenière disait :
Bonjour collègues,



Bonjour,

Je n'arrive pas à écrire correctement la méthode Split. J'obtiens le
message "La référence d'objet n'est pas définie à une instance d'un
objet". L'aide locale ou en ligne ne m'a pas été d'un grand secours.



À quel endroit ?

Je ne vois pas d'erreur évidente. Ne serait-ce pas dans le code de
AddRow ?
Sinon, je crois que tu pexu écrire plus simplement :

strData = strLigne.Split(";")


--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Millox Frédéric
Bonjour,

ta boucle de sortie ( Loop Until strLigne Is Nothing ) est bonne, le seul
problème est quelle se fait à la fin...donc strLigne.Split te retourne bien
le message
"La référence d'objet n'est pas définie à une instance d'un objet" lorsque
tu es en fin de fichier.

A+

--
fmillox


"Guy Lafrenière" a écrit :

Bonjour collègues,

Dans ma form j'ai un contrôle DataGridView nommé dgvRuban.
Dans un fichier texte j'ai les valeurs de chaque ligne du DataGrid séparées
par le caractère point-virgule, chaque ligne étant séparée par un retour
chariot.

Je veux récupérer les valeurs en utilisant la méthode Split de façon à
placer chaque valeur dans la colonne du DataGrid qui lui correspond. Je
n'arrive pas à écrire correctement la méthode Split. J'obtiens le message
"La référence d'objet n'est pas définie à une instance d'un objet". L'aide
locale ou en ligne ne m'a pas été d'un grand secours.

Une aide serait très appréciée.

Vous trouverez mon code après ma signature.

Merci!

Guy Lafrenière



Private Sub Ouvrir_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles Ouvrir.Click

Dim strNomFichier As String, strLigne As String, strData As String()

strNomFichier = "C:Valeurs.txt"

' Vider le contenu précédent du DataGrid et repartir de rien.
With dgvRuban
.RowCount = 1
.Height = intRubanHeight ' Hauteur d'une ligne du DataGrid
.Top = intRubanTop ' Propriété Top du DataGrid
intCurrentRow = 0 ' Pour référence ailleurs dans le
programme
End With

Using sr As StreamReader = New StreamReader(strNomFichier)

Do
strLigne = sr.ReadLine()
strData = strLigne.Split(New [Char]() {";"c})
AddRow() ' Méthode personnelle pour ajouter une ligne au
DataGrid
' et en définir le style. Cette méthode
ajoute 1 à la valeur
' de la variable intCurrentRow à chaque
passage.
With dgvRuban
.Rows(intCurrentRow).Cells(0).Value = strData(0)
.Rows(intCurrentRow).Cells(1).Value = strData(1)
.Rows(intCurrentRow).Cells(2).Value = strData(2)
.Rows(intCurrentRow).Cells(3).Value = strData(3)
End With
Loop Until strLigne Is Nothing

sr.Close()

End Using

End Sub





Avatar
Guy Lafrenière
Bonjour Fred et Millox Frédéric,

Je vous remercie d'avoir pris le temps de me répondre.

Grâce à vos informations j'ai pu régler mon problème.

Guy Lafrenière


"Guy Lafrenière" a écrit dans le message de
news: %
Bonjour collègues,

Dans ma form j'ai un contrôle DataGridView nommé dgvRuban.
Dans un fichier texte j'ai les valeurs de chaque ligne du DataGrid
séparées par le caractère point-virgule, chaque ligne étant séparée par un
retour chariot.

Je veux récupérer les valeurs en utilisant la méthode Split de façon à
placer chaque valeur dans la colonne du DataGrid qui lui correspond. Je
n'arrive pas à écrire correctement la méthode Split. J'obtiens le message
"La référence d'objet n'est pas définie à une instance d'un objet". L'aide
locale ou en ligne ne m'a pas été d'un grand secours.

Une aide serait très appréciée.

Vous trouverez mon code après ma signature.

Merci!

Guy Lafrenière



Private Sub Ouvrir_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles Ouvrir.Click

Dim strNomFichier As String, strLigne As String, strData As String()

strNomFichier = "C:Valeurs.txt"

' Vider le contenu précédent du DataGrid et repartir de rien.
With dgvRuban
.RowCount = 1
.Height = intRubanHeight ' Hauteur d'une ligne du DataGrid
.Top = intRubanTop ' Propriété Top du DataGrid
intCurrentRow = 0 ' Pour référence ailleurs dans
le programme
End With

Using sr As StreamReader = New StreamReader(strNomFichier)

Do
strLigne = sr.ReadLine()
strData = strLigne.Split(New [Char]() {";"c})
AddRow() ' Méthode personnelle pour ajouter une ligne au
DataGrid
' et en définir le style. Cette méthode
ajoute 1 à la valeur
' de la variable intCurrentRow à chaque
passage.
With dgvRuban
.Rows(intCurrentRow).Cells(0).Value = strData(0)
.Rows(intCurrentRow).Cells(1).Value = strData(1)
.Rows(intCurrentRow).Cells(2).Value = strData(2)
.Rows(intCurrentRow).Cells(3).Value = strData(3)
End With
Loop Until strLigne Is Nothing

sr.Close()

End Using

End Sub