Bonjours est-il possible de faire un trim dans un array pour vider les caractères NULL du début ou fin ?
Mon Array ressemble à ça :
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part textbuf : Array[0..buflen] Of Char;
Bonjours est-il possible de faire un trim dans un array pour vider les caractères NULL du début ou fin ?
Mon Array ressemble à ça :
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part textbuf : Array[0..buflen] Of Char;
Copy ?
Tu penses que c'est possible ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Copy(MonBuf,pos(#0,MonBuf),Length(MonBuf));
ça ne serait pas plutôt
Sinon, dans quel utilisation tu en as besoin, Delphi gère les array of char quasiment comme des string et dans certains cas, c'est plus pénible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Copy(MonBuf,0,pos(#0,MonBuf)-1);
C'est compliquer a expliquer,
Quand je fait tourner mon application Client Server entre deux machines réel tout se passe bien , la réception de fichiers se passe normalement.
Mais si je fait tourner le Server sur une machine réel et le Client sur une machine virtuelle , la il y a problème , les transfert ne fonctionne pas
quand je write je buffer reçus , j'ai regardé sa de plus prêt dans le fichiers
et j'ai remarquer que la premier ligne du fichier été composant d'une liste énorme de caractères NULL , en gros j'aimerai bien enlever ses caractères null si il y en a ...
mais ce que je comprend pas , c'est pourquoi il y a t'il des carracteres NULL que quand je contrôle ma machine sous XP sur VMWare :s.
En gros le fichier ressemble a sa après le download ( imaginons c'est un fichiers texte que j'ai telecharger )
#0 = Carracteres NULL
Merci de votre aide,#0#0#0#0#0#0#0##0#0#0#0#0#0#0#...
Bonjours,
voici un document texte télécharge a distance
sous les machines réel c'est super mais pas sur les machine
virtuel , du moins la mienne :/
a dernièrement , pour vider le buffer entre chaque réception j'utilise ZeroMemory,
Je pense pas que le problème soit de la ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ZeroMemory(@monbuffer,sizeof(monbuffer));
Je t'avoue, je n'ai pas encore testé de la communication avec un WMWare, moi j'ai par exemple cassé le gestionnaire de partage, du coup, je passe par le réseau windows pour accéder à mon ordi
Tu utilises quel composant ?
Vérifies-tu la quantité de donnée à lire ?
ZeroMemory, c'est bien surtout pour une utilisation avec les API Windows,
Ce qui est important c'est de savoir si il y a bien de la donnée à lire
Bonjours et merci pour votre réponse,
J'utilise aucun composant pour la communication Client Server
j'utilise l'unité Winsock.pas ( toujours dans un objectif de faire une application purement multithread )
Je comprend toujours pas d'où ses caractères NULL viennent , surtout que ce soit uniquement sous VMWare , et encore pas sur tout les VMWare , c'est d'autant plus bizarre :ss
c'est pour sa que si je pouvais Trim un Array of Char je suis sur que sa pourrai réglé le problème.
as-tu essayé avec
sinon
Code : Sélectionner tout - Visualiser dans une fenêtre à part textbuf :=Trim(MonBuf);
Code : Sélectionner tout - Visualiser dans une fenêtre à part textbuf :=Trim(string(MonBuf));
Merci !!
Mais la partie gauche n'est pas du meme type
le Trim renvoi un string et non pas un array of char :s
Pour avoir utilisé TServerSocket sans fenêtre (il y a une WndProc pour gérer les messages) et TTCPServer en pur thread, tu n'as vraiment pas besoin des API windows pour le multi-thread sauf si c'est pour la figure de style
je ne connais pas assez les API, as-tu une méthode, vérifie combien d'octet renvoie recv et vérifie si select renvoi un nombre positif indiquant qu'il y a de la donné à lire !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager