Bagbones
Messages postés11Date d'inscriptionmercredi 19 juin 2002StatutMembreDernière intervention 1 mars 2008
-
30 mars 2004 à 11:36
Bagbones
Messages postés11Date d'inscriptionmercredi 19 juin 2002StatutMembreDernière intervention 1 mars 2008
-
30 mars 2004 à 19:09
Bonjour,
j'ai crée un petit programme perl qui tourne sur un poste linux et qui envoit des données vers une interface VB située sur un poste windows. En gros le pg perl lit un fichier, concaténe les lignes dans une chaine et envoit cette chaine à VB pour qu'il l'affiche dans une boite texte (multiline =TRUE).
Le problème est que je n'obtiens aucun retour à la ligne (que des carrés noir à la place du retour à la ligne).
Puisque je lit les lignes depuis un fichier, je lit ègalement le retour à la ligne, mais apparement VB ne sait pas l'interpréter (peut-être parce que c'est au format UNIX).
Y'a t-il une fonction qui convertisse UNIX->DOS, ou faut-il que je remplace ces caractéres manuellement (ce que je ne sais pas faire )-: )?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 30 mars 2004 à 13:33
Tu dois effectivement avoir un Pb sur les retour chariot et retour à la ligne , imcompatible entre Unix et Widows.
Chez Windows, le saut de ligne se compose de deux caractères, celui de code ascii 10 et celui de code ascii 13.
En VB il existe une constante VBCRLF, regroupant ces deux caractères. Ton code Unix ne doit retourner que le caractère de code ascii 10 (=vbCR en VB)
Il faut donc juste que tu fasses un remplacement de ce caractère vbCR par vbCRLF.
Imaginons que dans ton code tu reçoive la ligne à afficher dans une variable nommé sLigne, tu fais :
sLigne = Replace$(sLigne,vbCR,vbCRLF)
Et ta ligne est correcte pour un affichage dasn une textbox ou Multiline = True.
Si tu n'obtiens rien de bien avec ce replace$(), essaye en changeant vbCR par vbLF, au cas ou mes connaissances UNIX serait vascillantes !!!
Bagbones
Messages postés11Date d'inscriptionmercredi 19 juin 2002StatutMembreDernière intervention 1 mars 2008 30 mars 2004 à 19:09
Bonjour,
j'ai essayé ta technique qui n'a pas marché (j'avoue ne pas savoir vraiment pourquoi). Par contre je suis parvenu au résultat voulut tout simplement en utilisant un petit utilitaire sous linux qui se nomme unix2dos avant d'effectuer la concaténation et l'envoit de ma chaîne.
Merci pour votre aide (-:
PS : les fins de lignes sous unix sont marquées par un LF (-: