Hallo liebe Community,
dieses ist mein erster Beitrag und obwohl ich meine, das Internet ist die größte Bücherei der Welt und GOOGLE zeigt mir die Richtung, stehe ich nun wirklich auf dem Schlauch. Der Kopf raucht schon (OK, ich bin auch Raucher).
Ich beschäftige mich seit nunmehr seit ein paar Tagen mit C bzw. C++. Dazu muss ich sagen, das ich bereits des öfteren mal kleine Windoof- Anwendungen in Visual Basic geschrieben habe und auch fundamentierte Kenntnisse zu php und MySQL besitze. Auch in Perl (CGI) kann ich ein wenig was erreichen. Doch irgendwie kann ich nicht wirklich was mit diesen Kenntnissen jetzt anfangen.
Das Projekt, welches ich nun in C/C++ umsetzen wollte, stammt ursprünglich aus einem Perl- Script, welches ich vor ca. einem halben Jahr mal geschrieben habe. Aufgrund der bis heute angesammelten Datenmengen ist jedoch Perl nicht mehr das ware, da es den Server so stark ausbremmst, das alles andere ins Wanken kommt. Warum C/C++? Es ist ein Server mit LinuxUmgebung und da hielt ich C/C++ für das anständigste, zumal es später entweder als eigenständiger Daemon oder halt eben per Crontab gestartet werden soll.
Mit Hilfe des Internets habe ich herausgefunden, wie ich eine CSV Datei öffne und diese auch Zeilenweise einlesen kann. Die Daten werden per ";" getrennt und in einem Vector abgelegt.
Alles anzeigen
Mein Problem könnt ihr vielleicht schon so sehen. Ich möchte Zeichen im content ersetzen. Jedoch bricht der Compiler an dieser Stelle mit einer Fehlermeldung ab:
Auch Versuche mit replace direkt nach dem einlesen der Zeile aus der CSV sind daneben gegangen.
Im weiteren habe ich gelesen, das Variablen in Functionen und Schleifen nur in der selben Ihre Gültigkeit behalten. Wenn ich also nun auf einen Wert einer Variable außerhalb einer Schleife zugreifen will, habe ich die A...Karte. Wie kann ich diese Variable Global nach außen verfügbar machen?
Ich möchte innerhalb der While Schleife weitere Daten auswerten, ggfl. korrigieren und in einer der als char*, float oder int deklarierten Variable verfügbar machen. Diese sollen später ein Update eines Shopsystems (Huhu, da bin ich dann wieder bei PHP und MySQL *lol*) die Datenbank aktualisieren. Für das Datenbankupdate habe ich zwar auch schon ein wenig Code, aber das bringt mir eher wenig, solange ich das Auswerten und korrigieren der CSV nicht richtig hinbekomme.
Ich habe hier aus diesem Forum nun auch schon einiges gelesen und bin dadurch teilweise etwas schlauer geworden. Nur leider hat nichts davon zur Lösung meines Problems beigetragen. (Oder ich habe das Posting vor lauter Themen nicht gesehen).
Für eure Bemühungen, Verbesserungsvorschläge oder auch Kritiken wäre ich dankbar. Aber bitte vergesst eines nicht, C/C++ ist für mich absolutes Neuland.
Grüße, CoPyMaus
dieses ist mein erster Beitrag und obwohl ich meine, das Internet ist die größte Bücherei der Welt und GOOGLE zeigt mir die Richtung, stehe ich nun wirklich auf dem Schlauch. Der Kopf raucht schon (OK, ich bin auch Raucher).
Ich beschäftige mich seit nunmehr seit ein paar Tagen mit C bzw. C++. Dazu muss ich sagen, das ich bereits des öfteren mal kleine Windoof- Anwendungen in Visual Basic geschrieben habe und auch fundamentierte Kenntnisse zu php und MySQL besitze. Auch in Perl (CGI) kann ich ein wenig was erreichen. Doch irgendwie kann ich nicht wirklich was mit diesen Kenntnissen jetzt anfangen.
Das Projekt, welches ich nun in C/C++ umsetzen wollte, stammt ursprünglich aus einem Perl- Script, welches ich vor ca. einem halben Jahr mal geschrieben habe. Aufgrund der bis heute angesammelten Datenmengen ist jedoch Perl nicht mehr das ware, da es den Server so stark ausbremmst, das alles andere ins Wanken kommt. Warum C/C++? Es ist ein Server mit LinuxUmgebung und da hielt ich C/C++ für das anständigste, zumal es später entweder als eigenständiger Daemon oder halt eben per Crontab gestartet werden soll.
Mit Hilfe des Internets habe ich herausgefunden, wie ich eine CSV Datei öffne und diese auch Zeilenweise einlesen kann. Die Daten werden per ";" getrennt und in einem Vector abgelegt.
Quellcode
- std::vector<std::string> tokenize(const std::string& str, char delim)
- {
- std::vector<std::string> tokens;
- std::stringstream mySstrema(str);
- std::string temp;
- while(getline(mySstrema, temp, delim))
- tokens.push_back(temp);
- return tokens;
- }
- int main () {
- ifstream fin("datei.csv");
- string buffer;
- float netto;
- int bestand;
- char* artikelnr, artikelname, hersteller, herstellerartnr, ean, gruppe, status, content, werbung;
- while (fin.good()) {
- getline(fin,buffer,'\n');
- std::vector<std::string> myTokens;
- myTokens = tokenize(buffer, ';');
- if (myTokens[0] == "Artikel-Nummer")
- continue;
- for (size_t i = 0; i < myTokens.size(); ++i)
- {
- if (i == 8)
- {
- char *content = new char[myTokens[i].size()+1];
- strcpy(content, myTokens[i].c_str());
- replace(content.begin(), content.end(), "\r\n", "<br>"); //<--- Fehler beim compilieren
- }
- cout << "Artikel-Nummer: " << myTokens[0] << " -CONTENT-> " << content << endl; //<---- Zwar kein Fehler, aber content ist leer, bzw. erhalte ein Æ als Ausgabe.
- }
- }
- fin.close();
- }
Mein Problem könnt ihr vielleicht schon so sehen. Ich möchte Zeichen im content ersetzen. Jedoch bricht der Compiler an dieser Stelle mit einer Fehlermeldung ab:
Auch Versuche mit replace direkt nach dem einlesen der Zeile aus der CSV sind daneben gegangen.
Im weiteren habe ich gelesen, das Variablen in Functionen und Schleifen nur in der selben Ihre Gültigkeit behalten. Wenn ich also nun auf einen Wert einer Variable außerhalb einer Schleife zugreifen will, habe ich die A...Karte. Wie kann ich diese Variable Global nach außen verfügbar machen?
Ich möchte innerhalb der While Schleife weitere Daten auswerten, ggfl. korrigieren und in einer der als char*, float oder int deklarierten Variable verfügbar machen. Diese sollen später ein Update eines Shopsystems (Huhu, da bin ich dann wieder bei PHP und MySQL *lol*) die Datenbank aktualisieren. Für das Datenbankupdate habe ich zwar auch schon ein wenig Code, aber das bringt mir eher wenig, solange ich das Auswerten und korrigieren der CSV nicht richtig hinbekomme.
Ich habe hier aus diesem Forum nun auch schon einiges gelesen und bin dadurch teilweise etwas schlauer geworden. Nur leider hat nichts davon zur Lösung meines Problems beigetragen. (Oder ich habe das Posting vor lauter Themen nicht gesehen).
Für eure Bemühungen, Verbesserungsvorschläge oder auch Kritiken wäre ich dankbar. Aber bitte vergesst eines nicht, C/C++ ist für mich absolutes Neuland.
Grüße, CoPyMaus