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

Résolu
cs_marwamarwita Messages postés 35 Date d'inscription vendredi 18 juin 2010 Statut Membre Dernière intervention 11 juin 2013 - 2 juin 2013 à 19:31
cs_marwamarwita Messages postés 35 Date d'inscription vendredi 18 juin 2010 Statut Membre Dernière intervention 11 juin 2013 - 3 juin 2013 à 16:48
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

cs_marwamarwita Messages postés 35 Date d'inscription vendredi 18 juin 2010 Statut Membre Dernière intervention 11 juin 2013
3 juin 2013 à 16:48
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)

3
Utilisateur anonyme
2 juin 2013 à 20:31
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
0
cs_marwamarwita Messages postés 35 Date d'inscription vendredi 18 juin 2010 Statut Membre Dernière intervention 11 juin 2013
2 juin 2013 à 20:39
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
0
Utilisateur anonyme
2 juin 2013 à 20:55
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_marwamarwita Messages postés 35 Date d'inscription vendredi 18 juin 2010 Statut Membre Dernière intervention 11 juin 2013
2 juin 2013 à 21:14
Mais j'arrive pas a enregistrer la liste des Pcs détecté
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
2 juin 2013 à 22:45
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
2 juin 2013 à 22:53
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.
0
cs_marwamarwita Messages postés 35 Date d'inscription vendredi 18 juin 2010 Statut Membre Dernière intervention 11 juin 2013
2 juin 2013 à 23:12
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
0
Utilisateur anonyme
3 juin 2013 à 01:34
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
0