MsxWrite
obj -> MsxWrite(int1, var2[, int3]) : int
Nachrichteninhalt schreiben
Details
- obj: Deskriptor eines Nachrichtenkanals
- int1:
- Nachrichtenbereich:
_MsxMessage_MsxItem_MsxData_MsxEnd
- var2: Variable oder Konstante mt dem zu schreibendem Inhalt
- int3: Länge des Inhalts (optional)
- Resultat:
intFehlerwert - Siehe: Verwandte Befehle ,
MsxOpen (),MsxRead (), Socket-Fehler , Fehler externe Dateioperationen
Diese Anweisung schreibt die Nachrichtenteile in den Nachrichtenkanal. Als Objekt wird der Deskriptor des Nachrichtenkanals, der von MsxOpen () zurückgegeben wurde, übergeben. Folgende Nachrichtenteile können geschrieben werden:
_MsxMessageDamit wird eine neue Nachricht geöffnet. In (var2) muss ein Wert vom Typintungleich0übergeben werden, der als Nachrichten-ID übermittelt wird. Anhand der ID kann ein benutzerdefinierter Nachrichtentyp definiert werden. Eine bereits geöffnete Nachricht wird durch diese Operation automatisch geschlossen._MsxItemDamit wird ein neues Element geöffnet. In (var2) muss ein Wert vom Typintungleich0angegeben werden, der als Item-Id übermittelt wird. Anhand der ID kann ein benutzerdefinierter Elementtyp definiert werden. Ein bereits geöffnetes Element wird durch diese Operation automatisch geschlossen._MsxItemkann nur verwendet werden, wenn zuvor eine Nachricht geöffnet wurde._MsxDataDamit werden Daten in ein Element geschrieben. In (var2) werden die zu schreibenden Daten übergeben. In (int3) kann die maximale Datenlänge angegeben werden, die die Anzahl der zu schreibenden Bytes bei Werten vom Typalphabeschränkt. Alle Datenfelder werden seriell geschrieben._MsxDatakann nur bei einem offenen Element verwendet werden._MsxEndDamit wird die offene Nachricht geschlossen.
Der Rückgabewert ist _rOk, wenn die Operation erfolgreich war.
Beispiel:
tSck # SckConnect('10.1.1.16', 12500);
tMsx # MsxOpen(_MsxSocket | _MsxWrite, tSck);
...
try
{
tMsx->MsxWrite(_MsxMessage, 1);
tMsx->MsxWrite(_MsxItem, 1);
tMsx->MsxWrite(_MsxData, tSender);
tMsx->MsxWrite(_MsxItem, 2);
tMsx->MsxWrite(_MsxData, tAction);
tMsx->MsxWrite(_MsxData, tRecordID);
tMsx->MsxWrite(_MsxEnd, 0);
}
...
tMsx->MsxClose();
tSck->SckClose();
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Der übergebene Deskriptor in (obj) ist ungültig._ErrFldType: Der Wert in (var2) hat nicht den passenden Datentyp._ErrValueInvalid: In (int1) oder (var2) wurde ein falscher Wert übergeben.