Suppression d'element dans un fichier CSV

nonotoubo Messages postés 2 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 23 juillet 2006 - 22 juil. 2006 à 23:19
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007 - 26 juil. 2006 à 21:24
Bonjour a tous,
j'ai un projet a réaliser, il s'agit de faire une petite application permettant d'automatiser des taches pour des administrateurs réseaux. Elle permettrait d'abord, d'abord, au travers une interface graphique, de mettre a jour un csv contenant nom de machine et IP, ainsi que les diverses options que l'on veut tester (jen suis a "processus" "services "URL"). O final des scripts utiliseront les données du csv pour voir si tel processus tourne sur tel machine, si tel Url fonctionne ou non...
Apres, un autre script fait une synthese des résultats quotienne et il cré et envoi d'un mail à un liste de diffusion.
Voila pour l'instant je n'en suis qu'a l'interface graphique. Je suis pas tres doué en prog et j'ai beau me motiver et passer mes soirée dessus, ça n'avance pas.
Donc voici mon probleme, il s'agit de supprimer un processus de mon csv. J'utilise l'écriture sequentiel dans un fichier temporaire. Ce qui est un peu compliqué c'est qu'un processus est contenu dans un tableau insertionprocessus() qui est lui meme contenu dans un tableau insertion().
Je pense avoir fais une bonne parti du boulot : mais mon CSV est quasi tout le temps faux lorsque je test, et ma list box ne se met pas correctement a jour. J'en perd mes cheveux !

voici ma source commenté du mieux que jai pu...

Private i
As
Integer = 1

Private insertion()
As
String
Private insertionprocessus()
As
String
Private insertionservice()
As
String
Private insertionURL()
As
String
Private line
As
String
Private Separateur
As
Char =
";"
Private Separateur2
As
Char =
","
Private path
As
String =
"D:\bob45.csv"

Private
Sub Button_Supp_Proc_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button_Supp_Proc.Click

Dim Rfile
As StreamReader =
New StreamReader(path)

'Création d'un fichier temporaire

Dim Wfile
As StreamWriter =
New StreamWriter(
"D:\machines.tmp")

Dim myindex
As
Integer

Dim str
As
String
'lecture du fichier en boucle juska sa fin

Do
Until Rfile.Peek = -1

'lecture de la premiere ligne et création de mon tableau contenant chacun des enregistrement (séparateur ";")line = Rfile.ReadLine()

insertion = line.Split(Separateur)

'verification de la machine a traiter

If insertion(1) = Label8.Text
Then

'Controle si le champs est vide, si c pas le cas suppresion de la ligne du tablo correspondan a la selection util

If insertion(3) <>
Nothing
Then
'création d'un tableau sur le 3 eme champs de insertion(3) avec un separateur2 ","insertionprocessus insertion(3).Split(Separateur2)

myindex = 0

'récupération de l'index correspondant a l'objet selectionné dans la listeboxmyindex = Array.IndexOf(insertionprocessus, ListBox_Process.SelectedItem.ToString)

MsgBox(myindex &

" " & ListBox_Process.SelectedItem.ToString)

'un des enregistrements de insertionprocessus passe a NothingArray.Clear(insertionprocessus, myindex, 1)

'remplissage du taleaux insertion avec les nouvelles valeur de insertionprocessusinsertion(3) =

Nothing

For m
As
Integer = 0
To insertionprocessus.Length - 1

'si l element dans insertionprocessus n'existe pas, on modifie insertion(3),sinon on incremente m
' C ICI QUE JE M'EMBROUILLE ! je dois etre à saturation je n'arrive pas a faire ma boucle correctement...

If insertionprocessus(m) =
Nothing
Then
'If insertionprocessus(0) Nothing Thenstr

CType(insertionprocessus(m + 1),
String)insertion(3) = str

MsgBox(

"processus numéro1: " + str)

Elsestr =

CType(insertion(3),
String)insertion(3) = str +

"," + insertionprocessus(m)MsgBox(

"processus : " + str)

End
Ifm = m + 1

ListBox_Process.DataSource = insertionprocessus

Next

ElseMsgBox(

"Il n'y a aucun processus supervisé")

End
If

'Insertion de la ligne avec les valeurs ajoutéesline = (insertion(0) + Separateur + insertion(1) + Separateur + insertion(2) + Separateur + insertion(3) + Separateur + insertion(4) + Separateur + insertion(5))

Wfile.WriteLine(line)

Else

'Insertion des lignes qui n'ont pas été modifiéesline = (insertion(0) + Separateur + insertion(1) + Separateur + insertion(2) + Separateur + insertion(3) + Separateur + insertion(4) + Separateur + insertion(5))

Wfile.WriteLine(line)

End
If

LoopTextBox_process.Text =

""Wfile.Close()

Rfile.Close()

My.Computer.FileSystem.DeleteFile(path)

My.Computer.FileSystem.RenameFile(
"D:\machines.tmp",
"bob45.csv")

End
Sub

Merci a toi si tu lis encore cette derniere ligne, et a bientot !

2 réponses

nonotoubo Messages postés 2 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 23 juillet 2006
23 juil. 2006 à 17:52
Personne pour me filer une petit coup de main siouplait?
0
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007
26 juil. 2006 à 21:24
slt,
dis moi dans t tableaux tu a bien d lignes et des colonnes non?

du moins c ce kil fo il me semble pour ecrire ds une certaine cellule sof faute de ma part...

ce que jai compri c'est tu ve supprimer une ligne ou kelke cellule ds ton cvs, si c bien ca il y a peu etre une solution:
tu choisi le nom de ton tableau et tu passe en parametre le numero de ta colonne puis celui de la ligne et tu ecris :

MonTableau (2, 13) = ""

si tu veu ke ca l'efface grace a une condition tu fait:

If  TaCondition then
   MonTableau (2, 13) = ""
End If

ps: j'ai comme la vague impression que c'est pas ce que tu veux mais je tente ma chance car c'est ce ke j'ai compris de ton explication...
0
Rejoignez-nous