000
21.09.2005, 14:59 Uhr
zippo
|
Moin moin zusammen...
mein Problem wäre folgendes: Ich habe eine Funktion, die eine struct mit Werten füllen soll und diese dann als Rückgabewert an die aufrufende Funktion zurückgibt bzw. geben soll. Das Ganze sieht ungefähr so aus:
C++: |
struct XMLInfo *FORMREFERENCE(string _line) { int i, j, dif; string inhalt; AnsiString content; XMLInfo *xml_info;
if(_line.find(XMLNodeForm) != -1) { if(_line.find(XMLFormRefName) != -1) { i = _line.find_first_of(XMLTagQuot); j = _line.find(XMLFormRefTable); dif = j-i;
inhalt = _line.substr(i+1, dif-3); content = inhalt.c_str();
xml_info->Name = content; }
if(_line.find(XMLFormRefTable) != -1) { i = _line.find(XMLFormRefTable); j = _line.find(XMLFormRefKey); i = i + 11; j = j - 2; dif = j-i;
inhalt = _line.substr(i, dif); content = inhalt.c_str();
xml_info->Text = content; } ...... ...... ......
return xml_info; }
|
Innerhalb der Funktion sieht das alles schon ganz gut aus...soll heißen, wenn ich im Debug-Modus die Variablen abfrage stimmt soweit alles. In der Aufrufenden Funktion stimmt jedoch nur noch so ca. die hälfte der Werte mit denen aus der aufgerufenen Funktion überein (hoffe Ihr könnt mir noch folgen ). Die dazugehörige struct sieht folgendermaßen aus:
C++: |
struct XMLInfo{ AnsiString Name; bool Visible; bool Enabled; AnsiString Key; AnsiString Text; TStringList *Items; };
|
Im AnsiString Text steht dann bspw. nur noch NULL und bool Enabled ist von true zu false mutiert. In der aufrufenden Funktion sieht das alles so aus:
C++: |
XMLInfo *info;
AnsiString xml_name, xml_text, xml_key; bool xml_vis, xml_en;
info = FORMREFERENCE(line); xml_name = info->Name; xml_text = info->Text; xml_key = info->Key; xml_vis = info->Visible; xml_en = info->Enabled;
|
Wenn mir irgendjemand auf die Sprünge helfen könnte wäre ich echt dankbar...mir brummt von dieser sache nämlich mittlerweile der Schädel...Danke schon mal,
Zippo |