Doppelte Einträge eines Dateinamens löschen



  • Hallo,

    ich habe ein Programm in VBA geschrieben, welches Dateien zu einem PDF konvertiert. Das Problem dabei ist, dass die Dateien nach dem konvertieren oft Namen haben wie z.B. "TestTest.pdf".
    Hab mir gedacht man schreibt ein Programm welches z.B. die ersten 4 Zeichen des Dateinamens liest und den restlichen Dateinamen dann nach diesen Zeichen absucht und dann alles was vor der gefundenen Zeichenfolge steht löscht.

    Wäre sowas möglich und wenn ja wie? Bin noch Anfänger was C++ angeht.



  • Hallo,

    das ist möglich, keine Frage, aber warum machst du das nicht auch gleich von VBA aus? Wenn Anfänger: wie es für dich am einfachsten ist, hängt von den konkreten Kenntnissen ab. Hier in diesem Forum geht's um MFC (schon mal etwas damit gemacht?), aber deine Aufgabe würde sich auch mit einem Konsolenprogramm lösen lassen (Anfänger sollten sich damit schon befasst haben).

    MfG,

    Probe-Nutzer



  • Hallo,

    ja ich habe nach dem posten gemerkt, dass es noch ein C++ Forum gibt, evtl. könnte ein Moderator meinen Thread da rüber schieben.

    Ich wollte das ganze eigentlich auch als Konsolenanwendung programmieren. Kenntnisse sind beschränkt aber bin für alle Vorschläge offen, schließlich will ich auch was lernen!



  • Ok, dann wären die Bausteine, aus denen sich dein Programm zusammensetzen könnte, ungefähr:

    std::string, zur Verarbeitung der Dateinamen, hat ganz nette Methoden zum Suchen nach Zeichenfolgen, Entfernen von Zeichen usw..., siehe unter "String operations" hier:

    http://www.cplusplus.com/reference/string/string/

    Möglichkeit, alle Dateien eines Verzeichnisses zu durchlaufen, mit FindFirstFile, FindNextFile und FindClose, wie z.B. angewendet hier:

    http://msdn.microsoft.com/en-us/library/aa365200(VS.85).aspx

    und schliesslich std::rename zum Umbenennen, siehe

    http://msdn.microsoft.com/en-us/library/zw5t957f.aspx

    Ich hoffe, du kennst dich schon aus mit "C-Strings" (die werden oben im Beispiel des Verzeichnis-Durchlaufens verwendet) und der C++-Klasse std::string (die eben Methoden liefert, eine Zeichenkette zu durchsuchen), damit du die beiden Typen ineinander umwandeln kannst, und kannst den Beispiel-Code lesen und verstehen, so dass du nur die für dich wichtigen Teile erkennst.

    MfG,

    Probe-Nutzer



  • Danke für die Hilfe, so ähnlich hatte ichs mir schon ergoogelt.
    Bei mir hat nur nie was geklappt weil ich hier ne UraltVersion von VS habe, und einige Header mir gefehlt haben.
    Werd mich dann mal demnächst damit befassen.


Anmelden zum Antworten