String Aufteilen wie in PHP mit Explode



  • Guten Abend liebe C++ Gemeinde,

    Mein Problem ist folgendes: Ich suche eine Funktion ähnlich der Explode Funktion aus php

    Zur Erklärung ich habe Zeilenweise Datensätze welche durch ein " " (Leerzeichen) getrennt werden
    pro Zeile können sich 3 - X Datensätze verbergen...

    Meine bisherige vorgehensweise: (Beispiel)

    AnsiString Data[4];   
    AnsiString Input;
    
    Input    = Input.SubString(Input.Pos(" "),Input.Length()).Trim();
    	   Data[0] = StrToFloat(Input.SubString(1,Input.Pos(" ")).Trim());
    	   Input   = Input.SubString(Input.Pos(" "),Input.Length()).Trim();
    	   Data[1] = StrToFloat(Input.SubString(1,Input.Pos(" ")).Trim());
    	   Input   = Input.SubString(Input.Pos(" "),Input.Length()).Trim();
    
    	   if (Input.Pos(" ")==0)
    	   {
    	    Data[2] =StrToFloat(Input.SubString(1,Input.Length()).Trim());
    	    Data[3] =Data[2];
    	    Anzahl  = 3;
    	   }
    	   else
    	   {
    	    Data[2] = StrToFloat(Input.SubString(1,Input.Pos(" ")).Trim());
    	    Input   = Input.SubString(Input.Pos(" "),Input.Length()).Trim();
    	    Data[3] = StrToFloat(Input.SubString(1,Input.Length()).Trim());
    	    Anzahl  = 4;
    	   }
    
    //Weiterverarbeitung der Daten aus dem AnsiString array Data
    

    nur je mehr Datensätze pro Zeile ausgelesen werden müssen desto mehr if / else abfragen müsste ich
    dem ganzen hinzufügen ich selber bin jetzt nicht der C++ Guru aber mir fällt spontan auch nichts
    besseres ein vlt. hat ja jemand einen besseren Lösungsvorschlag für mich 🙂

    Bis Dahin,
    AlphaDog



  • Hallo

    Das Thema wurde hier im Forum schon oft behandelt, einfach mal nach *explode* suchen. Dann findest du z.B. das hier.

    bis bald
    akari


Anmelden zum Antworten