Insérer les nouveaux élements a un fichier txt deja vidé en vb express 2008 [Résolu]

Signaler
Messages postés
35
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
11 juin 2013
-
Messages postés
35
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
11 juin 2013
-
Bonsoir , je suis débutante en vb express 2008, j'ai créer un bouton qui affiche la liste des PC connecté a un réseau et puis je voulais les ( Ces PCs) enregistrer dans le fichier C:\WINDOWS\system32\drivers\etc\hosts mais avant d’enregistrer la nouvelle liste il faut écraser l'ancienne liste , en fait j'ai réussi a écraser les éléments découvert mais j'arrive pas insérer la nouvelle liste




Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

 Dim Contenu As String = My.Computer.FileSystem.ReadAllText("C:\WINDOWS\system32\drivers\etc\hosts")
            
            Dim Pos As Integer
            
            My.Computer.FileSystem.WriteAllText("C:\WINDOWS\system32\drivers\etc\hosts", "  ", True)

       
            Dim en As System.Collections.IEnumerator = ListView.Items.GetEnumerator

           
            Pos = 0
            Contenu = Contenu.Insert(Pos, "" + vbCrLf)
            Dim i As Integer
            i = 0
            Try
                Do While listView.Items(i) IsNot Nothing 

                    Pos = Contenu.LastIndexOf(vbCrLf)
                    Contenu = Contenu.Insert(Pos, listView.Items(i).SubItems(0).Text + "    " + listView.Items(i).SubItems(2).Text + vbCrLf) 'Chr(13) + Chr(10))
                    i = i + 1


                Loop
            Catch
            End Try
   End Sub






qui peux m'aider ?
merciiii d'avance

9 réponses

Messages postés
35
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
11 juin 2013

Mercii tout le monde , il fonctionne avec ce code

Dim ligne, Resultat As String
            Dim i As Integer
            Resultat = ""
            ligne = ""
            For i = 0 To listView.Items.Count - 1
                ligne = listView.Items.Item(i).SubItems(0).Text & ";" & listView.Items.Item(i).SubItems(2).Text
                Resultat = Resultat & Chr(13) & ligne
                ligne = ""
            Next
            File.WriteAllText("C:\WINDOWS\system32\drivers\etc\hosts", Resultat)


Bonjour,

Bon... c'est déjà mieux mais la suite de tes idées est confuse...

Tu veux:

1) Au démarrage de ton application, récupérer la liste des PC connectés sur ton réseau
2) Inscrire cette liste dans ton fichier 'hosts' tout en supprimant la précédente.

C'est bien ça?

On commence donc par la première étape regarde CET EXEMPLE

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
35
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
11 juin 2013

c bon pour la récupération de la liste des PCs , et j'ai réussi à les afficher dans un liste View .
et le code posté c pour les enregistrer dans le fichier Hosts en supprimant la liste précédente

Hé bien, tout simplement:
 Dim PCs As String = ""
        For Each PC In ListView1.Items
            PCs &= PC & Environment.NewLine
        Next
        System.IO.File.WriteAllText("c:\windows\system32\drivers\etc\hosts", PCs)


Et les anciennes données du fichier hosts seront remplacées.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
35
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
11 juin 2013

Mais j'arrive pas a enregistrer la liste des Pcs détecté
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
228
Bonjour,
Tu n'es peut-être pas autorisé à écrire dans ce dossier.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
228
Ou encore : le fichier est utilisé par un autre processus (et donc inaccessible tant que c'est le cas).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
35
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
11 juin 2013

en écrasant mon code et le remplaçons par le tien :
 Dim PCs As String = ""
            For Each columnHeader1 In ListView1.Items
                PCs &= columnHeader1 & Environment.NewLine
            Next
            System.IO.File.WriteAllText("c:\windows\system32\drivers\etc\hosts", PCs)



j'ai cette erreur :Une variable de contrôle de boucle ne peut pas être une propriété ni un tableau indexé à liaison tardive.
mais j'arrive pas à la corriger

Nous ne savons pas comment ton listview à été construit... et apparemment toi non plus..
l'art du copier/coller ne permet pas de comprendre le code (c'est le seul inconvénient)


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique