cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 8 nov. 2002 à 22:06
Sous Delphi 16 bits, le type string était limité à 255 caractères.
Depuis Delphi 2, le type string peut avoir une longueur de 4 octets à 2 Go !
Maintenant, quand tu parles d'une variable de plus de 255 caractères, c'est pour y stocker quoi ?
Des caractères proprement dit ou des valeurs par un biais détourné ?
Merci de poser des questions précises. C'est la meilleure chance d'obtenir des résultats précis et rapidement.
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 9 nov. 2002 à 17:55
DelphiProg te demandais d'être précis, donc donne-nous plus de détails pour répondre. Parce-ce que là c'est trop juste pour pouvoir répondre à ta question. Pense que ceux qui répondent ne connaissent pas ton programme ni ton problème. Plus il y aura d'informations plus ce sera facile de répondre.
Par exemple dans ta question, on ne sait pas comment tu lis les données sur le socket, ni dans quelle type de variable tu les lis ni comment tu fais un fichier avec le contenu de la variable...
En conclusion :
- Décrire précisément le problème.
- Si le problème tourne autour d'objets précis, donnez la déclaration des ces variables ou objets.
- Si le problème concerne une petite partie de code, alors donnez cette partie de code dans le message !
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 9 nov. 2002 à 18:15
Essaye comme ceci :
procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
Socket: TCustomWinSocket);
Var T:Array Of Byte;
F:File;
L:Integer;
begin
L:=Socket.ReceiveLength;
SetLength(T,L);
Socket.ReceiveBuf(T,L);
AssignFile(F,'aa.jpg');
Rewrite(F,1);
BlockWrite(F,T,L);
CloseFile(F);
end;
Si le fichier n'est toujours pas complet, vérifie la valeur de L par rapport à la taille du fichier. Vérifie aussi que tu ne reçois pas le fichier en plusieurs fois, dans ce cas tu as autant d'évènements que de morceaux de fichiers, il faut donc dans ce cas ajouter tous les morceaux dans le fichier.
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 9 nov. 2002 à 18:30
peut-être aussi, il faut vérifier que l'on a bien reçu quequechose...
procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
Socket: TCustomWinSocket);
Var T:Array Of Byte;
F:File;
L:Integer;
begin
L:=Socket.ReceiveLength;
If l>0 Then
Begin
SetLength(T,L);
Socket.ReceiveBuf(T[0],L);
AssignFile(F,'aa.jpg');
Rewrite(F,1);
BlockWrite(F,T,L);
CloseFile(F);
End;
end;
intello2001
Messages postés102Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention 9 septembre 2003 9 nov. 2002 à 18:33
maintenant c sur blockwrite que sa va pas :
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EInOutError with message 'I/O error 1784'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------