
Je dois manipuler des chaînes de caractères de l'ordre de 250-300k (parfois 500k), je voudrais faire des Left, Trim, FindString et Mid avec ces chaînes.
Le problème c'est que je regarde dans l'aide (variables et types) et je vois que les chaînes ont une longueur illimitée, longueur de chaîne + 1.
Par contre j'ai vu (je sais plus dans quel post) qu'il y avait des soucis avec les chaînes de plus de 64k.
Donc là je voudrais connaître la réalité de la chose, et si possible la limite exacte si il y en a.
Dans le même combat, je dois faire ça en faisant des multi-threads et des connections réseau (j'utilise la lib network de purebasic).
Donc je fais joujou avec un buffer local et des PeekS.
J'ai pensé à faire (si limite il y a) une liste de chaînes de 64k, mais les listes chaînées m'ont l'air globales et je ne connais pas à l'avance le nombre de threads qui seront lancés (on pourrait en avoir 10 comme 150).
Donc voilà je rame un peu.
Je me permet aussi de mettre ma contribution à l'édifice en proposant une petite procédure pour gérer les déconnections (event 4)
Code : Tout sélectionner
Procedure.b NetworkClientEvent2(ConnectionID)
;*********************************************************************
;* Idem que NetworkClientEvent mais avec l'événement Déconnecté (4). *
;*********************************************************************
If WSAAsyncSelect_(ConnectionID,WindowID(),$9000,#FD_CLOSE) = #SOCKET_ERROR
ProcedureReturn 4
Else
ProcedureReturn NetworkClientEvent(ConnectionID)
EndIf
EndProcedure
