cs_MicLau
Messages postés7Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2003
-
1 avril 2003 à 13:55
cs_MicLau
Messages postés7Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2003
-
2 avril 2003 à 16:21
Bonjour,
Je dois envoyer un message via TCPIP d'un ordinateur à un autre. Mon problème est le suivant :
Lorsque je concatène 3 champs, Delphi compresse mes données. Pour être plus clair, voilà un exemple :
Var
A:String[5]
B:String[5]
C:String[5]
CONCAT:String[15]
A:='AAA'
B:='BB'
C:='CCCC'
CONCAT:=A+B+C
--> Delphi me donne :
CONCAT = 'AAABBCCCC'
--> Alors que je souhaiterai avoir :
CONCAT = 'AAASSBBSSSCCCCS' ('S' correspond à un espace).
En effet, le PC receveur reçoit le message dans une structure prédéfinie.
Que puis-je faire pour résoudre ce souci ?
En fait, dans mon exemple, j'ai pris des champs ShortString dimensionnés. Mais, quelle solution pourrait être possible si j'opte pour des champs String pour mes variables ?
Merci grandement d'avance pour vos solutions, car à ce jour, je suis vraiment bloqué pour la suite de mes développements.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 1 avril 2003 à 21:39
De remplir au préalable avec des espaces ne change rien au problème puisque Delphi ajustera l'octet contenant la longueur de la chaine.
Utiliser des string ne change rien non plus puisque la chaine sera suivi d'un caractère nul pour indiquer la terminaison.
Il ne reste donc plus qu'à ajuster chaque chaine pour qu'elle contienne le nombre de caractères voulus en lui ajoutant des espaces à droite.
cs_Bestiol
Messages postés833Date d'inscriptiondimanche 6 janvier 2002StatutMembreDernière intervention 3 novembre 20051 2 avril 2003 à 09:58
Flûte !!
J'avais corrigé, juste après avoir posté mon message, ce que j'avais dis... Je m'étais rendu compte que ce que j'avais fait était nul, et j'avais remis un code qui devait normalement marcher... Mais comme le réseau CodeS-SourceS rame un peu aux heures de pointe, bah ce n'est apparemment pas passé !
Encore désolé pour l'erreur que j'ai faite, mais je l'avais corrigée, en montrant ce que tu dis ici, cher Delphiprog !!
cs_MicLau
Messages postés7Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2003 2 avril 2003 à 16:21
Ca y est, ca fonctionne !
J'ai dû créer des fonctions qui me permettent de concaténer des blancs pour atteindre la longueur du champ réelle à envoyer.
Je ne savais pas que Delphi gérer le contenu des variables de façon dynamique (étant un peu novice dans Delphi).