Winsock et VbCrlf

GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003 - 19 déc. 2003 à 00:23
mickadevelop Messages postés 55 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 4 juin 2010 - 24 juin 2008 à 02:28
Voila je concois un petit ircd (Internet Relay Chat Deamon). Jai créé dans mon application une textbox pour i rentré les element que ji recoi via socket. Ensuite jai mis la textbox.multiline = true. Maintenant je recoi mes donnée via socket. Je les stock dans la textbox avec cette ligne de commande:

Private Sub SERVER_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
SERVER.Item(Index).GetData strData, vbString
Text1.Text = Text1.Text & vbCrLf & strData
'strdata sont les donner qui entre par le socket
End Sub


Pourtant il garde tout les données sur la meme ligne et change de ligne seulement quand il est rendu au bout.
Normalement il serait sensé changer de ligne a chaque nouvelle donnée entré. On peut appercevoir le Chr(13) dans le textbox si sa peut aidé.

Ma question est comment faire pour entré 1 ligne de donnée1

Par exemple je recoi:

NICK TEST
USER ATD "*" "127.0.0.1" :INA Team Administrator

A la fin de chaque ligne je recoi un crlf.

Il apparait comme suis dans ma textbox:

NICK TEST(lecrlf)USER ATD "*" "127.0.0.1" :INA Team Administrator

Moi je voudrais quil apparaisse comme suis:

NICK TEST
USER ATD "*" "127.0.0.1" :INA Team Administrator

Si quelqun a une idée sa fait un baille que je cherche a résoudre se trouble.

Merci d'avance.

"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein

13 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 déc. 2003 à 01:07
Est-ce que ton TextBox est bien en MultiLine = True ??

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003
19 déc. 2003 à 01:09
Oui il l'est bien.

"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 déc. 2003 à 01:12
je disais ca juste au cas ou....

essaies de faire :
SERVER(Index).GetData strData, vbString , bytesTotal


By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003
19 déc. 2003 à 01:21
Meme probleme

"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 déc. 2003 à 01:25
Le Socket semble ne pas avoir de rapport avec ton probleme....

en gros, tu as :

Text1.Text = Text1.text & VbCrLf & Var1

qui est sur une seule ligne.......

étrange, surtout que ton VbCrLf ne transite pas par le socket.... le texte qui y transite est il bien du texte plat, sans VbCrLf ou quoi que ce soit ..??

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003
19 déc. 2003 à 01:31
D'Apres la facon que les données entre en principe il serait suposé rentré avec le Chr(13) <- (vbcrlf) a la fin de chaque ligne de données et c'est pour sa ke je ne comprend pas ! :P jai essayer en enlevant vbcrlf dans la commande et sa fesait la meme chose

"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 déc. 2003 à 01:37
je me demande ......

testes :

strData = replace ( strData , vbCr , Vbnullstring )


ou

strData = replace ( strData , vbLf , Vbnullstring )


By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003
19 déc. 2003 à 01:55
Ok quand je fait

strData = replace ( strData , vbLf , Vbnullstring )


Sa met pas les Chr(13) dans le textbox mais sa arrenge pas le prob

"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein
0
GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003
19 déc. 2003 à 02:01
Quand je recoi les données il les envoi toute d'une shot et c'est pour sa qui met toute les donner en 1 ligne il fodrait que je reussise a les separé ligne par ligne avec le crlf que le client envoi deja

"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein
0
GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003
19 déc. 2003 à 02:06
Private Sub SERVER_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
Dim test() As String
I = "0"
SERVER(Index).GetData strData, vbString, bytesTotal
test() = Split(strData, Chr(13))
For I = LBound(test) To UBound(test)
If test(I) <> "" Then
    MsgBox (test(I))
    Text1.Text = Text1.Text & test(I) & vbCrLf
End If
Next
'strdata sont les donner qui entre par le socket
End Sub


Jai fait du progres mais reste quil fodrait qui reussise a detecté le chr(13) a moin que je me trompe de char.
"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein
0
GrEeNbUg Messages postés 8 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 19 décembre 2003
19 déc. 2003 à 02:54
C'est beau mon probleme est arrengé c'était le chr 10 car 10 = Lf :P

"Il n'y a que deux choses d'infini dans la vie: l'univers et la bêtise humaine... et pour l'univers c'est pas sur."

Albert Einstein
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 déc. 2003 à 11:49
En fait, Winsock envoie les données quand son Buffer est plein, ou qu'il a en entrée un Chr(13).

A l'arrivée, tu pers donc ton Chr(13). C'est pour cela que CRLF devient seulement Chr(10). C'est pour cela que je t'ai fait remplacer VbLf par VbNullString.

Il suffit en fait de le remplacer par VbCrLf

strData = replace ( strData , vbLf , VbCrLf )


Content que ca fonctionne pour toi....

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
mickadevelop Messages postés 55 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 4 juin 2010
24 juin 2008 à 02:28
bonsoir,

Euh tu es sur de ce que tu avance renfield? car moi lorsque j'envoi une requette http et que je recois les données en fait dans l'entete je me retrouve avec des crlf et ensuite dans le corps de la page ...   je me retrouve avec des lf. est ce normal? cela ne viens pas des serveurs qui sous unix marques les saut de ligne avec /n (lf) ? Merci de m'aider car la je patauge un tit peu

mickadevelop
0
Rejoignez-nous