VB.Net Créer un Fichier texte sans SavefileDialog [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
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Salut à tous..

J'ai une petite question à propos de créer un fichier texte sans utiliser la SaveFileDialog.

Qu'est ce qui me manque pour que mon code fonctionne pour créer le fichier Tempo.txt

SaveFile = 

 
"\SD Card\Calcul\Tempo.txt"
Dim Sr
As
New StreamWriter(SaveFile,
False)

Sr.Flush()
Sr.Close()

J'utilise ce code pour effacer une ligne de texte dans un fichier - Tableau et ca génère un erreur.... Je ne peux  tester cette partie de code dans le Debug

Private

Sub cmdEffacer_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles cmdEffacer.Click

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() 

   If txtEfface.Text <> FichierTexte.Split(Separateur)(0)
Then
      ObjetFichierW.WriteLine(FichierTexte)
      ObjetFichierW.Flush()

   End
If
Loop

ObjetFichierW.Close()
ObjetFichier.Close()
IO.File.Delete(FichierSave)
SaveFile =
"\SD Card\Calcul\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")

End
Sub

7 réponses

Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
En fait le lien te fournie la signature de la méthode

tu passe ceci
"\Tempo.txt"
, False, FichierSave)


soit copy(string,boolean,string)
or les signatures possibles sont
File.Copy (String, String)
File.Copy (String, String, Boolean)

je pense qu'en changeant ta ligne de code avec celle ci cela devrais passer
<gras>"\Tempo.txt"
,
<gras>

<gras>False)
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
Je ne comprend pas bien ce que souhaite faire  avec ce code ?

SaveFile =
"\SD Card\Calcul\Tempo.txt"
Dim Sr
AsNew StreamWriter(SaveFile,
False)

Sr.Flush()
Sr.Close()

Si c'est pour créer un fichier vierge pourquoi ne pas utilisé :
System.IO.File.Create()

IO.File.Delete(FichierSave)


IO.File.Copy(AppPathTempo &
"\Tempo.txt",
False, FichierSave)
IO.File.Delete(AppPathTempo &
"\Tempo.txt")

IO.file.Create(
AppPathTempo &
"\Tempo.txt")

End
Sub
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
oui c'est vrai je n'y avais même pas pensé.... OUPS....

Sauf que ca me génère un erreur:
Conversion from string "\Program Files\DataGrid\Coord.txt" to type Boolean is not valid
???????

Dim ObjetFichier As StreamReader = New StreamReader(FichierSave)
Dim ObjetFichierW As StreamWriter = New StreamWriter(AppPathTempo & "\Tempo.txt", False)
DoWhile ObjetFichier.Peek <> -1
   FichierTexte = ObjetFichier.ReadLine() 

   If txtEfface.Text <> FichierTexte.Split(Separateur)(0)
Then
      ObjetFichierW.WriteLine(FichierTexte)
      ObjetFichierW.Flush()
   End
If
Loop

ObjetFichierW.Close()
ObjetFichier.Close()
IO.File.Delete(FichierSave)
IO.File.Create(AppPathTempo &
"\Tempo.txt")

IO.File.Copy(AppPathTempo & "\Tempo.txt", False, FichierSave)
IO.File.Delete(AppPathTempo & "\Tempo.txt")
EndSub
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Ca dit quoi ce lien je ne comprend rien...

Je ne vois pas comment corriger l'erreur...

Ca dit que File. Copy peut-être soit String, String (Il n'est pas permis de substituer un fichier du même nom)
Ou String, String , Boolean (Il est permis de substituer un fichier du même nom.)

Merci encore
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
ok cool ca "fonctionne"...

Sauf que j'ai un autre erreur... Ca dit que c'est impossible car MonFichier.txt is being used by another process

Existe-t-il une facon de corriger ce prob ???

J'utilise une ligne de code pour supprimer le fichier et ca fonctionne pas.....

IO.File.Delete(FichierSave)
IO.File.Create(AppPathTempo &

"\Tempo.txt")
IO.File.Create(FichierSave)
IO.File.Copy(AppPathTempo &
"\Tempo.txt", FichierSave,
False)
IO.File.Delete(AppPathTempo &
"\Tempo.txt")
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Encore moi...
Ce que je ne saisi pas du code c'est la ligne de code Gras et Souligné... Fait que ca l'écrit dans le fichier ...Tempo. txt mais le fichier n'existe pas...  Normal... que ca bug plus bas ?

Private
Sub cmdEffacer_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles cmdEffacer.Click

Dim ObjetFichier
As StreamReader =
New StreamReader(FichierSave)

Dim ObjetFichierW
As StreamWriter =
New StreamWriter(AppPathTempo &
"\Tempo.txt",
False</gras> )
Do
While ObjetFichier.Peek <> -1
FichierTexte = ObjetFichier.ReadLine()
If txtEfface.Text <> FichierTexte.Split(Separateur)(0)
Then
ObjetFichierW.WriteLine(FichierTexte)
ObjetFichierW.Flush()

End
If
Loop
ObjetFichierW.Close()
ObjetFichier.Close()
IO.File.Delete(FichierSave)
IO.File.Create(AppPathTempo &
"\Tempo.txt")
IO.File.Create(FichierSave)

"\Tempo.txt", FichierSave,
False
)
IO.File.Delete(AppPathTempo & "\Tempo.txt")

End
Sub