Problème d'import/export multiline avec une DataGridView

Fermé
S.VLLAND Messages postés 1 Date d'inscription lundi 8 avril 2019 Statut Membre Dernière intervention 8 avril 2019 - Modifié le 9 avril 2019 à 08:35
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 9 avril 2019 à 07:21
Bonjour à toutes et à tous,

Voila je suis plutôt débutant dans le domaine et à vrai dire je me suis mis une épine dans le pied.
Je vous expose mon problème sur vb.net .
Je me conçois un petit logiciel afin de me simplifier la vie et malheureusement je tombe sur un hic sur l'import/export de ma DataGridView. Effectivement sur l'une de mes cellules, la DataGridView accepte le multiline. L'exportation en fichier extérieur se passe bien mais au moment de l'importation ma ligne de commande n'arrive pas à reproduire l'original. Il ne fait pas de multiline.

Exemple :
Tableau d'origine :
__________________________________
Colonne 1 | Colonne 2 | Colonne 3|
__________________________________
élément 1 | élément 2 | élément 3 (saut à ligne) élément 4 (saut à ligne) élément 5|
__________________________________
élément 6 | élément7 | élément 8 |
__________________________________

Tableau obtenu après importation :
__________________________________
Colonne 1 | Colonne 2 | Colonne 3|
__________________________________
élément 1 | élément 2 | élément 3 |
__________________________________
élément 4 | vide | vide |
__________________________________
élément 5 | vide | vide |
__________________________________
élément 6 | élément7 | élément 8 |
__________________________________

De plus, je vous donne mes commandes d'import et d'esport :

Donc pour l'import, j'ai fait :
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            If DataGridView1.Rows.Count > 0 Then
                Dim save As New SaveFileDialog
                save.Filter = "Fichier Texte|*.sabext"
                save.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
                If save.ShowDialog = Windows.Forms.DialogResult.OK Then
                    Using writer As New StreamWriter(save.FileName)
                        Dim rowcount As Integer = DataGridView1.Rows.Count
                        Dim i As Integer = 0
                        Do While (i < (rowcount - 1))
                            writer.WriteLine((DataGridView1.Rows(i).Cells(0).Value.ToString + (" " & "%%" _
                                        + (DataGridView1.Rows(i).Cells(1).Value.ToString + (" " & "%%" + DataGridView1.Rows(i).Cells(2).Value.ToString + (" " & "%%" _
                                       + DataGridView1.Rows(i).Cells(3).Value.ToString + (" " & "%%" + DataGridView1.Rows(i).Cells(4).Value.ToString + (" " & "%%" _
                                      + DataGridView1.Rows(i).Cells(5).Value.ToString + (" " & "%%" + DataGridView1.Rows(i).Cells(6).Value.ToString + (" " & "%%" _
                                     + DataGridView1.Rows(i).Cells(7).Value.ToString + (" " & "%%" + DataGridView1.Rows(i).Cells(8).Value.ToString + (" " & "%%" _
                                    + DataGridView1.Rows(i).Cells(9).Value.ToString + (" " & "%%" + DataGridView1.Rows(i).Cells(10).Value.ToString + " " & "%%")))))))))))))
                            i = (i + 1)
                        Loop
                        writer.Close()
                    End Using
                    MessageBox.Show("Fichier Sauvegarder", "Sauvegarder!")
                Else : Exit Sub
                End If
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Erreur")
        End Try
    End Sub 



Et pour l'import :

  Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Try
            Dim open As New OpenFileDialog
            open.Filter = "Fichier Texte|*.sabext"
            open.FileName = "DataGridView1"
            open.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
            If open.ShowDialog = Windows.Forms.DialogResult.OK Then
                Using reader As New StreamReader(open.FileName)
                    Dim TextLine As String = ""
                    Dim SplitLine() As String
                    Do While reader.Peek <> -1
                        TextLine = reader.ReadLine()
                        SplitLine = Split(TextLine, " " & "%%")
                        DataGridView1.Rows.Add(SplitLine)
                    Loop
                    reader.Close()
                End Using
                MessageBox.Show("Fichier charger", "Chargement")
            Else : Exit Sub
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Erreur")
        End Try
    End Sub 


Donc auriez*vous une petite idée pour pouvoir résoudre mon problème ?

Merci pour votre aide.






*Pour une meilleure lisibilité texte modifié par la modération voir cette page

1 réponse

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
9 avril 2019 à 07:21
Bonjour
Pour tes prochains messages merci de lire et d’appliquer ce qui est décrit là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Peux tu poster une capture d’écran de ton fichier ouvert par un éditeur de texte matérialisant les caractères invisibles (notepad++ par exemple)?
0