samio07
Messages postés3Date d'inscriptiondimanche 24 février 2008StatutMembreDernière intervention27 janvier 2009 27 janv. 2009 à 12:53
svp si qq1 peut me fournir ce code avec une interface graphique avec vb.net et merci
cs_Rank
Messages postés4Date d'inscriptionlundi 12 mai 2003StatutMembreDernière intervention25 juillet 2003 25 juil. 2003 à 19:44
Pourquoi, quand il y a une virgule dans mon texte, ça cré un saut de ligne une fois affiché dans un textbox???
leneuf22
Messages postés156Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention 4 mars 20031 18 juil. 2002 à 20:34
Je précise : c'est le fait de mettre CancelError = true qui fera qu'il y aura une erreur quand tu cliques sur annuler.
Il suffit d'écrire un gestionnaire pour l'erreur n°32755 pour que l'erreur soit gérée. C'est donc normal que tu ne la voie pas :)
leneuf22
Messages postés156Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention 4 mars 20031 18 juil. 2002 à 20:28
Non, tu ne peux pas supprimer la ligne à l'enregistrement. En tous cas pas avec ce que tu utilises (open X for...)
Oui, ça ne génère pas d'erreur dans mon code car j'ai mis un gestionnaire pour l'erreur (étiquette "erreur:") Dans ton code non plus car tu n'as pas mis le cancelerror, et que tu fais un test pour voir si la chaine est vide. Vu que cancelerror est la pour ça, autant l'utiliser. Enfin c'est toi qui vois.
Si tu mets cancelerror et que tu appuies sur annuler pendant ShowSave, ça te fera une erreur si tu n'as pas de gestionnaire.
Mais tu peux supprimer le gestionnaire pour ShowOpen, c'est vrai qu'il ne sert à rien.
En bref :
Enlève les 2 "On Error GoTo erreur"
Enlève les 2 "erreur:
If (Err.Number = 32755) Then Exit Sub"
Affiche la fenêtre ShowSave, et clique sur annuler ;-)
Et note aussi que mon code est moins gourmand en ressources que le tien.
Zikoom
Messages postés6Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention17 juillet 2002 17 juil. 2002 à 22:53
Salut ! Merci mais déjà moi quand j'appuis sur le bouton ANNULER ça ne génère pas d'erreur... Et en fait je ne veux pas supprimer la ligne lors de la lecture du fichier mais lors de l'enregistrement. Donc déjà si tu pouvais m'expliquer où est-ce que tu vois une erreur.. et si tu avais une idée pour l'enregistrement.
Merci !
leneuf22
Messages postés156Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention 4 mars 20031 17 juil. 2002 à 21:40
Quelques remarques :
Tu devrais déclarer tes variables
Tu devrais mettre dialog.CancelError = true au lieu de regarder si la chaine de retour est vide. Ça génère l'erreur n° 32755 quand on clique sur annuler
Au lieu de rajouter du texte dans Text1 à chaque itération, tu devrais le rajouter dans une variable, puis à la fin mettre le contenu de la variable dans tex1.text, comme ça tu as un gain de temps, car à chaque ligne, en arrière plan, des fonctions sont appellées pour afficher de nouveau le texte.
Noublie pas, il n'y a pas que ton code qui est exécuté, le runtime de VB travaille beaucoup, donc ménage-le !
Autre chose : ça sert à quoi d'enregistrer dans 2 fichiers ? À rien ;-)
Tu devrais mettre Output au lieu de Append
Ce qui nous donne :
Option Explicit
Private Sub Form_Load()
With Dialog
.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers|*.*"
.CancelError = True
.Flags = 6158
End With
End Sub
Private Sub Ouvrir_Click()
On Error GoTo erreur
Dim Ligne As String, Texte As String, Test As String, nbr As Integer
Dialog.ShowOpen
Open Dialog.FileName For Input As #1
Do While Not EOF(1)
Input #1, Ligne
Texte = Texte & Ligne & vbCrLf
Loop
Close #1
If (Len(Texte) < 4) Then
Text1.Text = Texte
Exit Sub
End If
Test = Right(Texte, 4)
If (Right(Test, 2) vbCrLf) Then nbr 2
If (nbr 2) And (Left(Test, 2) vbCrLf) Then nbr = 4
If (nbr <> 0) Then Texte = Left(Texte, Len(Texte) - nbr)
Text1.Text = Texte
erreur:
If (Err.Number = 32755) Then Exit Sub
End Sub
Private Sub Enregistrer_Click()
On Error GoTo erreur
Dialog.ShowSave
Open Dialog.FileName For Output As #1
Print #1, Text1.Text
Close #1
erreur:
If (Err.Number = 32755) Then Exit Sub
End Sub
Les flags c'est pour éviter le superflu et prévoir certaines choses (par exemple si on enregistre sur un fichier déjà existant.) On enlève aussi la case lecture seule(qui ne sert à rien)
Dans mon code on manipule le moins possible la variable Texte lors de l'ouverture, car elle peut être volumineuse selon le fichier.
En même temps j'ai résolu ton problème de retour à la ligne.
Au cas ou on ouvre un fichier ne se terminant pas pas un retour à la ligne, c'est géré.
Zikoom
Messages postés6Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention17 juillet 2002 17 juil. 2002 à 16:02
Non mais ce que je veux dire c'est quand plus du VbCrLf qui est ajouté lors de la lecture, il y a un autre saut de ligne qui apparait lors de l'enregistrement ! Même si mon texte était composé d'une ligne et que je l'écrivait moi même dans le textebox :
"aa" deviendrait
"aa
" ---> J'met des guillemet pour que cela paraisse clair :o)
Donc si quelqu'un avait la solution !
Merci :o)
webboy
Messages postés55Date d'inscriptionlundi 11 mars 2002StatutMembreDernière intervention23 mai 2003 17 juil. 2002 à 14:49
en effet il rajoute un saut de ligne car quand tu viens plaquer ton fichier texte ds ta zone de saisie la derniere ligne est constitue de
"ton texte" & vbcrlf
voila
Zikoom
Messages postés6Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention17 juillet 2002 17 juil. 2002 à 14:35
Salut ! Si quelqu'un avait une idée pour supprimer la dernière ligne quand on enregistre : car en fait ça rajoute toujours un saut ligne. Mettez le dans les commentaires :o) Merci !
27 janv. 2009 à 12:53
25 juil. 2003 à 19:44
18 juil. 2002 à 20:34
Il suffit d'écrire un gestionnaire pour l'erreur n°32755 pour que l'erreur soit gérée. C'est donc normal que tu ne la voie pas :)
18 juil. 2002 à 20:28
Oui, ça ne génère pas d'erreur dans mon code car j'ai mis un gestionnaire pour l'erreur (étiquette "erreur:") Dans ton code non plus car tu n'as pas mis le cancelerror, et que tu fais un test pour voir si la chaine est vide. Vu que cancelerror est la pour ça, autant l'utiliser. Enfin c'est toi qui vois.
Si tu mets cancelerror et que tu appuies sur annuler pendant ShowSave, ça te fera une erreur si tu n'as pas de gestionnaire.
Mais tu peux supprimer le gestionnaire pour ShowOpen, c'est vrai qu'il ne sert à rien.
En bref :
Enlève les 2 "On Error GoTo erreur"
Enlève les 2 "erreur:
If (Err.Number = 32755) Then Exit Sub"
Affiche la fenêtre ShowSave, et clique sur annuler ;-)
Et note aussi que mon code est moins gourmand en ressources que le tien.
17 juil. 2002 à 22:53
Merci !
17 juil. 2002 à 21:40
Tu devrais déclarer tes variables
Tu devrais mettre dialog.CancelError = true au lieu de regarder si la chaine de retour est vide. Ça génère l'erreur n° 32755 quand on clique sur annuler
Au lieu de rajouter du texte dans Text1 à chaque itération, tu devrais le rajouter dans une variable, puis à la fin mettre le contenu de la variable dans tex1.text, comme ça tu as un gain de temps, car à chaque ligne, en arrière plan, des fonctions sont appellées pour afficher de nouveau le texte.
Noublie pas, il n'y a pas que ton code qui est exécuté, le runtime de VB travaille beaucoup, donc ménage-le !
Autre chose : ça sert à quoi d'enregistrer dans 2 fichiers ? À rien ;-)
Tu devrais mettre Output au lieu de Append
Ce qui nous donne :
Option Explicit
Private Sub Form_Load()
With Dialog
.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers|*.*"
.CancelError = True
.Flags = 6158
End With
End Sub
Private Sub Ouvrir_Click()
On Error GoTo erreur
Dim Ligne As String, Texte As String, Test As String, nbr As Integer
Dialog.ShowOpen
Open Dialog.FileName For Input As #1
Do While Not EOF(1)
Input #1, Ligne
Texte = Texte & Ligne & vbCrLf
Loop
Close #1
If (Len(Texte) < 4) Then
Text1.Text = Texte
Exit Sub
End If
Test = Right(Texte, 4)
If (Right(Test, 2) vbCrLf) Then nbr 2
If (nbr 2) And (Left(Test, 2) vbCrLf) Then nbr = 4
If (nbr <> 0) Then Texte = Left(Texte, Len(Texte) - nbr)
Text1.Text = Texte
erreur:
If (Err.Number = 32755) Then Exit Sub
End Sub
Private Sub Enregistrer_Click()
On Error GoTo erreur
Dialog.ShowSave
Open Dialog.FileName For Output As #1
Print #1, Text1.Text
Close #1
erreur:
If (Err.Number = 32755) Then Exit Sub
End Sub
Les flags c'est pour éviter le superflu et prévoir certaines choses (par exemple si on enregistre sur un fichier déjà existant.) On enlève aussi la case lecture seule(qui ne sert à rien)
Dans mon code on manipule le moins possible la variable Texte lors de l'ouverture, car elle peut être volumineuse selon le fichier.
En même temps j'ai résolu ton problème de retour à la ligne.
Au cas ou on ouvre un fichier ne se terminant pas pas un retour à la ligne, c'est géré.
17 juil. 2002 à 16:02
"aa" deviendrait
"aa
" ---> J'met des guillemet pour que cela paraisse clair :o)
Donc si quelqu'un avait la solution !
Merci :o)
17 juil. 2002 à 14:49
"ton texte" & vbcrlf
voila
17 juil. 2002 à 14:35