4D v16.3

ENVOYER PAQUET

Accueil

 
4D v16.3
ENVOYER PAQUET

ENVOYER PAQUET 


 

ENVOYER PAQUET ( {docRef ;} paquet ) 
Paramètre Type   Description
docRef  RefDoc in Référence de document ou canal courant (port série ou document)
paquet  Chaîne, BLOB in Chaîne ou BLOB à envoyer

La commande ENVOYER PAQUET envoie paquet vers un port série ou un document. Si docRef est spécifié, le paquet est écrit dans le document référencé par docRef. Si docRef n'est pas spécifié, le paquet est envoyé vers le port série ou un document préalablement ouvert par la commande REGLER SERIE.

paquet représente une simple série de données, généralement une chaîne de caractères.
Vous pouvez également passer un BLOB dans paquet. Ce principe permet notamment de s’affranchir des contraintes liées à l’encodage des caractères envoyés en mode texte (cf. exemple 2).

Note : Lorsque vous passez un BLOB dans paquet, la commande ne tient pas compte du jeu de caractères éventuellement défini par la commande UTILISER FILTRE. Le BLOB est envoyé sans aucune modification.

Avant d'utiliser ENVOYER PAQUET, vous devez ouvrir un port série ou un document avec la commande REGLER SERIE, ou un document avec une commande de gestion des documents.

Lorsque vous envoyez un paquet vers un document, le premier ENVOYER PAQUET commence à écrire les données au début du document — à moins que ce dernier n'ait été ouvert par la fonction UTILISER FILTRE. Puis, jusqu'à ce que le document soit refermé, chaque paquet envoyé y est écrit à la suite du précédent.

Note : Ce fonctionnement est valide avec un document ouvert par REGLER SERIE. Cependant, pour un document ouvert par Ouvrir document, Creer document ou Ajouter a document, vous pouvez utiliser les commandes Position dans document et CHANGER POSITION DANS DOCUMENT pour connaître et modifier la position à laquelle, dans le document, la prochaine écriture (ENVOYER PAQUET) ou lecture (RECEVOIR PAQUET) aura lieu.

L'exemple suivant écrit, dans un document, des données en provenance de champs. Les valeurs sont écrites sous forme de champs de taille fixe. Dans ce cas, si la longueur d'un champ est inférieure à la taille fixée, le champ est comblé avec des espaces (c'est-à-dire que des espaces sont ajoutés de manière à ce que le champ corresponde à la taille définie). Bien que les champs de valeurs fixes soient un moyen peu efficace de stocker des données, certains systèmes informatiques et certaines applications l'utilisent encore :

 $Doc :=Creer document("") ` Création d'un document
 Si(OK=1) ` Est-ce que le document a bien été créé ?
    Boucle($i;1;Enregistrements trouves([Personnes])) ` Boucle pour chaque enregistrement
       ENVOYER PAQUET($Doc;Remplacer caracteres(15*Caractere(Espacement);[Personnes]Prénom;1))
  ` Envoi du paquet créé à partir d'une chaîne de 15 espaces contenant le champ Prénom.
       ENVOYER PAQUET($Doc;Remplacer caracteres(15*Caractere(Espacement);[Personnes]Nom;1))
  ` Envoi d'un second paquet créé à partir d'une chaîne de 15 espaces contenant le champ Nom.
  ` Cela aurait pu être mis dans le premier paquet, mais est séparé pour des raisons de clarté.
       ENREGISTREMENT SUIVANT([Personnes])
    Fin de boucle
    ENVOYER PAQUET($Doc;Caractere(ASCII SUB))
  ` Envoi du code ASCII SUB, utilisé comme marqueur de fin d'enregistrement par certains ordinateurs.
    FERMER DOCUMENT($Doc` Fermeture du document
 Fin de si

Cet exemple illustre l’envoi et la récupération de caractères étendus via un BLOB dans un document :

 C_BLOB($blob_envoi)
 C_BLOB($blob_reception)
 TEXTE VERS BLOB("âzértÿ";$blob_envoi;UTF8 texte sans longueur)
 FIXER TAILLE BLOB($blob_envoi;16;255)
 $blob_envoi{6}:=0
 $blob_envoi{7}:=1
 $blob_envoi{8}:=2
 $blob_envoi{9}:=3
 $blob_envoi{10}:=0
 $vlDocRef:=Creer document("blob.test")
 Si(OK=1)
    ENVOYER PAQUET($vlDocRef;$blob_envoi)
    FERMER DOCUMENT($vlDocRef)
 Fin de si
 $vlDocRef:=Ouvrir document(document)
 Si(OK=1)
    RECEVOIR PAQUET($vlDocRef;$blob_reception;65536)
    FERMER DOCUMENT($vlDocRef)
 Fin de si



Voir aussi  

CHANGER POSITION DANS DOCUMENT
Position dans document
RECEVOIR PAQUET

 
PROPRIÉTÉS 

Produit : 4D
Thème : Communications
Numéro : 103
Nom intl. : SEND PACKET

Commande(s) éligible(s) à l'exécution dans un process préemptifLe mode Unicode affecte cette commande

 
HISTORIQUE 

Modifié : 4D v11 SQL

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)