Real-Life C++

Nachrichten, Hobbys, Meinungen
Antworten
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Real-Life C++

Beitrag von Xin » Fr Mai 16, 2014 10:50 am

Mal was schönes aus dem echten Leben:

Folgende Routine liest ein umklammertes Array von Strings aus einer Textdatei ein.
Zum Beispiel:

Code: Alles auswählen

( "Hallo", "Welt" )
p ist dabei der Text-Parser, Accept überspringt ein gesuchtes Zeichen, der zweite Parameter gibt an, ob Whitespaces (Leerzeichen, Tabs...) vor und nach dem gesuchten Zeichen mit übersprungen werden sollen, ParseString liest dabei einen String.

Code: Alles auswählen

    if( !p.Accept('(', true) )
        return false;

    ParsedString temp;
    while( true )
    {
        if( p.ParseString( temp ) )
        {
            result.push_back( temp.AsString() );

            if( p.Accept( ',' ), true )
                continue;
        }

        break;
    }

    return p.Accept( ')' );
    }
Was ist verkehrt gelaufen? ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Real-Life C++

Beitrag von cloidnerux » Fr Mai 16, 2014 10:57 am

Code: Alles auswählen

 p.Accept( ',' ), true 
Deine Parameterliste sieht etwas merkwürdig aus :D
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Real-Life C++

Beitrag von Xin » Fr Mai 16, 2014 11:28 am

cloidnerux hat geschrieben:

Code: Alles auswählen

 p.Accept( ',' ), true 
Deine Parameterliste sieht etwas merkwürdig aus :D
Es ist ein Komma-Ausdruck - der letzte Ausdruck bestimmt das Eregbnis: true.

Accept( ',' ) hat einen Default-Parameter: false. Ob es nun klappt oder nicht, spielt für den Ausdruck keine Rolle: Es kommt ja immer true zurück.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten