4D v16.3RECEIVE PACKET |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
RECEIVE PACKET
RECEIVE PACKET
Der Befehl RECEIVE PACKET liest die Daten von einer seriellen Schnittstelle oder von einem Dokument. Ist DokRef definiert, findet dieser Befehl Daten aus einem Dokument, das mit Open document, Create document oder Append document geöffnet wurde. Ist DokRef nicht definiert, findet dieser Befehl Daten aus einer seriellen Schnittstelle oder einem Dokument, das mit SET CHANNEL geöffnet wurde. Die eingelesenen Zeichen werden, unabhängig von der Quelle, in EmpfangeVar zurückgegeben. Dies muss eine Variable von Typ Text, String oder BLOB sein. Wurden die Zeichen über den Befehl SEND PACKET gesendet, muss der Typ zu dem des gesendeten Pakets passen. Hinweise:
Um eine bestimmte Anzahl Zeichen einzulesen, übergeben Sie diese Anzahl in NumBytes. Ist die Variable EmpfangeVar vom Typ Text, können Sie in einem Aufruf theoretisch bis zu 2 GB Text einlesen. Um Zeichen bis zu einem bestimmten String einzulesen (bestehend aus ein oder mehreren Zeichen), übergeben Sie diesen String in StopChar. Er wird nicht in EmpfangeVar zurückgegeben. Wird der in StopChar angegebene String nicht gefunden, gilt folgendes:
Beim Ausführen von RECEIVE PACKET kann der Benutzer dem Empfang durch gleichzeitiges Drücken der Strg-, Alt- und Umschalttaste bzw. auf Macintosh der Wahl-, Befehls- und Umschalttaste unterbrechen. Die Unterbrechung generiert den Fehler -9994. Sie können ihn mit einer Fehlerverwaltungsmethode, installiert mit ON ERR CALL, abfangen. Eine Unterbrechung des Empfangs ist in der Regel nur bei der Kommunikation über eine serielle Schnittstelle erforderlich. Beim Auslesen eines Dokuments beginnt das erste RECEIVE PACKET am Anfang des Dokuments auszulesen. Alle darauffolgenden Datenpakete beginnen mit dem Zeichen, das auf das zuletzt gelesene Byte folgt. Hinweis: Sie können diesen Befehl verwenden für ein Dokument, das mit SET CHANNEL geöffnet wurde. Für ein Dokument, das mit Open document, Create document oder Append document geöffnet wurde, können Sie mit den Befehlen Get document position und SET DOCUMENT POSITION die Position festlegen oder ändern, wo das nächste Auslesen (SEND PACKET) oder Einlesen (RECEIVE PACKET) stattfinden soll. Versuchen Sie, über das Ende einer Datei hinaus zu lesen, gibt RECEIVE PACKET die gelesenen Daten bis zu diesem Punkt zurück und setzt die Systemvariable auf 1. Das nächste RECEIVE PACKET gibt eine leere Zeichenkette zurück und setzt die Systemvariable auf 0. Folgendes Beispiel liest 20 Zeichen aus einer seriellen Schnittstelle in die Variable getTwenty: RECEIVE PACKET(getTwenty;20) Folgendes Beispiel liest Daten aus dem in der Variablen myDoc zugewiesenen Dokument in die Variable vData. Ausgelesen wird bis zur Zeilenschaltung: RECEIVE PACKET(myDoc;vData;Char(Carriage return)) Folgendes Beispiel liest Daten aus dem in der Variablen myDoc zugewiesenen Dokument in die Variable vData. Ausgelesen wird bis zum HTML Tag </TD> (Ende der Tabellenzelle): RECEIVE PACKET(myDoc;vData;"</TD>") Folgendes Beispiel liest Daten von einem Dokument in Datenfelder. Die Daten werden in Datenfelder von fester Länge gespeichert. Die darin enthaltene Methode ruft eine Unterroutine auf, die schleifende Leerzeichen entfernt (Leerzeichen am Ende von Zeichenketten): $vhDocRef :=Open document("";"TEXT") ` Öffne ein TEXT Dokument Nachfolgende Methode Strip entfernt die Leerzeichen am Ende der Daten: For($i;Length($1);1;-1) ` Durchlaufe vom Ende des Zeichensatzes bis zum Start Nach Aufrufen von RECEIVE PACKET hat die Systemvariable OK den Wert 1, wenn das Datenpaket ohne Fehler empfangen wurde. Wurde die Kommunikation unterbrochen oder bei einem Übertragungsfehler hat OK den Wert 0.
Siehe auch
Get document position
|
EIGENSCHAFTEN
Produkt: 4D GESCHICHTE
Geändert: 4D v11 SQL SCHLÜSSELWÖRTER BOM ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||