' Instanciation et déclaration d'une variable
' pour lire le contenu du fichier
Dim SR As New IO.StreamReader( "D:\monfichier.txt" )
' Boucle parcourant toutes les lignes du
' fichier
Do Until SR.Peek = -1 ' SR.ReadLine() retourne le contenu d'une
' ligne
' au prochain SR.ReadLine(), on récupèrera
' la ligne suivante
MsgBox(SR.ReadLine())
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 26 janv. 2009 à 18:43
Salut,
Il faut alors adapter la façon de lire le fichier. Voici une fonction dont tu envois le chemin d'accès complet du fichier à lire en paramètre et il te retourne la totalité du contenu du fichier.
Public Function LireFichier(ByVal FileName As String) As String Dim SR As New IO.StreamReader(FileName)
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 26 janv. 2009 à 21:46
Si tu souhaites enregistrer ça ne pose aucun problème car juste avant la fin de la fonction, je fais SR.Close() donc le fichier n'est plus utilisé.
Ensuite pour écrire le contenu de la TextBox ou RichTextBox :
<hr size= "2" width="100%" />
Public Function
EcrireFichier(ByVal FileName As String, ByVal Texte As String, Optional ByRef MsgErreur As String = "" ) As Boolean
' Try Permet d'intercepter tout erreur qui se produirait
' pendant l'exécution du programme pour le code se trouvant
' entre Try et Catch ex As Exception
Try ' Ouvre ou crée le fichier pour enregistrer
Dim SW As New IO.StreamWriter(FileName)
' Ecrit le contenu de la variable dans le fichier
SW.WriteLine(Texte)
' On ferme le fichier
SW.Close()
' On retourne True car l'enregistrement
' s'est bien passé
Return True
' Si une erreur vient à se produire par exemple,
' Le fichier est cours d'utilisation par un autre
' processus
Catch ex As Exception
' On stocke le message de l'erreur dans la variable
' MsgErreur ce qui permet de pouvoir connaitre la
' raison de l'erreur
MsgErreur = ex.Message
' On retourne False car l'enregistrement ne s'est
' pas bien passé
Return False
End Try
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 27 janv. 2009 à 21:13
Salut,
Voici un exemple de code (à mettre l'évènement Click d'un bouton) :
Dim Ofd As New OpenFileDialog
' Affiche un message d'avertissement si l'utilisateur
' spécifie un nom de fichier inexistant
Ofd.CheckFileExists = True
' Affiche un message d'avertissement si l'utilisateur
' spécifie un chemin d'accès inexistant
Ofd.CheckPathExists = True
' Permet de choisir les fichiers qui doivent être affichés
' ici, on affiche tous les fichiers sans exceptions
Ofd.Filter = "*.*|*.*"
' On définit le répertoire affiché au démarrage
' Ici, c'est le répertoire Mes Documents
Ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
' On affiche la boîte de dialogue et on teste si l'utilisateur
' a cliqué sur OK
If Ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then ' On affiche le chemin d'accès complet du fichier
' dans la TextBox
TextBox1.Text = Ofd.FileName
End If
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 28 janv. 2009 à 13:31
Salut,
Voici comment récupérer le message de l'erreur avec la fonction EcrireFichier :
Dim Erreur As String = ""
If EcrireFichier(TextBox1.Text, RichTextBox1.Text, Erreur) Then MsgBox("ecriture réussie!")
Else MsgBox("Le fichier n'as pas été enregistré à cause de l'erreur: " & Erreur)
End If
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 28 janv. 2009 à 13:39
Pour le problème avec l'instruction SR.Close(), cela vient peut être que quand on fait Return, le programme croit qu'on est arrivé à la fin de la fonction donc il fait pas SR.Close(). Ça mettait déjà arrivé...
Public Function LireFichier(ByVal FileName As String) As String Dim SR As New IO.StreamReader(FileName)
Dim str As String
whitelegend
Messages postés156Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention 2 mars 2009 28 janv. 2009 à 19:20
Re,
Dans la procédure ton bouton "Ouvrir" tu met :
On Error resume Next au début de ta procédure et:
On Error Goto 0 A la fin
Ca te donnera un code comme ceci:
Sub Button1_Click()
On Error resume Next If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
' On affiche le chemin d'accès complet du fichier
' dans la TextBox
TextBox1.Text =OpenFileDialog1.FileName
End If On Error Goto 0 End Sub
LC
__________________________________________________________________________
Pensez à accepter les réponses qui vous servent
whitelegend
Messages postés156Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention 2 mars 2009 28 janv. 2009 à 19:25
RE...
avec quelques explication c'est plus sympa.
Il faut que tu saches que pendant l'éxécution d'un code placé au milieu des intructions ci-dessous, s'il s eproduit une erreur le programme sautera directement à la fin de ce bloc sans renovyer d'erreur.
On Error resume Next'S'il se produit une erreur alors sauter sur la lignes "On Error Goto 0" sans éxécuter le reste
.....
.....
.....
On Error Goto 0 ' A partir d'ici la gestion d'erreur est arrétée
Vala j"espère que c'est plus clair pour toi maintenant
LC
__________________________________________________________________________
Pensez à accepter les réponses qui vous servent
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 29 janv. 2009 à 00:21
C'est normal, il faut définir tous les filtres dans Filter, tu définis le filtre tous les fichiers, puis le filtre sur les fichiers txt et ainsi de suite donc c'est le dernier qui pris en compte
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 29 janv. 2009 à 00:51
Voici un début de code pour contrôler si l'extension du chemin d'accès du fichier dans TextBox1 est correct :
If My.Computer.FileSystem.FileExists(TextBox1.Text) = True Then
Dim Fi As New IO.FileInfo(TextBox1.Text)
' A faire pour toutes les extensions
' j'en ai fait seulement pour quelques unes
If Fi.Extension <> ".txt"And Fi.Extension <>".html"And Fi.Extension <>".htm"And Fi.Extension <>".php"And Fi.Extension <>".phtml"Then Exit Sub Else ' Suite du code du bouton Ouvrir
End If End If
whitelegend
Messages postés156Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention 2 mars 2009 29 janv. 2009 à 08:03
ah ben je vois que ton application à cachement avancée depuis hier !! super!!
Pour afficher ton message de prise en charge place le juste avant le Exit Sub dans le bout de code de fauve
If Fi.Extension <>".txt"And Fi.Extension <>".html"And Fi.Extension <>".htm"And Fi.Extension <>".php"And Fi.Extension <>".phtml"Then msgbox("EasyTXT ne prend en charge que les extension ...........................")
Exit Sub
Else
Par contre dans ta dernière version je n'ai pas de filtre dans l'OpenFileDialog... je peux donc ouvrir tout les formats possible... Cette version inclus t-elle les filtres comme dit sur le message ?
Sinon ca parait pas mal maintenant même si on peu toujours améliorer . En revanche j'avais remarquer un petit truc de rien du tout dès le début mais qui gâche un peu l'esthétique de ton application c'est ta RichTextBox est plus grande que ta Form...Redimensionne donc la Form ou la Box pour un effet Visuel plus sympa
Ah oui un dernier petit truc utile pour pouvoir quitter ton appli "proprement" rajoute un dernier boutton que tu appelleras "Quitter" et dans lequel tu rajoute le code:
End Ce bouton terminera donc ton programme de facon correct plutot que la croix de ton Form Windows
Voili voilou
LC
__________________________________________________________________________
Pensez à accepter les réponses qui vous servent
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 29 janv. 2009 à 13:41
If MsgBox("Souhaitez-vous enregistrer le fichier ?", MsgBoxStyle.YesNo Or MsgBoxStyle.Information, "Enregistrement...") = MsgBoxResult.Yes Then
' Enregistrer le fichier
Else ' Effectuer une autre action (exemple : on tente d'ouvrir un fichier et on a cliqué sur non
' pour l'enregistrement du fichier >>> on ouvre le nouveau fichier)
End If
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 30 janv. 2009 à 19:19
Salut,
Tu as l'air un peu perdu avec tout cà, je vais t'aiguiller :
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
' modif à True car une modification a été effectuée dans la
' RichTextBox
modif = True
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If modif = True Then ' Code pour enregistrer le fichier
End If End Sub
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 1 févr. 2009 à 10:47
Salut,
Voici un code que j'avais sous la main pour envoyer un mail. Il te reste plus qu'à le paramétrer :
Private Function EnvoyerMail() As Boolean
Dim objMessage As System.Net.Mail.MailMessage
Dim objAdrExp As System.Net.Mail.MailAddress
Dim objAdrRec As System.Net.Mail.MailAddress
Dim objSMTPClient As System.Net.Mail.SmtpClient
Try objMessage = New System.Net.Mail.MailMessage()
' Expéditeur
objAdrExp = New System.Net.Mail.MailAddress( "xxx@hotmail.com" )
' Destinataire
objAdrRec = New System.Net.Mail.MailAddress("xxx@gmail.com")
' Adresse email de l'expéditeur
objMessage.From = objAdrExp
' Adresse email du destinataire
objMessage.To.Add(objAdrRec)
' Sujet de l'email
objMessage.Subject = "Ceci est un test"
' Définit si le message accepte le html
objMessage.IsBodyHtml = False
' Définit la priorité de l'email
objMessage.Priority = Net.Mail.MailPriority.High
' Renvoi un email à l'expéditeur si la remise de l'email
' a échoué (il existe d'autres options comme recevoir
' un email si l'expéditeur a bien reçu celui envoyé)
objMessage.DeliveryNotificationOptions = Net.Mail.DeliveryNotificationOptions.OnFailure
' Définit le serveur smtp qui va envoyer l'email
objSMTPClient = New System.Net.Mail.SmtpClient( "smtp.xxxx.xxx" , 587)
' Définit si l'envoi de l'email va utiliser une connexion SSL
objSMTPClient.EnableSsl = True ' Définit l'adresse email et le mot de passe
objSMTPClient.Credentials = New Net.NetworkCredential( "ton adresse email" , "ton mot de passe")
' Envoi l'email
objSMTPClient.Send(objMessage)
' Affiche un message si tout c'est bien passé
MsgBox("Ok")
' La fonction retourne 1 si tout c'est bien passé
Return True
' Si une erreur se produit
Catch ex As Exception
' Affiche l'erreur rencontré
MsgBox("Exception : " & ex.Message)
' La fonction retourne 0 s'il y a eu une erreur
Return False End Try
natinusala
Messages postés72Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 1 février 2012 26 janv. 2009 à 18:33
Merci beaucoup (encore) mais j'aimerai que quand je clique sur Button1 il affiche le contenu de TextBox1.Text dans le RichTextBox1, et quand je clique sur le button2, il enregistre le contenu du RichTextBox1 dans le fichier TextBox1.Text (en remplacant tout évidemment)