Zum Inhalt springen

PL1994

Mitglieder
  • Gesamte Inhalte

    77
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von PL1994

  1. Hallo, ich bin noch relativ neu in der CPP-Programmierung (habe eigentlich Java gelernt) und komme bei folgendem Problem einfach nicht weiter: Ich habe eine SQLite-Tabelle mit Ländern, ihren ISO-Codes und Namen. Diese ist so aufgebaut worden: CREATE TABLE Country ( Country_ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 'ISO-3166-Alpha-3' VARCHAR(3) NOT NULL, 'ISO-3166-Alpha-2' VARCHAR(2) NOT NULL, Name VARCHAR(50) ); Ein Datensatz daraus soll durch folgende Klasse repräsentiert werden: //Country.h #ifndef _COUNTRY_H_ #define _COUNTRY_H_ class Country { private: char iso3166alpha2[2], iso3166alpha3[3]; char *name; int countryId; public: Country(); Country(int countryId, char iso3166alpha2[2], char iso3166alpha3[3], char *name); ~Country(); char *getISO3166Alpha2(); char *getISO3166Alpha3(); char *getName(); int getCountryId(); }; #endif // Country.cpp #include "Country.h" Country::Country(int countryId, char iso3166alpha2[2], char iso3166alpha3[3], char *name) { Country::countryId = countryId; *Country::iso3166alpha2 = *iso3166alpha2; *Country::iso3166alpha3 = *iso3166alpha3; Country::name = name; } Country::~Country() { } int Country::getCountryId() { return countryId; } char *Country::getISO3166Alpha2() { return iso3166alpha2; } char *Country::getISO3166Alpha3() { return iso3166alpha3; } char *Country::getName() { return name; } Es soll eine Liste angelegt werden, die sämtliche Länder enthält. Das habe ich wie folgt versucht (Auszug): std::list<Country> countryList; std::list<Country>::iterator position = countryList.begin(); if (sqlite3_prepare_v2(database, "SELECT * FROM Country", -1, &statement, 0) == SQLITE_OK) while (sqlite3_step(statement) == SQLITE_ROW) { Country country((int)sqlite3_column_int(statement, 0), (char*)sqlite3_column_text(statement, 1), (char*)sqlite3_column_text(statement, 2), (char*)sqlite3_column_text(statement, 3)); std::cout << country.getName() << std::endl; // 1. Ausgabe countryList.push_back(country); } sqlite3_finalize(statement); for (Country c : countryList) std::cout << c.getName() << std::endl; // 2. Ausgabe Beide Ausgaben sollten jetzt doch eigentlich die Ländernamen angeben. Bei der ersten Ausgabe funktioniert das auch, also kann ja beim Auslesen der Daten eigentlich nichts schiefgegangen sein, oder? Bei der zweiten Ausgabe bekomme ich dann sowas hier: XÿV (Bei allen Zeilen gleich). Ich hätte jetzt gedacht, dass es was mit der Zeichenkodierung zu tun hat, aber dann würde die erste Ausgabe doch nicht klappen!? Ich hoffe, ihr könnt mir helfen. Gruß PL1994
  2. Hallo, ich weiß, dass zu diesem Thema bereits einige Threads im Netz existieren, ich bin allerdings mit keiner der dort aufgezeigten Lösungen einverstanden und frage daher nochmal ... Ich suche eine Textdatei, die alle Länder der Welt mit ihren zugehörigen ISO-3166-Codes, Provinzen, Städten und deren Postleitzahlen enthält. Alle Bezeichnungen sollten auf Deutsch sein (dieses Kriterium konnte noch kein Datensatz, den ich gefunden habe, erfüllen). Die Liste muss natürlich so gestaltet sein, dass ich sie für einen Datenbankimport gebrauchen oder wenigstens in kürzerer Zeit umformatieren kann. Alles, was ich brauche, ist im Prinzip auf dieser Wikipedia-Seite und den aufgeführten Links enthalten: Liste der Städtelisten nach Ländern. Wenn ich aber anfange, das z.B. in eine CSV-Datei zu packen, bin ich in 10 Jahren immer noch beschäftigt. Weiß jemand, wo ich so etwas bekommen könnte? Danke schonmal und Gruß PL1994

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...