Sprung zum Seitenende Struktur Themen A...Z Titel << >>

CXI-Basis-Programmierreferenz / Version 2 / Datenspeicherung / CxiNode / Dateifunktionen /

DumpVars... - Variablendump schreiben

[C++] CxiError CxiNode :: DumpVars... (const char *fname = 0, const char *message = 0) const
[C++] static CxiError CXIB :: DumpVars... (CxiHandle self, const char *fname = 0, const char *message = 0)
[C] CxiError cxiDumpVars... (CxiHandle self, const char *fname, const char *message)

[S2:STANDARD] Schreibt den Variablenblock oder Baum als Text in eine Datei (Debugging).

...:
DumpVarsLong = Langformat mit Adressen und HexDumps
DumpVarsShort = Kurzformat ohne Kopfdaten
DumpVars = Standardformat (siehe Text)

fname:
Name der Datei, NULL für Standardausgabe (DOS & OS/2), NULL für "CXIDUMP.LST" (Windows). Existiert die Datei bereits, werden die Daten angehängt.

message:
Überschrift für Ausgabe, NULL für Standardüberschrift

return:
cxiErrorCreate bei Dateizugriffsfehler, sonst 0

Die Memberfunktionen schreiben den Inhalt des eigenen Block (CxiNode oder CxiTree) in die Datei, die beiden anderen Funktionen verwenden als Quelle den Parameter self.

Das von diesen Funktionen geschriebene Format kann nicht wieder eingelesen werden!

DumpVars entspricht DumpVarsLong, wenn zur Compile-Zeit das Makro CXILONGDUMP gesetzt wird, sonst ist DumpVars gleichbedeutend mit DumpVarsShort.

ACHTUNG: Um Platz zu sparen, enthalten die erstellten Dump-Dateien Tabulatorzeichen (ASCII 9). Es wird mit dem TAB-Abstand 8 gearbeitet, dies ist die Standardeinstellung von DOS und BIOS. Stellen Sie den Editor auf diese Tabulatorweite ein oder konvertieren Sie die Datei vorher mit ANTITAB.

Portabilität:
Diese Funktionen sind in allen unterstützten Systemen verfügbar.

Beispiel:
Das genaue Format der Dump-Ausgabe ist versionsabhängig und kann daher von diesem und den anderen Beispielen abweichen.

// Beispielprogramm zu DumpVars...

#include "cxib.h"

int main ()
{
  // Ein Beispielbaum
  CxiTreeMem tm =
     "Hugo=doof;Die Zahl Zehn=10;Boolescher Wert=FALSE;"
     "Einelementige Liste=Text,;Keine Liste=Textstück;"
     "Unterbaum1={Var1=1;MinusElf=-11;Zahlstring='12';}"
     "Unterbaum2={Liste=Dies ist,'eine \4Liste\4',von Strings\n;}";

  // Ein paar verschieden lange Binärvariablen
  static const char binblock [29] = "abc defghijklmnopqrstuvw xyz";
  tm.SetBin ("BinaryData", binblock, sizeof binblock);
  tm.SetBin ("eins", binblock, 1);
  tm.SetBin ("sieben", binblock, 7);
  tm.SetBin ("acht", binblock, 8);
  tm.SetBin ("neun", binblock, 9);
  tm.SetBin ("zehn", binblock, 10);
  tm.SetBin ("elf", binblock, 11);
  tm.SetBin ("fuenfzehn", binblock, 15);
  tm.SetBin ("sechzehn", binblock, 16);

  // Dump
  tm.DumpVarsShort ("DumpType.Dmp", "DumpVarsShort");
  tm.DumpVarsLong ("DumpType.Dmp", "DumpVarsLong");

  return 0;
}

Inhalt der Datei "DumpType.Dmp" nach dem Programmlauf:

***[1] 1995-11-19 01:20:25.660 *** DumpVarsShort

<*Window*> <Root> \
Hugo                    Str     "doof"
Die Zahl Zehn           Num     10
Boolescher Wert         Log     false
Einelementige Liste     Lst     [0] "Text"
Keine Liste             Str     "Textst<81>ck"
Unterbaum1              Sub
Unterbaum2              Sub
BinaryData              Bin     (29) 61 62 63 20 64 65 66 67...  [abc defg]
eins                    Bin     (1) 61  [a]
sieben                  Bin     (7) 61 62 63 20 64 65 66  [abc def]
acht                    Bin     (8) 61 62 63 20 64 65 66 67  [abc defg]
neun                    Bin     (9) 61 62 63 20 64 65 66 67 68  [abc defgh]
zehn                    Bin     (10) 61 62 63 20 64 65 66 67...  [abc defg]
elf                     Bin     (11) 61 62 63 20 64 65 66 67...  [abc defg]
fuenfzehn               Bin     (15) 61 62 63 20 64 65 66 67...  [abc defg]
sechzehn                Bin     (16) 61 62 63 20 64 65 66 67...  [abc defg]

<Node> \Unterbaum1
Var1                    Num     1
MinusElf                Num     -11
Zahlstring              Str     "12"

<Node> \Unterbaum2
Liste                   Lst     [0] "Dies ist"
                                [1] "eine <04>Liste<04>"
                                [2] "von Strings<0A>"


***[2] 1995-11-19 01:20:25.690 *** DumpVarsLong

CXIB version    = CXIB0DBA 2.04 17

Object address  = @2191:4FF8 type 'C++ object'
Status()        = 0x0 CXI#00000 <ok>
Internal flags  = 0x1 (1)

CxiHandle       = @26C6:0008 type 'CxiTree'
Window address  = @270C:0008
 Current size   = 0x186 (390) bytes
 Allocated size = 0x200 (512) bytes
 Auto grow size = 0x100 (256) bytes
Current window  = 0x0 (0)

Media type      = 0x1 (1) 'CxiTreeMem'
Options         = 0x0
Array size      = 0xF (15) @26DF:0008

Name                    Type  Len  Value

<*Window*> <Root> \
Hugo                    Str     5  "doof"
Die Zahl Zehn           Num     4  10  0xA
Boolescher Wert         Log     0  false
Einelementige Liste     Lst     7  String list (1 entry):
                                   [0] "Text"
Keine Liste             Str    10  "Textst<81>ck"
Unterbaum1              Sub     4  0x1 #1
Unterbaum2              Sub     4  0x2 #2
BinaryData              Bin    29  <HexDump follows>
 +0000  61 62 63 20 64 65 66 67  68 69 6A 6B 6C 6D 6E 6F  [abc defghijklmno]
 +0010  70 71 72 73 74 75 76 77  20 78 79 7A 00 .. .. ..  [pqrstuvw xyz....]
eins                    Bin     1   61  [a]
sieben                  Bin     7   61 62 63 20 64 65 66  [abc def]
acht                    Bin     8   61 62 63 20 64 65 66 67  [abc defg]
neun                    Bin     9   61 62 63 20 64 65 66 67 68  [abc defgh]
zehn                    Bin    10  <HexDump follows>
 +0000  61 62 63 20 64 65 66 67  68 69 .. .. .. .. .. ..  [abc defghi......]
elf                     Bin    11  <HexDump follows>
 +0000  61 62 63 20 64 65 66 67  68 69 6A .. .. .. .. ..  [abc defghij.....]
fuenfzehn               Bin    15  <HexDump follows>
 +0000  61 62 63 20 64 65 66 67  68 69 6A 6B 6C 6D 6E ..  [abc defghijklmn.]
sechzehn                Bin    16  <HexDump follows>
 +0000  61 62 63 20 64 65 66 67  68 69 6A 6B 6C 6D 6E 6F  [abc defghijklmno]

<Node> \Unterbaum1
Var1                    Num     4  1  0x1
MinusElf                Num     4  -11  0xFFFFFFF5
Zahlstring              Str     3  "12"

<Node> \Unterbaum2
Liste                   Lst    37  String list (3 entries):
                                   [0] "Dies ist"
                                   [1] "eine <04>Liste<04>"
                                   [2] "von Strings<0A>"

>>> Node count = 0x3 (3)


[i] CXI-Basis-Programmierreferenz
Version 2.10 72 (1014-001), erstellt am 15. April 2000
Textseite 212 von 855, Thema 8289 (DumpVars)
[c] Copyright (c) 1996-2000 by TeraConnect GmbH

Sprung zum Seitenanfang Struktur Themen A...Z Titel << >>