Frage zu WritePrivateProfileStruct????
-
Hi Leute,
ich habe eine gefüllte Structur die so aussieht:
struct Werte_Struct { int TeleID; int ByteNr; int ByteLaenge; int ByteType; int KomWeg; int Kom1Weg; int Kom2Weg; CString Bemerkung; };
Wie kann ich diese Structur mit ihrem Inhalt mit dem Befehl WritePrivateProfileStruct() in eine Datei schreiben?
Habe es so versucht aber das klappt irgendwie nicht!
CString sektion; CString key; CString Pfad; Pfad = GetCFGPath(); Werte_Struct *pwerte = new Werte_Struct; pwerte->Bemerkung = Werte.Bemerkung; pwerte->ByteLaenge = Werte.ByteLaenge; pwerte->ByteNr = Werte.ByteNr; pwerte->ByteType = Werte.ByteType; pwerte->Kom1Weg = Werte.Kom1Weg; pwerte->Kom2Weg = Werte.Kom2Weg; pwerte->KomWeg = Werte.KomWeg; pwerte->TeleID = Werte.TeleID; sektion.Format("%i",Werte.TeleID); key.Format("Wert%i",wertcount); WritePrivateProfileStruct(sektion,key,pwerte,sizeof(pwerte),Pfad); delete(pwerte);
Ps: Er Schreibt zwar etwas in meine Datei aber der Inhalt stimmt nicht. Mache bestimmt irgendwo einen Fehler was diesen Zeiger pwerte angeht.
Danke für eure Hilfen...
C u
-
Iceman999 schrieb:
Wie kann ich diese Structur mit ihrem Inhalt mit dem Befehl WritePrivateProfileStruct() in eine Datei schreiben?
Gar nicht.
Deine Struktur enthält Member, die dynamisch allokierten Speicher verwenden (CString). Damit funktioniert WritePrivateProfileStruct nicht.
-
das heist wenn ich aus meinen CString ein array aus char mache würde es funktionieren? Mit int sollte ich aber keine Probleme haben oder? Scheint nämlich so das er da auch nicht die richtigen Werte drin hat...
C u
-
Die Werte auf die mein Zeiger pwerte zeigt sind vernünftigt gefüllt. Nur sobald ich WritePrivateProfileStruct() ausführe werden diese nicht vernüftig in die Datei geschrieben. Das muss doch Funktionieren da ich doch den Inhalt des Speicers auf die der Zeiger pwerte zeigt mit WritePrivateProfileStruct() wegspeicher. Oder habe ich da was falsch verstanden?
Danke schonmal im voraus
c u
-
Iceman999 schrieb:
Nur sobald ich WritePrivateProfileStruct() ausführe werden diese nicht vernüftig in die Datei geschrieben.
Was genau heißt denn "werden nicht vernünftig geschrieben"?
Was steht drin, und was hättest du erwartet?
Stimmen die Werte, wenn du sie mit GetPrivateProfileStruct wieder ausliest?
-
ich habe folgende werte:
pwerte->Bemerkung = "Hallo"; pwerte->ByteLaenge = 1; pwerte->ByteNr = 2; pwerte->ByteType = 3; pwerte->Kom1Weg = 4; pwerte->Kom2Weg = 5; pwerte->KomWeg = 6; pwerte->TeleID = 7;
danach schreibe ich die mit:
WritePrivateProfileStruct(sektion,key,pwerte,sizeof(pwerte),Pfad);
Wenn ich jetzt mit:
GetPrivateProfileStruct(sektion,key,pwerte,sizeof(pwerte),Pfad);
das ganze auslese habe ich folgende Werte in pwerte(laut debugger):
pwerte->Bemerkung = -842150451
pwerte->ByteLaenge = -842150451
pwerte->ByteNr = -842150451
pwerte->ByteType = -842150451
pwerte->Kom1Weg = -842150451
pwerte->Kom2Weg = -842150451
pwerte->KomWeg = -842150451
pwerte->TeleID = 7Also der einzige Wert der Stimmt ist der letzte und die anderen scheinen irgendwie nicht initialisiert zu sein.
Kann das an dem sizeof(pwerte) liegen weil ich glaube beim schreiben schreibt er das schon so blöd.
Ich habe WritePrivateProfileStruct so verstanden:WritePrivateProfileStruct (SEKTION,KEY,BUFFER den ich Speichern möchte,GRÖSSE des BUFFER den ich Speichern möchte,FILENAME);
Irgendwie kapier ich das nicht warum der eine Wert drin steht und die anderen nicht zumal z.B. ByteType oder Kom1Weg auch vom Typ INTEGER sind.
Hoofe ich konnte dir das Problem verständlich erklären.
Danke für die Hilfe
C u