Hallo gemeinsam!
Ich schlage mich seit einigen stunden mit einem kleinen problem rum.
Ich möchte, dass ein Benutzer meines programmes ein Profil anlegen und speichern kann. Das profil steht hier drin:
und soll im laufe der arbeiten noch beliebig verlängert werden. Die einzelnen strings sollen dann durch die Einstellungen des Benutzers überschireben werden, sodass ich sie dann mit chProfile[xy] auslesen kann. Das klappt auch prima. Jedenfalls möchte ich dieses Profil jetzt in eine Datei speichern:
Es wird anscheinend auch gespeichert. Zumindest wird die datei angelegt und es gibt keine Warnungen. Allerdings ist die Datei gerade mal 1kb groß, deshalb glaube ich, dass nicht alles gespeichert wird. Und der gesamte Binary-code sieht in etwa so aus: d‰!
Das kommt mir ein bischen sehr wenig vor...
Dann soll die Datei auch noch ausgelesen werden und dabei das "standardprofil" im programm überschreiben:
Hier haperts dann, denn die messagebox gibt mir nur das aus, was in dem "Standardprofil steht und nicht das, was ich in die datei speichere.
Ich vermute, dass es irgendwie an dem array liegt, komme aber nicht wirklich klar, da die erklärungen im i-net leider oftmals wenig aufschlussreich sind.
Ich wäre euch sehr dankbar, wenn ihr mir mit ein paar gedankenstößen weiterhelfen könntet!
Ich schlage mich seit einigen stunden mit einem kleinen problem rum.
Ich möchte, dass ein Benutzer meines programmes ein Profil anlegen und speichern kann. Das profil steht hier drin:
Code:
char *chProfile[] = { "Name",
"Farbe",
"Setting1",
"Setting2"
};
und soll im laufe der arbeiten noch beliebig verlängert werden. Die einzelnen strings sollen dann durch die Einstellungen des Benutzers überschireben werden, sodass ich sie dann mit chProfile[xy] auslesen kann. Das klappt auch prima. Jedenfalls möchte ich dieses Profil jetzt in eine Datei speichern:
Code:
int SaveProfile (char *chProfile[])
{
char Answer = MessageBox (NULL, "Save your Profile Setup?", "Saving", MB_YESNO);
if ( Answer == IDNO)
return (0);
else if (Answer == IDYES)
{
ofstream Output ("Profile.pfl", ios::binary);
for (int i=0; i<sizeof(chProfile)/sizeof(chProfile[0]); i++)
{
Output.write ((char*) &chProfile[i], sizeof(chProfile));
}
Output.close();
MessageBox (NULL, "Profile saved", "Saving", 0);
return(1);
}
else
return(0);
}
Das kommt mir ein bischen sehr wenig vor...
Dann soll die Datei auch noch ausgelesen werden und dabei das "standardprofil" im programm überschreiben:
Code:
int OpenProfile (char *chProfile[])
{
ifstream Input ("Profile.pfl", ios::binary);
if (Input != NULL)
{
for (int i=0; i<sizeof(chProfile)/sizeof(chProfile[0]); i++)
{
Input.read ((char*) &chProfile, sizeof(chProfile));
}
Input.close();
MessageBox (NULL, chProfile[2], "Profile Loaded", 0);
return(1);
}
else
return(0);
}
Ich vermute, dass es irgendwie an dem array liegt, komme aber nicht wirklich klar, da die erklärungen im i-net leider oftmals wenig aufschlussreich sind.
Ich wäre euch sehr dankbar, wenn ihr mir mit ein paar gedankenstößen weiterhelfen könntet!