Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Tabelle/Textkatalog erstellen

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
09.08.2005, 10:13 Uhr
~Peter89
Gast


Hallo Leute

Bin beim Programmieren auf ein Problem gestossen.
Ich möchte nämlich eine Art Tabelle erstellen in der ich verschiedene Werte auslesen kann je nach dem was für ein Wert eingegeben wird.

Wird z.B. der Wert 111 eingegeben, werden die Daten aus der Zeile mit der ID 111 benötigt.

Aufbau der Tabelle:
Spalte 1: ID
Spalte 2: Bezeichnung
Spalte 3: Typ
Spalte 4: Beschreibung

Die Grösse der Tabelle bewegt sich so um 1000 Zeilen. Die Spalte 2 und 4 sollen zudem auf eine String-Table für die Sprache verweisen.

Weiss jemand eine schlaue Art, wie ich so eine Tabelle elegant und einfach erstellen kann?
Schön wäre in einem .h-File oder ähnliches keine DB ôder so.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.08.2005, 10:42 Uhr
Th



Am einfachsten ist es, du erstellst eine Textdatei und parst sie dann am Anfang des Programms ein.
Ich nehme an, du programmierst in C++.
Dann erstellst du eine Struktur, z.B.

C++:
struct SEntry
{
   int ID;
   string sName1;
   int Typ;
   string sName2;
};


Dann liest du Zeile für Zeile die Textdaten ein und setzt sie in die Struktur.
Anschließend füllst du eine Map mit den Daten:

C++:
map<int, SEntry> Tabelle;

SEntry entry;
entry.ID = ...;
entry.sName1 = ...;
...
Tabelle[entry.ID] = entry; // füllend er Tabelle (sortiert nach ID)



Um an die Einträge wieder zu kommen, einfach den Index der Tabelle ansprechen:

C++:
int index = 111; // z.B.
const SEntry &entry = Tabelle[index];
cout << entry.Id << entry.sName1 << entry.Typ << entry.sName2; // Ausgabe ohne Leerzeichen


Hard kodieren würde ich solche Tabellen nicht, außer sie ändern sich niemals. Dann kannst du auch einfach ein Array nehmen, z.B

C++:
static SEntry st_Tabelle[] =
{
   { 111, "Name1", 42, "Name2" }, // pro Zeile ein Eintrag
   ...
};


Dann brauchst du dieses Array einfach in einer Schleife durchlaufen und die Einträge dann in die Map schreiben (wegen schnellem Finden der Einträge anhand der ID).

Ich hoffe, ich habe dein Problem richtig erkannt und es hilft dir weiter...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: