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 :

Fermer fichier avec utilisation fso


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Fermer fichier avec utilisation fso
    Bonjour,
    Dans ce bout de code, je lis un fichier pour extraire des mots pour les mettre dans des variables.
    Cela se passe parfaitement mais un peu plus loin, je lis denouveau le même fichier.
    Bien évidemment, il me donne une erreur comme quoi un autre processus lit le fichier.
    Comment puis-je fermer ce fichier ?
    Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim fso2
    fso2 = CreateObject("Scripting.FileSystemObject")
    Ftxt2 = fso2.OpenTextFile(chemin2)
            Do While Not Ftxt2.AtEndOfStream
                recup2 = Ftxt2.ReadLine
                Dim Split2 = Split(recup2, "=")
                If Trim(Split2(0)) = "srv" Then srv = Split(Trim(Split2(1)), " ")(0) Else 
                If Trim(Split2(0)) = "usr" Then usr = Split(Trim(Split2(1)), " ")(0) Else 
                If Trim(Split2(0)) = "chemsrv" Then chemsrv = Split(Trim(Split2(1)), " ")(0) Else 
                If Trim(Split2(0)) = "chemkey" Then chemkey = Split(Trim(Split2(1)), " ")(0)
            Loop
    'fermer le fichier quand il a fini son opération

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    je ne vois qu'une raison pour que tu ne puisses pas ouvrir deux fois le même fichier : tu ne le fermes pas après sa première ouverture.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre actif Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Points : 269
    Points
    269
    Par défaut
    Hello,

    Rajoute

    a la fin de ta boucle.

    Cordialement

    DeWaRs

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    en .net on code en .net
    fso c'est pour vbscript à ma connaissance
    et puis enchainer les else c'est pas super

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for each ligne in system.io.file.ReadAllLines(" chemin du fichier ") 'ouvre le fichier, lit tout, découpe en ligne et le ferme
      Dim sp = Split(ligne, "=")
      Dim spTrimmé = (From s In sp Select s.Trim) ' on trim tout tout de suite
      select case spTrimmé(0)
         case "srv"
            srv = ...
         case "usr"
             ...
      end select
    next

    après si c'est tous des strings, et que c'est tous des variables dans ta classe, le select case (ou tous les ifs) peuvent être remplacés par une seule ligne de code qui va chercher la variable du même nom que ce qu'il y avant le =
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    DeWaRs, je rajoute Ftxt2.Close mais ça ne le ferme pas. Merci comme même
    Pol63, j'avoue mon code n'est pas beau à voir, j'ai tester ta méthode, elle est super et optimise énormement le code. Fso fonctionne aussi avec .net. Merci pour ta réponse
    Mais j'ai toujours le problème de la fermeture du fichier..

  6. #6
    Membre du Club Avatar de Adakhum
    Homme Profil pro
    Ingénieur Mécanique Numérique
    Inscrit en
    Mars 2014
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Mécanique Numérique

    Informations forums :
    Inscription : Mars 2014
    Messages : 125
    Points : 58
    Points
    58
    Par défaut
    C'est étrange boostaut, car j'ai un programme qui lit un fichier texte tout bête mais qui fonctionne bien, je sais juste que mes données sont lignes après lignes, car je les ai sauvegardées comme ça, ce qui donne pour le load :

    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
    Dim FileLoad As IO.Stream = Nothing
            Dim file As IO.FileInfo = Nothing
            Dim openFileDialogOuvrir As New OpenFileDialog()
     
            openFileDialogOuvrir.InitialDirectory = Fileway
            openFileDialogOuvrir.Filter = "XXX files (*.xxx)|*.xxx|All files (*.*)|*.*"
            openFileDialogOuvrir.FilterIndex = 1
            openFileDialogOuvrir.RestoreDirectory = True
     
            If openFileDialogOuvrir.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                Try
                    FileLoad = openFileDialogOuvrir.OpenFile()
                    If (FileLoad IsNot Nothing) Then
                        Try
                            Dim Sr As IO.StreamReader = New IO.StreamReader(FileLoad)
                            Me.TB_NumProjet.Text = Sr.ReadLine
                         end...
    Là je t'ai mit des trucs qui te serviront peut être pas, mais c'était au cas où.. Maintenant tu fermes le tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sr.Close()
    If (FileLoad IsNot Nothing) Then FileLoad.Close()
    Détaillez votre question et vous obtiendrez une réponse précise ! (c'est un peu magique)
    Et si vous êtes fou de voyage bienvenue ici : http://lenormanditinerant.blogspot.fr

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par boostaut Voir le message
    Mais j'ai toujours le problème de la fermeture du fichier..
    system.io.file.ReadAllLines ferme le fichier
    donc ton problème est soit ailleurs dans ton code, soit dans un autre programme qui ouvre le fichier
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Ouverture fichier avec utilisation d'un userform (en partie)
    Par PradBoule dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/07/2012, 19h04
  2. Utilisation de fichiers avec une structure
    Par showdown dans le forum C
    Réponses: 16
    Dernier message: 07/12/2006, 18h30
  3. probleme test presence d'un fichier(avec fso)
    Par pagez dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/08/2005, 15h24
  4. Réponses: 16
    Dernier message: 07/04/2005, 11h36
  5. Réponses: 8
    Dernier message: 14/11/2003, 22h51

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