mp3-Tag auslesen und dateien umbenennen



  • PaulW schrieb:

    ... und deshalb habe ich auch geraten, die id3lib zu benutzen... das selbst zu machen ist ein bißchen zu aufwendig.

    Für wem ist es zu Aufwendig? Für uns alle?
    Gut dann bleiben wir auf Hello World und dem eigenen Editor sitzen.

    Last euch nicht bremsen, macht es selbst.



  • ... also alle Mann HexEditor/Editor und Firefox anschmeißen und ab gehts an das analysieren von MP3 Datein 😃



  • MichaM. schrieb:

    PaulW schrieb:

    ... und deshalb habe ich auch geraten, die id3lib zu benutzen... das selbst zu machen ist ein bißchen zu aufwendig.

    Für wem ist es zu Aufwendig? Für uns alle?
    Gut dann bleiben wir auf Hello World und dem eigenen Editor sitzen.

    Last euch nicht bremsen, macht es selbst.

    Für euch alle nicht, für mich wäre es das (ich habs zwar hingekriegt, war aber keine schöne Lösung, hab dann die id3lib gefunden/genommen)!
    Bitte, nur zu, aber wozu alles doppelt und dreifach machen ;)?

    Der Aufbau der ID3 Tags steht auf ID3.org...



  • sorry leuz, aber ich bin erst heute dazu gekommen hier was zu posten...
    ich wollte eigentlich noch meinen ersten post ändern, aber dann hab ichs vergessen... 😞
    jetzt hab ich nurmehr ein problem mit dem proggi:
    das Umbenennen...
    ich mach das mit MoveFile (zumindest hab ich das vor)
    aber es funktioniert nicht...
    der Fehler ist beim 1. string

    MoveFile(datPath /*Fehler*/, newPath);
    

    Was kann da falsch sein ??
    mfg domi



  • böserwolf schrieb:

    Was kann da falsch sein ??

    alles ⚠
    genau fehlerbeschreibung ⚠
    compiler oder linkererror ⚠
    laufzeitfehler ⚠
    welcher datentyp ⚠
    null terminiert ⚠
    gültig ⚠
    ...



  • böserwolf schrieb:

    aber es funktioniert nicht...
    der Fehler ist beim 1. string

    MoveFile(datPath /*Fehler*/, newPath);
    

    Was kann da falsch sein ??

    Deine Fehlerbeschreibung ist echt klasse 😉 🤡



  • ok.. ich weiß, dass ich nicht grad der beste bin...

    ich übergebe dem MoveFile einen String mit dem Pfad und Dateinamen einer mp3-datei
    "C:\spastelruther_katz.mp3"
    und wenn ich den Pfad selbst eingib dann gehts
    ach ja: Der Compiler meldet keinen Error es funktioniert nur nicht...

    Code kommt bald (ist am anderen PC...)



  • Rückgabewert von MoveFile ???



  • Und falls FALSE ( 🙂 ), dann GetLastError() prüfen.



  • // Da gibts noch die übliche include-geschichte
    // und dann gibts da nock eine 128-zeichen struktur (mp3-tag/für die letzten 128
    // Zeichen der mp3-datei
    
    int find_last_point(char a[]); //liefert Index des letzten Punktes zurück
    bool check_if_mp3(char a[]);   //prüft, ob am Ende des Namens ".mp3" steht
    
    int main()
    {
        HANDLE fHandle;
        WIN32_FIND_DATA wfd;
        char filePath[MAX_PATH];
        char anhang[MAX_PATH];
        id3 test;
        int i;
        char newPath[MAX_PATH];
        ifstream datei;
        char szProgramPath[MAX_PATH];
    
        GetModuleFileName(NULL, (LPSTR)szProgramPath, MAX_PATH);
        strcpy(strrchr((const char *)szProgramPath, '\\')+1, "");
        strcat(szProgramPath,"*");
    
        fHandle=FindFirstFile(szProgramPath,&wfd);
        FindNextFile(fHandle,&wfd);
        while (FindNextFile(fHandle,&wfd))
        {
            if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            {
                if(check_if_mp3(wfd.cFileName))
                {
                    datei.open(wfd.cFileName);
                    datei.seekg(-128,ios::end);
                    datei.read(test.tag,3);
                    datei.read(test.title,30);
                    datei.read(test.artist,30);
                    datei.read(test.album,30);
                    datei.read(test.year,4);
                    datei.read(test.komment,28);
                    datei.read(test.track,2);
                    datei.read(test.genre,1);
                    strcpy(filePath,szProgramPath);
                    filePath[strlen(filePath)-1]='\0';
                    strcat(filePath,wfd.cFileName);
                    strcpy(newPath,szProgramPath);
                    newPath[strlen(newPath)-1]='\0';
                    sprintf(anhang,"%s - %s.mp3",test.artist,test.title);
                    strcat(newPath,anhang);
                    cout << "Umbenannt von " << endl << wfd.cFileName << endl << "zu" << endl << newPath << endl << endl;
                    MoveFile(filePath, newPath);
                    cout << filePath << endl;
                    ShellExecute(NULL,"open",filePath,NULL,NULL,SW_SHOWNORMAL);
                    datei.close();
                }
            }
        }
        FindClose(fHandle);
    
        cout << endl << endl << "Ende";
        getch();
        return 0;
    }
    


  • na der wückgabewert ist natürlich NULL (oder das wenns nicht geht) wenns net geht...
    (sonst hätt ich das problem nicht)

    aber ich weiß den GRUND nicht...
    😞 😞 😞



  • Halloooo, GetLastError()?



  • GetLastError: "32"

    Zufrieden??



  • Simon sez

    ERROR_SHARING_VIOLATION
    The process cannot access the file because it is being used by another process.

    😉



  • böserwolf schrieb:

    Zufrieden??

    gEEnau.. 👍 ..so bekommt man sofort viele nette antworten..


Anmelden zum Antworten