Struct Array mit Byte Array (Char) zu einem String

Gast #1424820
Lesenswert?
• ▲
▼
Hallo,

ich habe in C++ eine struct mit mehreren LPTSTR- und int-Variablen:
1
struct Datensatz
2
{
3
LPTSTR Name;
4
int laenge1;
5
LPTSTR Vorname;
6
int laenge2;
7
LPTSTR Adresse;
8
int laenge3;
9
}

Davon mache ich ein Array:
1
struct Datensatz Datenarray[50];

In diesem Array werden jetzt im Rahmen einer Suchfunktion immer 3 
zusammenhängende Zeiger auf diverse Positionen innerhalb eines großen 
Buffers gespeichert, inklusive der Lauflänge. Der Buffer enthält Daten 
einer geöffneten Datei(Funktion ReadFile).

Wie bekommt man jetzt am schnellsten aus dem Array von Zeigern eine Art 
formatierte Tabelle, die man in einem Fenster darstellen oder in einer 
Datei speichern kann? Ich kann natürlich alles per Schleifen so in ein 
neues eindimensionales Array oder einen String kopieren, dass es 
hinterher passt, aber falls es einen schöneren Weg gibt, würde ich ihn 
gerne gehen...

Dann habe ich noch das Problem, dass die Sonderzeichen in meinem Fenster 
nicht richtig dargestellt werden. Die Datensätze im Buffer habe ich mit 
Nullbytes versehen, so dass ich sie zur Kontrolle mit einer Messagebox 
ausgeben kann. Die Umlaute werden aber nicht richtig dargestellt, in der 
Datei steht aber immerhin UTF-8 im Klartext. Gibt es eine einfache 
Möglichkeit, die Zeichen z.B. in einer Messagebox oder als Fenster-Text 
in meiner Anwendung richtig darzustellen?

Vielen Dank,
Crocket
#1428416
Lesenswert?
• ▲
▼
Am Besten machst Du einen Werte-Callback in der Liste (z.B. 
Windows-ListView) und schiebst dann den Zeiger entsprechend zurück. Auf 
diese Weise ist es nicht erforderlich, alles nochmal in Stringarrays zu 
packen.

Der zweite Teil könnte ein Oem2Ansi Problem sein. Dafür gibt es 
entsprechende Funktionen in der Windows API, auf anderen Plattformen 
sicherlich auch.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.