Enregistrersous

Résolu
KIPRE74 Messages postés 120 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 21 novembre 2013 - 20 août 2008 à 16:05
cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 - 21 août 2008 à 12:02
Bonjour,

J'ai un datagrid que j'essaie d'enregitrersous un nom fichier.xml. j'y arrive le problème je n'arrive pas à ouvrir le fichier ainsi créé, je reçois le message d'erreur "La page XML ne peut pas être affichée";

Voici mon code :

'Code de la fonction enregistrer
Private Function Enregistrer(ByVal wFichier As String) As Boolean 'La fonction Enregistrer prend en paramètre
'le nom du fichier à enregistrer et y place le contenu de la zone de saisie. Si le fichier existe déjà
'il est remplacé, sinon il est créé

Dim wFile As System.IO.StreamWriter
Try
wFile = New System.IO.StreamWriter(wFichier)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
Return False
End Try

Try
wFile.Write(dgGrid.Text)
Catch ex As Exception
wFile.Close()
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
Return False
End Try
wFile.Close()
End Function

'Code de la fonction EnregistrerSous. Cette fonction ouvre une boite de dialogue
Private Function EnregistrerSous() As Boolean

Dim wSaveFileDialog As New SaveFileDialog()
Dim wFlag As Boolean

wSaveFileDialog.FileName = pFichierEnCours

wSaveFileDialog.Filter = "Fichiers Xml(Xml)|*.xml|Tous les fichiers|*.*"

If wSaveFileDialog.ShowDialog = Windows.Forms.DialogResult.OK Then

If Enregistrer(wSaveFileDialog.FileName) Then

wFlag = True

pFichierEnCours = wSaveFileDialog.FileName

'SB_Fichier.Text = System.IO.Path.GetFileName(pFichierEnCours)

End If
End If
wSaveFileDialog.Dispose()

Return wFlag
End Function

Merci pour votre aide

4 réponses

cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
20 août 2008 à 17:49
Salut ,
pourquoi faire deux try ? Et puis, le créer avant ce serait mieux

   'Code de la fonction enregistrer
    PrivateFunction Enregistrer(ByVal wFichier As String) As Boolean'La fonction Enregistrer prend en paramètre
        'le nom du fichier à enregistrer et y place le contenu de la zone de saisie. Si le fichier existe déjà
        'il est remplacé, sinon il est créé
        
        Dim LeFichierFinal AsNew IO.FileInfo(wFichier)
        Not LeFichierFinal.Exists Then'On crée le fichier si il n'existe pas
            Dim Resultat As System.IO.FileStream
            Resultat = LeFichierFinal.Create
            Resultat.Close()
        If

        Dim wFile AsNew IO.StreamWriter(wFichier)
        Try
            wFile.Write(dgGrid.Text)
        Catch ex As Exception
            wFile.Close()
            MsgBox(ex.Message, MsgBoxStyle.Exclamation)
            ReturnFalse
        EndTry
        wFile.Close()
        ReturnTrue
    End Function

A+

Antho 25
------------------------------------
Rien n'empêche Melba
3
cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
21 août 2008 à 12:02
 Essaye aussi ça, mais ça ne devrait rien changer ...

'Code de la fonction EnregistrerSous. Cette fonction ouvre une boite de dialogue


    Private Function EnregistrerSous() As Boolean

        Dim wSaveFileDialog As New SaveFileDialog()
        Dim wFlag As Boolean = False 'On sait jamais

        wSaveFileDialog.FileName = pFichierEnCours 'Est-il bien définit avant l'utilisation ?
        wSaveFileDialog.Filter = "Fichiers Xml (*.Xml)|*.xml|Tous les fichiers|*.*"

        If wSaveFileDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
            wFlag = Enregistrer(wSaveFileDialog.FileName)
            pFichierEnCours = wSaveFileDialog.FileName
            'Si tu veux ne changer pFichier que si ça enregistre fait:
            'If wFlag Then pFichierEnCours = wSaveFileDialog.FileName
           
'au lieu de la ligne juste au dessus
            End If
        End If

        wSaveFileDialog.Dispose()
        Return wFlag
    End Function

A+

Antho 25
------------------------------------
Rien n'empêche Melba
3
KIPRE74 Messages postés 120 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 21 novembre 2013
20 août 2008 à 23:42
Bonsoir, j'ai essayé ce code mais je n'arrive plus à avoir le fichier final
0
cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
21 août 2008 à 10:09
Tu n'arrive plus à l'avoir ... C'est-à-dire ?
Si tu ne sait pas où tu l'enregistre vérifie en mettant MsgBox(wFichier) juste avant le Return True de la fonction enregistrer...

A+

Antho 25
------------------------------------
Rien n'empêche Melba
0
Rejoignez-nous