Datei-> Spalte suchen , finden und die komplette Zeile ausgeben



  • wob schrieb:

    ...

    Hab ich ja geschrieben. Aber danke für die detailliertere Ausführung.

    Edit: Ok, ich habe nicht genau das geschrieben, was du jetzt hervorgehoben hast.
    Edit2: I agree.



  • Carlos_Hafensänger schrieb:

    Wieso kann ich die Schleife ausführen wenn ang ein integer ist und bei String , gibt er mir eine Fehlermeldung aus .
    Verstehe ich echt nicht

    string.find() gibt die Position des gesuchten Teilstrings zurück

    In deiner Bedingung steht:

    if(ang=line.find(a)...
    

    Das "=" ist eine Zuweisung. Das Ergebnis von find() wird also "ang" zugewiesen und das geht nicht, wenn "ang" ein string ist.

    Du willst vermutlich vergleichen. Das geht mit "==".



  • Sorry , dass ich so spät zurück schreibe .
    Danke nochmals für die Hilfe

    Hab es jetzt lösen können.

    while(getline(Myfile,line))
               {
                   istringstream stream(line);
                   vector<string>column;
                   string element;
    
                   while(getline(stream,element,'\t'))
                   {
                       column.push_back(element);
                       if(((offset = element.find(suchen,0))) != string::npos)
                        {
                           // cout <<"Wort gefunden:\n" << suchen<<"\n"<<element << endl;
    
                        }
                   }
    
               }
    

    Nun habe ich das Problem:
    ich kann jetzt nach einem Wort suchen und auch die entsprechende Zeile ausgeben , nur leider würde ich gerne die Spalten der Zeile , die durch ein Kommata getrennt sind , in einzelne Variablen speichern um beispielsweise von einigen bestimmen Spalten den Average ausrechnen zu können



  • Carlos_Hafensänger schrieb:

    Nun habe ich das Problem:
    ich kann jetzt nach einem Wort suchen und auch die entsprechende Zeile ausgeben , nur leider würde ich gerne die Spalten der Zeile , die durch ein Kommata getrennt sind , in einzelne Variablen speichern um beispielsweise von einigen bestimmen Spalten den Average ausrechnen zu können

    Der Suchbegriff ist "split string". Da sollte es einige Ergebnisse dazu geben...



  • danke 😃

    habe es so weit wie möglich geschafft und nun wollte ich int in string umwandeln mit to_string, habe auch mal ein wenig im Internet mich schlau gemacht , leider nichts gefunden.
    Ich zeige euch mal mein Codeschnipsel

    //calc average
            int length = searchResults.size();
            vector<string> result;
            double secondRow = 0;
            double thirdRow = 0;
            for (vector<string> line : searchResults) {
                secondRow += atoi(line.at(1).c_str());
                thirdRow += atoi(line.at(2).c_str());
            }
    
            //Resultat zusammensetzten
            result.insert(result.begin(), suchen);
            result.insert(result.end(),to_string(secondRow / length));
            result.insert(result.end(),to_string (thirdRow / length));
    

    die dreizehnten Zeile wird mir als Fehler angezeigt , die Meldung : to_string was not declared in this Scoop

    Leider finde ich mei Fehler nicht , habe auch include <sstream>


  • Mod

    to_string benötigt den Header <string>



  • Habe ich auch im Header , trotzdem geht es nicht



  • C++ 11 einschalten oder neueren Compiler installieren.



  • Habe den Compiler :
    GNU GCC Compiler
    Have g++ follow the C++11 ISO C++ language Standard [std=c++11]



  • Carlos_Hafensänger schrieb:

    Habe den Compiler :
    GNU GCC Compiler

    Dir ist aber schon aufgefallen, dass Software (aus gutem Grund) eine Versionsnummer hat?

    manni66 schrieb:

    C++ 11 einschalten oder neueren Compiler installieren.



  • Muss echt gestehen , dass ich gerade etwas verwirrt bin .
    Ich dachte der Compiler wäre der aktuellste und somit auch der Mächtigste.
    Könntest du es noch einmal für Dummies erläutern , falls du die Zeit dafür hast
    DANKEE 😃



  • Carlos_Hafensänger schrieb:

    Könntest du es noch einmal für Dummies erläutern

    Hat er doch schon...

    Deine Reaktion darauf war:

    Muss echt gestehen , dass ich gerade etwas verwirrt bin .

    Versteh nicht was genau du noch willst?



  • was mich verwirrt ist die Tatsache, dass ich den C++ Compiler eingeschaltet habe
    ich weiss echt nicht ,wie ich es sonst angehen sollte.



  • Carlos_Hafensänger schrieb:

    Muss echt gestehen , dass ich gerade etwas verwirrt bin .
    Ich dachte der Compiler wäre der aktuellste und somit auch der Mächtigste.
    Könntest du es noch einmal für Dummies erläutern , falls du die Zeit dafür hast
    DANKEE 😃

    https://gcc.gnu.org/releases.html

    Und welches Release hast du bei dir installiert?



  • GCC 6.3
    Ich gehe mal stark davon aus, dass ich 7.1 auf CodeBlocks installieren sollte



  • GCC 6.3 ist auf jeden Fall neu genug für C++11.
    Siehe https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Standards.html#Standards

    GCC supports the original ISO C++ standard published in 1998, and the 2011 and 2014 revisions.

    (...)

    The default, if no C++ language dialect options are given, is -std=gnu++14.

    Wahrscheinlich gibt es in deiner IDE irgendwo einen Schalter zur Auswahl des Sprachstandards. Dein gcc jedenfalls beherrscht jedenfalls C++14 und wählt diesen Standard sogar per Default aus (plus gcc-Erweiterungen).



  • Danke
    Ich habe mal etwas geguckt leider nichts gefunden , ich hoffe mal das ich noch fündig werde



  • weg von der Fragestellung
    es wäre doch auch einfach möglich ,wenn ich eine andere Funktion dafür einsetze
    bspw

    -> stringstream ss;
    ss << number;
    string numberasstring(ss.str());

    ist die Funktion zu laienhaft ?



  • Carlos_Hafensänger schrieb:

    ist die Funktion zu laienhaft ?

    Für wen? für dich? Nee, DU kannst die ruhig verwenden.



  • habe doch ein Template jetzt definiert.

    template <typename T>
    string to_string(T t)
    {
        ostringstream ss;
        ss <<t;
        return ss.str();
    }
    

    und dann einfach

    result.insert(result.end(),to_string(secondRow),to_string(length));
    

    nun kommt die Fehlermeldung -> no matching...

    bin echt ratlos 😕


Anmelden zum Antworten