VB.Net Effacer un ligne dans un Tableau et dans un Fichier texte

Résolu
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 23 oct. 2007 à 18:57
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 - 24 oct. 2007 à 20:46
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

cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
23 oct. 2007 à 19:23
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
3
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
23 oct. 2007 à 22:15
IO.file.delete("NomDuFichierAvecCheminORIGINE")
IO.File.Copy("NomDuFichierAvecCheminTEMPO" , "NomDuFichierAvecCheminORIGINE")
IO.file.delete("NomDuFichierAvecCheminTEMPO")
Le savoir n'est que le filtre de l'experience
3
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
23 oct. 2007 à 22:26
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
3
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
23 oct. 2007 à 19:35
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
0

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

Posez votre question
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
23 oct. 2007 à 21:05
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
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
23 oct. 2007 à 21:21
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
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
23 oct. 2007 à 21:27
IO.file.delete("NomDuFichierAvecCheminORIGINE")
IO.File.rename("NomDuFichierAvecCheminTEMPO" , "NomDuFichierAvecCheminORIGINE")Le savoir n'est que le filtre de l'experience
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
23 oct. 2007 à 21:41
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
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
23 oct. 2007 à 21:50
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
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
24 oct. 2007 à 16:22
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..

 
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
24 oct. 2007 à 20:46
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
0
Rejoignez-nous