Struktur Byteweise speichern...?

Hallo!

Wer weiss wie man eine Struktur, wie z.B. die DEVMODE Struktur für Drucker Konfigurationen, byteweise in einem String speichern könnte???

Ich muss diese Strings dann als Mail versenden und brauche es deshalb als String.

Hat jemand so etwas schon mal gemacht?

Ciao
Catmad

Hi Catmad.

Gemacht habe ich es noch nicht, aber spontan würde mir da der Umweg über eine Datei einfallen.

mit fwrite() kannst du eine Struktur in einem Rutsch in eine Datei schreiben. Diese kannst du danach wieder Byteweise in einen Puffer schreiben und den dann verschiecken oder an die Wand tackern. (wenn du ihn vorher ausdruckst :wink: )

{
 struct xy teststruct;
 FILE\* outfile;

 [...]
 /\* Datei binaer oeffnen \*/

 fwrite(&teststruct, sizeof(struct xy), 1, outfile );

 /\* Datei schliessen und wieder zum lesen oeffnen \*/
 [...]
}

Gruss Jens

Das geht eigentlich ja direkt:

struct HUCH Bla;
char *BlaAsString;
int BlaAsStringLength;

BlaAsString = (char*)&Bla;
BlaAsStringLength = sizeof(HUCH);

Jetzt zeigt BlaAsString auf die Struktur vom Typ HUCH mit der Länge BlaAsStringLength. Das Problem ist jetzt natürlich, dass darin alle möglichen Sonderzeichen, also auch ‚\0‘, vorkommen können. Sowas kann man nicht als eMail versenden, am einfachsten wandelst du den String also in eine base64-Codierung um.

Oder du schreibst die Struktur in eine Datei und schickst diese Datei als Attachement mit, dann übernimmt dein eMail-Programm die Codierung in base64 :smile: .

mfg
Christof

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]