Dateinamen ohne Endung übergeben
-
Tut mir leid, in der main-Funktion fehlte noch
Eingabe=argv[1];Und nach dem Kompilieren rufe ich über die Konsole Programm auf, danach steht meine Eingabedatei und die Ausgabe klappt auch wenn ich die Ausgabe vordefinier.
Das mit strrchr hab ich auch schon probiert, den Punkt kann ich raussuchen, nur wie mach ich das mit dem kopieren in die Ausgabe jetzt? Ich kann doch jetzt nicht einfach dem Programm sagen das es alles vor diesem Punkt als Outfile nehm soll oder?
-
Kleine Schritt-fürSchritt-Demo, ganz ohne Kram, der es vielleicht zu kompliziert machen würde:
char source[]="test.txt"; char dest[1024]={0,}; //hier machen wir es uns einfach und definieren einen großen Zielstring char *dotpos=strrchr(source,'.'); //Zeiger auf den letzten Punkt holen size_t copylen=dotpos-source; //die Differenz der beiden Zeiger ist die Anzahl der Zeichen, die wir kopieren wollen (wir lassen ".txt" weg) strncpy(dest,source,copylen); //kopieren, fertig ("test" wurde kopiert"). Du darfst nun deine eigene Extension mit strcat anhängen.
-
Vielen Dank!
Jetzt seh ich mein Fehler. Nur wenn ich das ganze jetzt kompiliere kommt immer Speicherzugriffsfehler. Weiß jemand was hier falsch ist? Also Zugriffsrechte auf alles hab ich, genug Speicher ist auch vorhanden.
-
...
-
Die Umwandlung alleine stimmt, seh ja selber die ausgegebene Datei. @swordfish
Nur leider zeigt er mir bei 'strncpy' für copylen ein Fehler an, der Compiler nimmt es nur an wenn dort eine Zahl da steht.
-
Herrje, zeig doch einfach mal Code. Du wurdest doch jetzt schon oft genug gefragt. Du machst irgendwas falsch, willst aber nicht zeigen, was. Anhand deiner dürftigen Beschreibung lässt sich das schlecht erraten.
-
Mein Problem ist nur das ich mit dem Tablet online bin und auf dem Laptop alles schreib weil das eigentlich nicht meiner ist, ich will nicht die Zeilen abtippen. Aber ich hab den Quelltext so ähnlich wie hier - http://ffmpeg.org/doxygen/trunk/decoding__encoding_8c_source.html - Beim Thema Audio-Decodierung ab Zeile 236.
Meine main-Funktion ist kurz wie vorhin beschrieben Plus dem zusätzlichen Code.
-
Sorry, aber das ist Käse. Ich werde mir nicht aus mehreren Quellen zusammenflanschen, was eventuell so ungefähr dein Code sein könnte. Wenn du deinen Code nicht per Copy&Paste hier ins Forum bringen kannst, dann gibt's nur ein paar Debugging-Tipps:
Klapper doch mal jede Zeile mit dem Debugger ab. Beispiel strncpy: Sind die beiden Zeiger, die du übergibst, gültig? Welchen Wert haben sie? Worauf zeigen Sie? Welchen Wert hat copylen?
-
Thomas-W schrieb:
Beim Thema Audio-Decodierung ab Zeile 236.
LOL
-
Hab jetzt kein Fehler mehr, läuft alles wunderbar. Der Speicherfehler lag daran weil ich dieselbe Variable mehrmals benutzt hab
Und ich hab es nicht richtig definiert gehabt mein char Ausgabe.
Danke nochmal für die Hilfe und tut mir leid für meine unkonkreten Angaben.