1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| While Pos('#', sMessageRecu) = 0 do
begin
sMessageRecu := Socket.ReceiveText;
//On vérifie que le message reçu ne soit pas vide
if sMessageRecu = '' then
exit;
//On termine la procédure si on a pas de code barre
//Je remplace les CRLF (= Retour Chariot RC sous WinDev) par des ;
sMessageRecu := StringReplace(sMessageRecu, CRLF, ';', [rfReplaceAll]);
//Je sépare ma chaine à chaque ;
Split(';',sMessageRecu,aLitSocket);
//Ma chaine est de la forme :
//Soit sur un Intermec TailleSocket + TailleCodeBarre + CodeBarre
//Soit sur un PSION TailleCodeBarre + CodeBarre
//Pour ne pas avoir d'erreur je récupère ma TailleCodeBarre qui est toujours en avant dernière position
iTailleCodeBarre := aLitSocket[aLitSocket.Count - 2];
//Et mon CodeBarre qui est toujours en dernière position
sCodeBarre := aLitSocket[aLitSocket.Count -1];
//On vérifie que le code barre existe dans le message reçu
if sCodeBarre = '' then
exit;
WriteCodeBarre(sCodeBarre);
// memServer.Lines.Add('Lecture du code barre :' + sCodeBarre);
memServer.Lines.Add(Socket.RemoteAddress + ' : '+ sCodeBarre);
addIP := Socket.RemoteAddress;
//Je récupère le code barre et lui enlève le marqueur fin # avec le -1
sCodeBarre := Copy(sCodeBarre,1,Length(sCodeBarre) - 1); //-1
WriteCodeBarre(sCodeBarre + ' : ' + idConnexion);
RenvoiRequete(addIP, sCodeBarre, OracleSession, OracleDataSet, DataSource, DBGrid, ClientDataSet, ServerSocket, oqRechercheAddIP);
end; |
Partager