VB.Net Effacer un ligne dans un Tableau et dans un Fichier texte [Résolu]

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011
-
Salut à tous...

Question #1: Comment fait-on pour supprimer une ligne dans un Tableau ???

Dim i
As
Integer
For i = 0
To UBound(Tableau)
LigneSplit = Tableau(i).Split(Separateur)

If LigneSplit(0) = txtEfface.Text
Then
Tableau(i).Empty

End
If
Next i

Question #2: Comment fait-on pour supprimer une ligne dans un fichier texte
Dim

ObjetFichier As StreamReader = New StreamReader(NomDuFichier)
Try
Do

FichierTexte = ObjetFichier.ReadLine()

ReDimPreserve Tableau(Compteur)

LoopUntil FichierTexte IsNothing

Dim ObjetFichierW
As StreamWriter =
New StreamWriter(FichierSave,
True)
Effacer la ligne qui commence par  txtEfface.Text

Merci de votre aide

11 réponses

Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011

pas de solution, il faut faire un streamreader qui lit ton fichier. ajoute ligne à ligne dans un fichier temporaire avec un streamwriter sauf ta ligne, remplace ton fichier d'origine par ton nouveau fichier

Le savoir ne sert que si il est partagé par tous
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011

IO.file.delete("NomDuFichierAvecCheminORIGINE")
IO.File.Copy("NomDuFichierAvecCheminTEMPO" , "NomDuFichierAvecCheminORIGINE")
IO.file.delete("NomDuFichierAvecCheminTEMPO")
Le savoir n'est que le filtre de l'experience
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011

Plus simplement:


Dim
ObjetFichier

As
StreamReader =

New
StreamReader(FichierSave)


Dim
ObjetFichierW

As
StreamWriter =

New
StreamWriter(AppPathTempo &

"\Tempo.txt"
,

False
)



Do While

ObjetFichier.Peek <> -1



 FichierTexte = ObjetFichier.ReadLine()  ' ICI TU LIS TA LIGNE et tu la mets dans la variable Fichier Texte


 If
txtEfface.Text <>

FichierTexte.


Split(";")(0) 

Then




    
ObjetFichierW .

writeLine(FichierTexte)

ObjetFichierW.Flush


EndIf



Loop










ObjetFichierW.close


ObjetFichier.Close

Io.file.delete(

FichierSave)
Io.file.copy(

AppPathTempo &

"\Tempo.txt"
,

False , FichierSave)

Io.file.delete(
AppPathTempo &
"\Tempo.txt")

Le savoir n'est que le filtre de l'experience
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
ok merci...

Comment est-il possible de supprimer l'ensemble du fichier au complet sans supprimer le fichier...

C'est-à-dire que je pense faire un fichier qui se nommera Tempo. Ce fichier existera dans un répertoire et sera vide (vierge)... J'utiliserai ce fichier pour écrire temporaiement dedans  sans la ligne que je veux effacer... et ensuite réécrire dans le fichier original... Mais comment faire pour supprimer l'ensemble du fichier Original sans le détruire ??? Donc lire le fichier Original sans la ligne que je veux effacer. Effacer le fichier original. Réécrire dans la fichier original tout ce qui est dans le fichier Tempo.

merci de ton aide
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011

J'ouvre mon fichier ORIGINE J'écris dans TEMPO sauf la ligne
Je ferme ORIGINE
Je ferme TEMPO
J'efface ORIGINE
Je renomme TEMPO en ORIGINE

Le savoir n'est que le filtre de l'experience
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Ok cool...

2 Questions:

#1 Comment Effacer Origine ????
#2 Je ne sais pas qu'est ce que j'oublie mais je suis incapable de remplir mon tableau.
Qu'est ce qui ne vas pas ????

Dim i
As
Integer
Dim ObjetFichier
As StreamReader =
New StreamReader(FichierSave)

Dim ObjetFichierW
As StreamWriter =
New StreamWriter(AppPathTempo &
"\Tempo.txt",
False)

Dim TableauTempo()
As
StringCompteur = 0

Try
Do
FichierTexte = ObjetFichier.ReadLine()
LigneSplit = Tableau(i).Split(Separateur)
i = i + 1

If txtEfface.Text = LigneSplit(0)
Then
GoTo Suivant

If Compteur = 0
Then
ReDim TableauTempo(Compteur)

Else
ReDim
Preserve TableauTempo(Compteur)

End
If
ObjetFichierW.WriteLine(TableauTempo(Compteur))
ObjetFichierW.Flush()
Suivant:

If
Not ObjetFichierW
Is
Nothing
Then ObjetFichierW.Close()
Compteur = Compteur + 1

Loop
Until FichierTexte
Is
Nothing
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011

IO.file.delete("NomDuFichierAvecCheminORIGINE")
IO.File.rename("NomDuFichierAvecCheminTEMPO" , "NomDuFichierAvecCheminORIGINE")Le savoir n'est que le filtre de l'experience
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Cool merci...

Et pour mon tableau vois-tu ce qui ne vas pas.. ??? ca fais une heure queje fais des teste...  je ne trouve pas et je suis certain que ca doit être un truc qui me saute aux yeux mais que je ne vois pas...

Merci pour tout
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Au sujet de IO.File.rename("NomDuFichierAvecCheminTEMPO" , "NomDuFichierAvecCheminORIGINE")

le Rename n'est pas disponible...
J'ai de disponible...
AppendText
Copy
Create
CreateText
Delete
Exists
GetCreationTime
GetLastAccessTime
GetLastWriteTime
Move
Open
OpenRead
OpenText
OpenWrite
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Re...

Il y a une problème à cette ligne de code...

Conversion from String "Program Files\DataGrid\Coord.txt" to type Boolean is not valid



...
IO.File.Delete(FichierSave)




SaveFile =

"\Program Files\DataGrid\Tempo.txt"

Dim
Sr

As



New
StreamWriter(SaveFile,

False
)


Sr.Flush()
Sr.Close()
IO.File.Copy(AppPathTempo &



"\Tempo.txt"
,

False




, FichierSave)

IO.File.Delete(AppPathTempo &

"\Tempo.txt"
)






...

merci encore pour ton aide..

 
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011

IO.File.Copy(AppPathTempo &





"\Tempo.txt"
,

False




, FichierSave)
je vois pas à quoi sert le false, enleve le





Le savoir n'est que le filtre de l'experience