Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » keys in dyn-arrays

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.12.2006, 17:48 Uhr
pitrie



hi,

ich muss ein dynamisches array erzeugen.
anhand einer WORD variable muss ich immer wieder auf einen bereich zugreifen können.
habe mitbekommen, dass dies über keys gehen soll, bin aber noch net drauf gestoßen.

also z.b. bekomme 0x2013 mit einem chararray. dann muss ich einen bereich anlegen. wenn dann 0x2014 kommt auch wieder. und wenn dann nochmal 0x2013 kommt, muss ich das chararray um den nun angehängten chararray erweitern. das chararray kann nur 100byte lang werden.

wenn ich es statisch anlegen würde wäre es ja kein problem, jedoch würde ich das array lieber dynamisch anlegen.

danke schonmal
gruß
pitrie
--
Gruß Steff
___
Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
http://autoexport.sunbird-kalender.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.12.2006, 21:49 Uhr
~stephanw
Gast


Ich habe das Problem nicht verstanden. Wenn es einfach darum geht, ein Array oder einen String zu haben, dessen Größe veränderlich ist, dann benutze std::vector , std::string oder einen anderen Container aus der C++-Standardbibliothek.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.12.2006, 21:58 Uhr
pitrie



ich bekomme immer eine ID (WORD) und daten (char []) gleichzeitig.
nun muss ich die daten der gleichen IDs speichern
d.h. als erstes bekomme ich die ID 10 mit den daten 5A67B
dann bekomme ich die ID 5 mit den daten 6F8DA
beide muss ich speichern
als drittes bekomme ich wieder die ID 10 mit daten E3EE5
---> so dass nun unter der ID 10 die Daten 5A67BE3EE5 stehen habe
usw...

so wie bei protokollen (bsp. tcp)
segmentiertes wieder zusammenfügen (jedoch kommen sie hier anders als bei tcp in der richtigen reihenfolge innerhalb eines IDs an

gruß
pitrie
--
Gruß Steff
___
Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
http://autoexport.sunbird-kalender.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.12.2006, 23:46 Uhr
~stephanw
Gast


Wird dieses Array nur gefüllt ? Oder auch mal wieder geleert oder Einträge gelöscht ?

So wie Du es beschrieben hast, geht das natürlich. Nimm erstmal eine std::map mit WORD als Schlüssel und std::string als value. Etwa so:


C++:
std::map<WORD, std::string> theMap;

void insert( WORD id, const char* data )
{
  theMap[ id ] += data;
}



Der Operator [] gibt eine Referenz auf den Wert zurück, der zum Schlüssel id gehört. Falls so ein Eintrag noch nicht da ist, wird er eingefügt. In jedem Fall wird mit "+=" an den bestehenden oder neuen Eintrag angehängt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: