Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung | |||||
RFSV Protokollbeschreibung |
Dieses Kommando überprüft die übergebenen Dateibezeichnungen, ob daraus eine korrekte Filenamensbezeichnung zu generieren ist. Die Dateibezeichnungen werden in drei gleichberechtigten Parameter übergeben.
Jede Dateibezeichnung wird aufgeteilt in 5 Elemente. Filesystem, Devicename, Pfadname, Filename und Extension. Fehlt in der ersten Dateibezeichnung eines der 5 Elemente, wird dieses aus der zweiten Dateibezeichnung übernommen. Fehlt es dort ebenfalls, so wird noch die dritte Dateibezeichnung untersucht. Ist das Element in keinem der drei Dateibezeichnungen enthalten, wird es durch einen Standardwert aufgefüllt.
Ist so eine komplette Dateibezeichnung entstanden, dann wird berechnet, wie lang jeder Teil der Bezeichnung ist und ob der Filename oder die Extension Wildcards enthalten (Vergleiche auch PARSE$ im OPL-Handbuch)
Der Befehl PARSE ist folgendermaßen in das PLP eingebaut:
Header | PLP | RFSV-PARSE | Footer | CRC | ||||
---|---|---|---|---|---|---|---|---|
16 10 02 | 32 03 02 01 | Kommando 1a 00 |
Größe 11 00 |
Name 1 "REM::\M:\AGENDA\" |
Name 2 "*.AGN" |
Name 3 "AGENDA" |
10 03 | 12 34 |
Eine gültige Antwort erfolgt mit dem Kommando RESPONSE und liefert einen Fehlercode zurück.
Da die Antwort so lang ist, daß sie hier nicht mehr auf einen Bildschirm passen würde, habe ich sie in zwei Teile aufgeteilt. Tatsächlich ist es aber eine Nachricht!
Header | PLP | RFSV-RESPONSE Teil 1 | ... | |||||||
---|---|---|---|---|---|---|---|---|---|---|
16 10 02 | 33 02 03 01 | Kommando 2a 00 |
Größe 02 00 |
Ergebnis 00 00 |
Längenangaben | ... ... ... |
||||
Filessys. 05 |
Device 02 |
Pfad 05 |
Datei 06 |
Endung 04 |
... | RFSV-RESPONSE Teil 2 | Footer | CRC | |
---|---|---|---|---|
... ... |
Flags 01 |
Absoluter Dateiname "REM::\AGN\AGENDA.AGN" |
10 03 | 12 34 |
fette | Werte stellen feste Werte dar, die exakt so verwendet werden! |
kursive | Werte stellen Beispiele dar, die anhand des Befehls eine unterschiedliche Bedeutung haben. |
Das Kommando PARSE besteht aus 5 Informationseinheiten. Diese haben folgende Bedeutungen:
Länge in Byte | mögliche Werte | Bedeutung | |
---|---|---|---|
Kommando | 2 Byte | 00 1a (fest) | Die Kommandokennung hat immer den gleichen Wert! |
Größe | 2 Byte | variabel | Da insgesamt drei Strings mit jeweils 3 Nullbytes versendet werden, müssen die 0-Bytes immer mitgezählt werden! |
Name 1 | ab 1 Byte | 0-terminierter String | Es ist die erste Dateibezeichnung zu übergeben, die entweder alle 5 Elemente enthalten kann, oder nur eine Untermenge davon! |
Name 2 | ab 1 Byte | 0-terminierter String | Es ist die zweite Dateibezeichnung zu übergeben, die entweder alle 5 Elemente enthalten kann, oder nur eine Untermenge davon! |
Name 3 | ab 1 Byte | 0-terminierter String | Es ist die dritte Dateibezeichnung zu übergeben, die entweder alle 5 Elemente enthalten kann, oder nur eine Untermenge davon! |
Das Kommando PARSE wird mit einem RESPONSE beantwortet. Dieser liefert als Ergebnis einen Fehlercode zurück. Desweiteren einen kompletten Dateinamen mit allen 5 Elementen, sowie die Information, wie lang jedes Element ist. In Flags wird dann noch kenntlich gemacht, welche Wildcards in der Angabe enthalten sind.
Länge in Byte | mögliche Werte | Bedeutung | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Kommando | 2 Byte | 00 2a (fest) | Die Kommandokennung hat immer den gleichen Wert! | |||||||||
Größe | 2 Byte | variabel | Die Länge hängt von dem zurückgelieferten Dateinamen ab. | |||||||||
Ergebnis | 2 Byte | variabel | Das Ergebnis kann folgende Werte erhalten:
|
|||||||||
Filesystemlänge | 1 Byte | 05 (fest) | Als Filesystem kommen nur zwei Werte in Frage. "REM::" bezeichnet das Remote-Filesystem und "LOC::" das Lokale Filesystem. Da aber die Anfrage immer im Zusammenhang mit dem Romote-rechner steht, kenn ich nur die Angabe "REM::". | |||||||||
Devicelänge | 1 Byte | variabel | Als Device ist der Laufwerksbuchstabe unter DOS/WINDOWS, oder der Devicename gemeint. In der Realisierung für das BeOS wird die Länge des Devicenames übermittelt. | |||||||||
Pfadlänge | 1 Byte | variabel | Es ist die Länge des Pfades anzugeben. | |||||||||
Dateinamenlänge | 1 Byte | variabel | Die Länge des Dateinamens ist ohne die Extension zu übergeben. | |||||||||
Extensionlänge | 1 Byte | variabel | Die Länge der Extension berechnet sich inclusive des trennenden Punktes. | |||||||||
Flags | 1 Byte | variabel | In dieser Informationseinheit wird verschlüsselt, ob und wo Wildcards verwendet wurden. Folgende
Werte sind hier additiv möglich:
|
|||||||||
Absoluter Dateiname | ab 1 Byte | 0-terminierter String | Es wird der zusammengestellte absolute Dateiname mit übergeben, auf den sich die obigen Angaben beziehen. Dieser Name wurde aus den 3 Namens-Strings zusammengebaut und enthält evtl. auch Eintragungenen aus einem Standardpfad! |
Homepage von Michael Pieper | |||||
BeOS Programme | |||||
PalmBeach | |||||
PSION Link Protokollbeschreibung | |||||
RFSV Protokollbeschreibung |