Wiki source code of Format der vd_ Dateien

Last modified by Stefan Taferner on 2014/04/21 22:37

Show last authors
1 Die vd_ Dateien sind entladene Datenbank Tabellen.
2
3 Kodiert ist die Datei in Latin1, wobei es vermutlich das Westeuropäische Windows /cp1250/ ist. Zeilenumbruch ist /CR+LF/.
4
5 Sie bestehen aus einem Header und mehreren Tabellen mit Inhalt. Zur Trennung zwischen Header und Tabellen, und zwischen den Tabellen untereinander, wird eine Zeile mit Strichen verwendet. Das Ende einer vd_ Datei ist eine Zeile die "XXX" enthält.
6
7 Lange Zeilen werden umgebrochen in dem in der *Folgezeile* als erste Zeichen "~\~\" steht. Man kann also beim Einlesen erst sagen ob die aktuelle Zeile komplett ist wenn man die Folgezeile gelesen hat.
8
9 == Aufbau des Headers ==
10
11 Beispiel:
12
13 |{{{EX-IM
14 N C:\PROGRA1\ETS2V12\ets2.vd_
15 K ETS2 Product Administration
16 K
17 D 2010-09-10 08:05:17
18 V 5.10
19 H virtual_device
20
21 ----
22 }}}
23
24 Zeile **EX-IM** ist die fixe Kennung des Datenbestandes und immer so vorhanden.
25 Zeile **N** gibt den Namen der Datei an mit der sie gespeichert wurde.
26 Zeile **K** sind Kommentare.
27 Zeile **D** enthält das Datum der Erzeugung der Datei.
28 Zeile **V** ist die Version, vermutlich des Dateninhalts und nicht des Datenformats.
29 Zeile **H** gibt den Typ des Datenbestandes. Hier wurde bisher "virtual_device" und "project" gesehen.
30
31 == Aufbau einer Tabelle ==
32
33 Eine Tabelle besteht wieder aus einem Header und den Daten. Der Header beginnt mit einem T Satz, jeder Datensatz beginnt mit einem R Satz. Die Tabelle wird mit einer Trennzeile oder mit der Datei-Ende Kennung "XXX" beendet.
34
35 Beispiel:
36
37 |{{{T 3 manufacturer
38 C1 T3 1 4 N MANUFACTURER_ID
39 C2 T3 3 50 Y MANUFACTURER_NAME
40 C3 T3 1 4 Y ADDRESS_ID
41 R 1 T 3 manufacturer
42 1
43 Siemens
44
45 R 2 T 3 manufacturer
46 2
47 ABB
48
49 R 3 T 3 manufacturer
50 7
51 Busch-Jaeger Elektro
52 ----
53 }}}
54
55 Die Zeilen des Tabellen-Headers sind so zu verstehen:
56
57 Zeile **T**, z.B.: {{{T 3 manufacturer}}}
58 Es handelt sich hier um die 3te Tabelle im Datenbestand mit dem Namen "manufacturer".
59
60 Zeile **Cx**, z.B.: {{{C2 T3 3 50 Y MANUFACTURER_NAME}}}
61 Jede Zeile beschreibt eine Spalte der Tabelle. {{{C2 T3}}}bedeutet die 2te Spalte der 3ten Tabelle. Die Zahl **3** nach dem **T3** gibt den Datentyp an. Folgende Datentypen sind bisher bekannt:
62
63 **1** - 4 Byte Integer
64 **2** - 2 Byte Small-Integer
65 **3** - String
66 **4** - Unbekannt
67 **5** - Double
68 **6** - Unbekannt
69 **7** - Unbekannt
70 **8** - Byte Array
71
72 Die nächste Zahl, **50** im Beispiel, gibt die Länge des Feldes in Bytes an.
73
74 Danach kommt "Null erlaubt", also ob die Spalte leer sein darf. **N** bedeutet dass die Spalte immer einen Inhalt haben muss. **Y** oder **N** sind gültige Werte.
75
76 {{{MANUFACTURER_NAME}}} ist der Name der Spalte.
77
78 Zeile **Rx**, z.B.: {{{R 1 T 3 manufacturer}}}
79 Der 1te Datensatz der 3ten Tabelle mit dem Namen "manufacturer". Es folgen so viele Zeilen wie die Tabelle im Header Spalten definiert hat. Enthält eine Datenzeile auf den ersten beiden Stellen "~\~\", so ist sie eine Folgezeile der vorhergehenden Zeile, und gehört an die vorhergehende Zeile angehängt. Die Zeilen sind nach 80 Zeichen umgebrochen.