Ecrire ds un fichier avec vb.net 2003 ??

cs_guyvdv Messages postés 101 Date d'inscription samedi 16 mars 2002 Statut Membre Dernière intervention 19 mai 2011 - 9 nov. 2004 à 17:48
glplpmat Messages postés 70 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 2 octobre 2006 - 12 nov. 2004 à 14:34
Bonjour,
je commence a pein avec vb.net 2003 .

ecrire un text ds un fichier
j'ai trouver:
System.IO.File.Open("test.txt", FileMode.OpenOrCreate)
system.IO.File. ???
et maintenant ??

comment ecrire dans un fichier?
comment lire ds un fichier
comment fermer le fichier

merci de me repondre

Salut
Guy

Guy van der Velden

4 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
9 nov. 2004 à 20:38
Salut,

une fois le fichier créer utilise ce code :

        Microsoft.VisualBasic.FileOpen(1, "test.txt", OpenMode.Random)
        Microsoft.VisualBasic.FilePut(1, infos)
        Microsoft.VisualBasic.FileClose(1)


J'ai trouver ce truc dans la MSDN, regarde si cela marche j'ai pas eu le temps de tester.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
9 nov. 2004 à 20:54
Salut guyvdv :

je commence aussi en VB.NET mais j'ai trouvé ces petites routines sur des exemples.
C'est peut être pas le top mais ça marche bien.

Donc pour répondre à tes questions :

Quoique tu fasses, il faut commencer par spécifier que tu vas bosser sur les flux de fichier ==> placer "Imports System.IO" tout en haut de ton module

Ecrire dans un fichier :
1°) déclarer une variable de type StreamWriter,
2°) l'utiliser pour ouvrir le fichier en mode "j'écris à la suite"
3°) l'utiliser encore pour écrire la ligne de texte qui va bien dans le fichier précédemment ouvert,
4°) fermer le fichier

donne le code suivant :

Dim SW As StreamWriter
SW = File.AppendText("c:\toto.txt")
SW.WriteLine("ça c'est la ligne à écrire")
SW.Close()

Lire dans un fichier :
1°) déclarer une variable de type StreamReader,
2°) l'utiliser pour ouvrir le fichier
3°) l'utiliser encore pour lire une lignede texte dans le fichier précédemment ouvert,
4°) fermer le fichier

donne :

Dim SR As StreamReader
SR = File.OpenText(NomComplet)
SR.ReadLine()
SR.Close()

mais ça ne te lit que la 1ère ligne.

tu peux faire autant de readline que tu veux, tant que tu ne fermes pas le fichier, tu passes à la ligne suivante.
Donc si tu veux écrire toutes tes lignes dans un tableau, il te faut déclarer un tableau de string genre Dim MesLignes() as String
et boucler du début à la fin du fichier avec
Do Until SR.Peek = -1
MesLignes(i) = SR.ReadLine()
i += 1
Loop
(à mettre à la place de la ligne SR.ReadLine()

Voila, j'espère avoir répondu à ta question, et bon courage pour la suite des opérations.

Guich
0
cs_guyvdv Messages postés 101 Date d'inscription samedi 16 mars 2002 Statut Membre Dernière intervention 19 mai 2011 1
10 nov. 2004 à 09:42
merci a cboulas
le probleme est que quand j'ecri un mots dan le fichier, le mot est preceder par
06 00 (hex)
??

merci a gandalflegris007

oui, c'est dommage que on ne peu pas lire le fichier en sa totalite
comme faiser le statement import ds vb6

a+
Guy van der Velden
0
glplpmat Messages postés 70 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 2 octobre 2006 1
12 nov. 2004 à 14:34
Pour ecrire le contenu d'un array
Public Sub EcritFichier(ByRef contenu() As Byte, ByVal NomFich As String)

Dim lgr, i As Long
lgr = contenu.Length
Dim MyData(lgr) As Byte
MyData = contenu

Dim K As Long
K = UBound(MyData)

Dim fs As New FileStream(NomFich, FileMode.Create, FileAccess.Write)
fs.Write(MyData, 0, K)
fs.Close()

End Sub

pour lire

Public Sub LireFichier(ByRef contenu() As Byte, ByVal NomFich As String)
Dim fich As Integer
fich = FreeFile()
Dim i As Long
Dim fs As Stream = File.OpenRead(NomFich)
Dim tempBuff(fs.Length) As Byte
ReDim contenu(fs.Length)
fs.Read(tempBuff, 0, fs.Length)
fs.Close()
contenu= tempBuff
End Sub

glplpmat
0
Rejoignez-nous