IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Proposer le root du dernier fichier utilisé


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut Proposer le root du dernier fichier utilisé
    Bonjour,

    Mon programme sous Vb.net 2019 à chaque redémarage prévoit de demander à l'utilisateur le root complet du fichier sur lequel il veut travailler.

    L'idée est logique si l'on change de fichier à chaque redémarage du programme, mais devient vite fastidieux lorsque l'on travail sur le même fichier à chaque redémarage du programme.

    Je n'arrive pas à trouver le moyen de mémoriser le dernier root ouvert et le proposer à chaque redémarage avec choix oui/non. Je pense qu'il faut sauvegarder dans un fichier sur le disque dur le root et le récupérer au redémarage. Avez-vous une idée à me proposer ?

    Exemple d'un long root à valider chaque fois (6 clics) : D:/SB/ABC/zxc/123.ech

    Je vous joint mon sub actuel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Option Explicit On
     
    Imports System.IO
    Imports System.Threading
    Imports System.Text
    Imports System.Text.RegularExpressions
     
    Public Sub OuvrirFichier()
     
            'Mettre à non Enabled tous les Tools sauf STOP 
            UnabledTools()
     
            Try
                '  affiche le formulaire et test si l'utilisateur a bien sélectionné un dossier.
                    If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
                    Dim DossierSelectionner As String = FolderBrowserDialog1.SelectedPath
     
                    ' Affiche le chemin complet du dossier sélectionné par l'utilisateur 
                    TextBox8.Text = DossierSelectionner
     
                    ' Affiche le nom du dossier sélectionné
                    MsgBox("Vous avez sélectionné le chemin du dossier : " & IO.Path.GetDirectoryName(DossierSelectionner) & "\" & IO.Path.GetFileName(DossierSelectionner))
                    PathSave = IO.Path.GetDirectoryName(DossierSelectionner) + "\" + IO.Path.GetFileName(DossierSelectionner)
                Else
     
                    ' Si l'utilisateur n'a pas sélectionné de dossier, avertissement
                    MsgBox("Aucun dossier n'a été sélectionné", MsgBoxStyle.Exclamation, "Aucun dossier sélectionné") : Call InitAll() : Exit Sub ' GoTo FinSave
     
                End If
     
            Catch ex As Exception
                MessageBox.Show(ex.Message & "Stack Trace: " & vbCrLf & ex.StackTrace)
                Call InitAll()
     
             End Try
     
        End Sub


    En vous remerciant pour vos idées.

  2. #2
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Je me demande si la réponse ne s'approche de ceci mais cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    path2 = PathSave +"\" + FichierTampon.txt
     
                ' Créer le fichier "FichierTampon.txt "si besoin
     
                If Not File.Exists(path2) Then
                                    Using monStreamWriter2 As StreamWriter = File.CreateText(path2)
                        monStreamWriter2.WriteLine("0")
                    End Using
                End If
     
     
                  Using monStreamWriter2 As StreamWriter = File.CreateText(path2)
                        monStreamWriter2.WriteLine(PathSave)
                    End Using
     
                'lit FichierTampon.txt
                Dim fileReader As String
                fileReader = My.Computer.FileSystem.ReadAllText(Path2)
     
                'affiche le contenu 
                TextBox8.Text = fileReader

  3. #3
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Hello,

    Je suis pas un pro du .NET mais franchement je pense que tu n'as pas d'autre choix que de le stocker quelque part...
    Un fichier texte c'est bien, c'est léger, vite lu,...

    Comme suggéré plus haut, tu commences par vérifier si il existe pour ne pas planter ton appli et voilà...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 16
    Par défaut
    Bonjour Excalybur,

    En faisant une petite recherche sur ce forum, tu aurais trouvé tout ce qu'il te faut :
    https://www.developpez.net/forums/d9...fichier-texte/

    A noter le "sw.close" à la fin : c'est là que l'écriture se fait réellement !

  5. #5
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour

    Merci pour vos suggestions. Effectivement sans close ça va vite poser des problèmes car ça boucle ferme ! Merci pour le rappel de l'oubli ! C'est comme les anciens Open ... Close de VB6 et turbo basic.

    Une solution pour le fichier Tampon sauvegardé sur disque dur qui fonctionne avec test de l’existence du fichier est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
                'nettoie le fichier tampon
     
                File.Delete(path3)
     
                'enregistre dernier fichier ouvert pour prochaine ouverture
     
                path3 = "D:/sb/FichierTampon.txt"
     
                ' Créer le fichier "FichierTampon.txt "si besoin
     
                If Not File.Exists(path3) Then
                    Using monStreamWriter2 As StreamWriter = File.CreateText(path3)
                        monStreamWriter2.WriteLine(PathSave + "\" + Mid(Str(Int(NewSaveNumber / 100)), 2) + ".ECH")
                    End Using
                End If
                monStreamWriter2.Close
     
                'lit FichierTampon.txt
     
                fileReader = My.Computer.FileSystem.ReadAllText(path3)
     
                'affiche le contenu 
     
                TextBox8.Text = "Pour controle : " + fileReader

    A+

  6. #6
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonsoir,

    En fait close est inutile !

    Le fait de ce servir de "using" permet de se dispenser d'un appel à Close ni à Dispose mais c'est ce que fait le End Using, il appelle implicitement Dispose (qui lui appelle Close)

    Pour s'en convaincre :

    https://www.developpez.net/forums/d6...close-dispose/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bloquer l'accès a un fichier utilisé
    Par Tifox dans le forum C++
    Réponses: 2
    Dernier message: 03/07/2006, 08h35
  2. [C#][VS2003] Détecter 1 fichier utilisé par un processus
    Par gregos dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/11/2005, 15h37
  3. Fichier utilisé
    Par Anduriel dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 04/09/2005, 14h46
  4. Erreur "Fichier utilisé par un autre processus"
    Par solo3326 dans le forum Langage
    Réponses: 3
    Dernier message: 18/08/2005, 16h55
  5. Le système de fichiers utilisé ?
    Par KORTA dans le forum C
    Réponses: 2
    Dernier message: 17/09/2003, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo