dirstream



  • Hy,
    hab mich gerade mal an dirstream rangemacht finds auch so ganz gut nur wie muss ich folgenden code verändern damit er mir nur alle *.mp3 dateien ausgibt:

    Str.open(".", true);
    if (Str.is_open())
    {
    int Count = 0;
    for (string Run; Str >> Run ; Count++)
    cout << Run << endl;
    cout << "\n" << Count << " Einträge gefunden." << endl;
    }
    cout << endl;

    Thx schonmal im vorraus 🙂



  • Hallo,
    von was für einem dirstream redest du? Standard-C++ kennt sowas nicht.

    Falls du zufällig den dirstream meinst, den ich auf meiner Webseite beschreibe. Dort gibt es eine FileSelctor-Klasse. Von der musst du ein Objekt anlegen und dieses dem dirstream übergeben:

    DirStream_t<FileSelector> Str(".", true, FileSelector("*.mp3"));
    int Count = 0;
    for (string Run; Str >> Run ; ++Count)
        cout << Run << endl;
    cout << "\n" << Count << " Einträge gefunden." << endl;
    


  • jup genau den meien ich super klasse wie shcnell man hier ne antwort bekommt 🙂

    Bin ja noch Anfgänger 🙂



  • Hab abe rnoch ne Frage ich habe jetzt das:

    FILE *fp = fopen(Run, "r");

    in die for schleife geschreiben, warum gibt der mir dan folgenden fehler aus und wie kann ich ihn beheben?

    fopen' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'const char *' nicht moeglich
    Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden



  • schau dir mal die doku zu fopen an.
    fopen erwartet einen char* und du gibts ihm einen string - das kann ja nicht klappen.

    gib ihm doch einfach einen char* ->
    run.c_str()



  • Was ist den bitte an dieser Fehlermeldung unverständlich?

    schau dir mal die deklaration von fopen an und dann denke nach, was du übergibst. Dann schlage in deinen lieblings C++ Buch die Klasse basic_string nach und such dir die Funktion std::basic_string<charT,Traits,Alloc>::c_str()

    (oder schau hier http://www.sgi.com/tech/stl/basic_string.html )



  • ja ich bin strohdumm in php war alles viel einfacher *G*



  • wenn jetzt noch jemand weiß warum bei mir rename überhaupt nicht funktioniert auch wnen ichs per hand eintippe dan bin ich glücklich 🙂 - liegt nicht zufällig an WinXp oder?



  • kann es sein das du die datei noch öffen hast?



  • glaub habs jetzt doch gelöst ::)

    nur wie bekomme ich aus:

    "Debug\mp3\test.mp3"

    das "test.mp3" durch "neu.mp3" ersezt weobei test.mp3 ja variable ist.

    [ Dieser Beitrag wurde am 13.04.2003 um 15:37 Uhr von mistro editiert. ]



  • ok ist alles gelöst nahc viel probieren ^^

    nur ich hab nen fehler im dirstream gefunden, sobald dateinamen punkte enthalten, werden sie nicht mer in der suche nach bestimmten dateiendungen angezeigt!


Anmelden zum Antworten