Version 3
SEND PACKET ({DokRef; }Datenpaket)
Parameter | Typ | Beschreibung | |
DokRef | DokRef | Referenznummer des Dokuments oder | |
aktueller Kanal (serielle Schnittstelle oder | |||
Dokument) | |||
Datenpaket | String | Zu sendender Text |
Beschreibung
Der Befehl SEND PACKET sendet ein Datenpaket auf die serielle Schnittstelle oder in das durch den Befehl SET CHANNEL geöffnete Dokument. Ist DokRef definiert, wird das Datenpaket in das in DokRef festgelegte Dokument eingelesen. Ein Datenpaket ist nichts anderes als Daten, normalerweise eine alphanumerische Zeichenkette.
Mit diesem Befehl senden Sie Informationen an ein anderes Programm, einen anderen Rechner, einen Drucker mit einer seriellen Schnittstelle, an einen Magnetkartenleser oder an ein anderes Gerät, das eine serielle RS-232-Schnittstelle hat.
Hinweis: Zur Benutzung des parallelen Ports können Sie das Plug-In ACI Pack verwenden. Es enthält hierfür weitere Befehle.
Bevor Sie SEND PACKET einsetzen, müssen Sie mit SET CHANNEL eine serielle Schnittstelle bzw. ein Dokument öffnen oder ein Dokument mit einem der Dokumentbefehle öffnen.
Beim Einlesen in ein Dokument startet der erste Befehl SEND PACKET am Anfang des Dokuments, außer es wurde mit Append document geöffnet. Bis zum Schließen des Dokuments wird jedes nachfolgende Datenpaket an das zuvor übertragene angehängt.
Hinweis zu Version 6 : Sie können diesen Befehl weiterhin verwenden für ein Dokument, das mit SET CHANNEL geöffnet wurde. Für ein Dokument, das mit Open document, Create document und Append document geöffnet wurde, können Sie nun mit den neuen 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.
Wichtig: 4D verwendet auf allen Plattformen den MacOS Zeichensatz. Jeder Zeichensatz ist wegen der diakritischen Zeichen und der Sonderzeichen auf 8 Bit codiert. Können andere Rechner oder Systeme nur 7 Bit-Daten verarbeiten, müssen Sie einen Zeichenfilter zur Umwandlung der Zeichen mit einem größeren Code als 127 verwenden. Erstellen Sie einen ASCII Filter zur Übersetzung der ASCII Zeichen und führen Sie USE ASCII MAP vor dem Befehl SEND PACKET aus.
Protokolle wie XON/XOFF benutzen zur Kommunikation zwischen Rechnern niedere ASCII Codes. Solche ASCII Codes dürfen nicht übertragen werden, da sie mit dem Protokoll interferieren oder sogar die Kommunikation abbrechen können.
Beispiel
Folgendes Beispiel liest Daten aus Datenfeldern in ein Dokument ein. Die Felder sind von fester Länge. Ist ein Datenfeld kürzer als die vorgegebene Länge, wird es mit Leerzeichen aufgefüllt. Die Verwendung von Datenfeldern mit fester Länge ist zwar keine effektive Methode zum Speichern von Daten, einige Computersysteme und Anwendungen arbeiten jedoch noch damit:
$vhDocRef := Create document ("") ` Erstelle ein Dokument If (OK=1) ` Wurde das Dokument erstellt? For ($vlRecord; 1; Records in selection ([People])) ` Durchlaufe einmal für jeden Datensatz ` Sende erstes Datenpaket. Erstelle es aus einem Zeichensatz mit 15 Stellen, ` Der das Datenfeld Vorname enthält SEND PACKET ($vhDocRef; Change string(15 * Char(Space); [People]First;1)) ` Sende zweites Datenpaket. Erstelle es aus einem Zeichensatz mit 15 Stellen, ` Der das Datenfeld Nachname enthält ` Es könnte zwar im ersten SEND PACKET sein, wird jedoch zur besseren ` Übersicht getrennt SEND PACKET ($vhDocRef; Change string (15 * Char(Space); [People]Last; 1)) NEXT RECORD([People]) End for ` Sende Char(26), das für einige Rechner das Zeichen für Dateiende ist SEND PACKET ($vhDocRef; Char(SUB ASCII Code)) CLOSE DOCUMENT ($vhDocRef) ` Schließe das Dokument End if
Referenz
Get document position, RECEIVE PACKET, SET DOCUMENT POSITION.
Export All Data, Meetings, Serieller Port, Virtual Structure 2, vCard Import Export