Gibt es eine Möglichkeit...



  • ein logfile mit der syntax:

    01;name;vorname;alter;geschlecht;gebDte

    einfach auszulesen dass man dann einen bestimmten eintrag finden kann (schnell)
    Ich dachte da an eine funktion die mir die einzelnen parameter gleich in ein array stopft oder so??

    geht das oder wie würdet ihr das machen?

    herzlichen D.
    l00P



  • Also, ich würde die Datei zeilenweise einlesen und jede Zeile durch eine Funktion jagen, die aus einem CString ein CStringArray macht, indem sie an dem gewünschten Zeichen zerlegt.

    Ist nicht so schwer, hatte ich schon mal gebastelt. Quelltext ist leider futsch. (Grummel, in PHP ist sowas schon eingebaut.)



  • 🙂 ja ich weiß ich vermisse viele funktionen die in php dabei sind...

    Um dieses "zerlegen" geht´s mir ja gerade. Keine ahnung wie das gehen soll, ich kann ja nicht jedes zeichen nach einem ";" durchsuchen oder?



  • enum enGeschlecht = {frau, mann};
    struct tagEntry {
        int iNumber;
        CString strName;
        CString strVorName;
        int iAlter;
        enGeschlecht eGeschlecht;
        CString strGebDate;
    };  // Kann auch eine Klasse sein
    
    void ReadFile(CString &strFile, CList<tagEntry> &list)
    {
        CStdioFile file;
        CStringList strList;
        CStrting strHelp;
        // Datei einlesen
        if(file.Open(strFile, CFile::modeRead)) {
            file.ReadString(strHelp);
            strList.AddTail(strHelp);
        }
        file.Close();
    
        for(POSITION pos = strList.GetHeadPosition(); pos != NULL;) {
             strHelp = strList.GetNext(pos);
    
            CString strHelp2 = strHelp.Left(strHelp.Find(';'));
            tagEntry entry;
    
            entry.iNummer = atoi(strHelp2);
            strHelp.Delete(strHelp.Find(';')+1);// das ';' soll ja mitgelöscht werden
            // Rest auslesen
    
         [EDIT] list.AddTail(entry); [/EDIT]
       }
    }
    

    Ich hoffe es sind nicht zu viele Schreibfehler darin, ich konnte es nicht testen.

    MFG
    Kai



  • @KaiE: Danke für dein posting, werd ich so verwenden aber ich verstehe nicht warum du der funktion Read ein CList Objekt übergibst, was steht da drinnen??
    Ich kenne mich nicht aus mir CList...

    danke



  • du meinst das

    void ReadFile(CString &strFile, CList<tagEntry> &list)
    

    die Liste dient dazu alle Einträge zu halten. Wenn du einen Suchst, kannst du das entsprechend modifizieren.

    MFG
    Kai



  • ah ich verstsehe, da ist die liste auch außerhalb der function noch da.

    Bei mir mäckert der compiler bei CList<tagEntry> list; "To few parameters for template" ???

    weißt du was da ist?



  • nicht
    CList<tagEntry>

    sondern

    CList<tagEntry, tagEntry&>

    mein Fehler.

    MFG
    Kai



  • aha danke 🙂
    sehe ich das richtig das eine clist immer wie ein normales array aussieht(also nicht mehrdimensional) und das ich mit jedem aufruf das list objekt in ein array speichern muß???

    Herzlichen Dank
    l00P



  • l00P schrieb:

    ... und das ich mit jedem aufruf das list objekt in ein array speichern muß???
    l00P

    Das verstehe ich jetzt nicht ganz. Du kannst mir aber auch ein Mail schreiben oder über ICQ Fragen.

    MFG
    Kai


Anmelden zum Antworten