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 :

Effacer des enregistrements d'un fichier ini


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut Effacer des enregistrements d'un fichier ini
    Bonjour,
    le code ci-dessous efface le fichier mais n'efface pas les enregistrements dans le fichier ini ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For a As Integer = 0 To ComboBox4.Items.Count - 1
                Dim mot = ComboBox4.Items(a)
                If ComboBox1.Items.Contains(mot) = False Then
                    System.IO.File.Delete(".\ateliers\" & mot & ".txt")
                    For x As Integer = 0 To ComboBox2.Items.Count - 1
                        For y As Integer = 0 To ComboBox3.Items.Count - 1
                            DeleteKey(".\entretien.ini", "Periodicité d'entretien", mot & ";" & ComboBox2.Items(x) & ";" & ComboBox3.Items(y))
                            DeleteKey(".\entretien.ini", "Prochain entretien", mot & ";" & ComboBox2.Items(x) & ";" & ComboBox3.Items(y))
                            DeleteKey(".\entretien.ini", "Date du dernier entretien", mot & ";" & ComboBox2.Items(x) & ";" & ComboBox3.Items(y))
                        Next
                    Next
                End If
            Next
    voici le fichier ini:
    [Date du dernier entretien]
    Atelier Mr24;Tour Schaublin n°1;changer l'huile=23.10.2018
    Atelier Mr24;Tour Schaublin n°1;évaluation de la poupée=10.10.2018
    Atelier Mr30;Fraiseuse 213 n°1;évaluation=12.12.2018
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=10.10.2017
    [Periodicité d'entretien]
    Atelier Mr24;Tour Schaublin n°1;changer l'huile=365
    Atelier Mr30;Fraiseuse 213 n°1;évaluation=2
    Atelier Mr24;Tour Schaublin n°1;évaluation de la poupée=5
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=5
    [Prochain entretien]
    Atelier Mr24;Tour Schaublin n°1;changer l'huile=23.10.2019
    Atelier Mr30;Fraiseuse 213 n°1;évaluation=14.12.2018
    Atelier Mr24;Tour Schaublin n°1;évaluation de la poupée=15.10.2018
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=15.10.2017

  2. #2
    Membre averti Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Points : 372
    Points
    372
    Par défaut
    Que veux tu faire exactement ?
    Effacer un bloc complet (y compris l'ID du bloc), une ou plusieurs lignes particulières d'un ou plusieurs bloc?

    Globalement, on stocke le contenu du fichier dans une liste , on fait les modifs sur cette liste et on récrit le fichier avec les informations modifiées

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut
    dans le fichier ini:
    [Date du dernier entretien]
    Atelier Mr24;Tour Schaublin n°1;changer l'huile=23.10.2018
    Atelier Mr24;Tour Schaublin n°1;évaluation de la poupée=10.10.2018
    Atelier Mr30;Fraiseuse 213 n°1;évaluation=12.12.2018
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=10.10.2017
    [Periodicité d'entretien]
    Atelier Mr24;Tour Schaublin n°1;changer l'huile=365
    Atelier Mr30;Fraiseuse 213 n°1;évaluation=2
    Atelier Mr24;Tour Schaublin n°1;évaluation de la poupée=5
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=5
    [Prochain entretien]
    Atelier Mr24;Tour Schaublin n°1;changer l'huile=23.10.2019
    Atelier Mr30;Fraiseuse 213 n°1;évaluation=14.12.2018
    Atelier Mr24;Tour Schaublin n°1;évaluation de la poupée=15.10.2018
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=15.10.2017




    j'aimerai enlever dans les sections ceci:
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=10.10.2017
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=5
    Atelier Mr30;sdfsdfsdf;dsfsdfsdf=15.10.2017

    seulement ceux la dans le deletkey le nom "mot" correspond à "Atelier Mr30" qui est le nom de ma première combo et je suppose que dans les boucles il doit trouver les enregistrements des 2 autres combo

  4. #4
    Membre averti Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Points : 372
    Points
    372
    Par défaut
    voici un exemple :
    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
            ' lit le fichier complètement ligne par ligne
            Dim fileContents as List(Of string)= File.ReadAllLines(fileName).ToList
    
            ' on enlève ce que l'on veut
            For i = fileContents.Count - 1 To 0 Step -1  'on part de la fin car on va  enlever des éléments de la liste et non les remplacer
                If fileContents(i).Contains("Atelier Mr30;sdfsdfsdf;dsfsdfsdf") Then 
                'attention contains enlève la ligne si le critère est respecté alors il faut que cela soit le plus précis possible
                'si  la ligne est toujours identique tu peux faire If fileContents(i) = "critère de sélection" Then
                    fileContents.RemoveAt(i)
                 End If
            Next
    
          ' on réécrit le fichier
            File.WriteAllLines(fileName, fileContents.ToArray)



    ____________________________________
    edit :
    j'ai enlevé le " 'i -= 1" dans l'exemple car il ne servait à rien (c'était pour moi pour faire un test)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut
    ca marche mais quand il enregistre le fichier il met pas les caractère è ou é ou à ou °

    j'ai rajouté ceci mais ca ne marche pas non plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.WriteAllLines(filename, fileContents.ToArray, System.Text.Encoding.UTF7)

  6. #6
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Si tu as décidés de travailler avec des fichiers .ini pourquoi ne pas utiliser une classe de gestion, il en existe plein sur la toile, en voilà une parmi tant d'autres ??

    https://pastebin.com/91jwdLbL

    A+

  7. #7
    Membre averti Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Points : 372
    Points
    372
    Par défaut
    Citation Envoyé par pascb423 Voir le message
    ca marche mais quand il enregistre le fichier il met pas les caractère è ou é ou à ou °

    j'ai rajouté ceci mais ca ne marche pas non plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.WriteAllLines(filename, fileContents.ToArray, System.Text.Encoding.UTF7)
    Il faut le mettre au niveau de la lecture (pour qu'il lise correctement les caractères et les stocke correctement) et l'enlever au niveau de l'écriture (sinon il réinterprète les caractères spéciaux)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fileContents as List(Of string)= File.ReadAllLines(fileName, System.Text.Encoding.UTF8).ToList

    Idem d'ailleurs au niveau de la lecture pour remplir ta combobox pour avoir les accents et caractères spéciaux dans la combobox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim sr As StreamReader = New StreamReader(filename, System.Text.Encoding.UTF8)
    _________________________________________
    EDIT:correction de l'encodage du texte : System.Text.Encoding.UTF8 au lieu de System.Text.Encoding.UTF7

Discussions similaires

  1. lire et enregistrer des variables sur un fichier .ini
    Par phiiris dans le forum VBA Word
    Réponses: 7
    Dernier message: 13/11/2010, 09h47
  2. [Debutant]Effacer des lignes dans un fichier
    Par smutmutant2003 dans le forum Linux
    Réponses: 13
    Dernier message: 10/10/2007, 21h49
  3. [VB6] Effacer une clé d'un fichier INI
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 30/05/2006, 14h49
  4. Probléme d'enregistrement dans un fichier ini
    Par jv2759 dans le forum Delphi
    Réponses: 2
    Dernier message: 19/05/2006, 15h30
  5. Réponses: 1
    Dernier message: 12/09/2005, 12h34

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