![]() |
Re: Dateiname: Ersetzen/Löschen von Teilstrings
|
Re: Dateiname: Ersetzen/Löschen von Teilstrings
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Dateiname: Ersetzen/Löschen von Teilstrings
Zitat:
Delphi-Quellcode:
in der CodeLib ist sogar (glaub ich) irgendwo eine Version, welcher man mehrere Zeichen/Strings übergibt und wo die alle auf einmal ersetzt werden.
DateiName := StringReplace(DateiName, Ren, RenIn, [rfReplaceAll]);
Zitat:
|
Re: Dateiname: Ersetzen/Löschen von Teilstrings
Ach jetzt hab ich das verstanden mit dem Stringreplace :)
Aber was bedeutet das [rfReplaceAll] ? Und weißt du nicht vielleicht auch warum das Programm immer noch nicht funktioniert (ich kann es mit den Änderungen nochmal posten falls nötig)? |
Re: Dateiname: Ersetzen/Löschen von Teilstrings
Zitat:
|
Re: Dateiname: Ersetzen/Löschen von Teilstrings
siehe
![]() Die Delphi-OH Beschreibung TReplaceFlags besteht aus einer Menge von Flags, die steuern, wie ein Teilstring innerhalb eines Strings gesucht und ersetzt wird. Diese Menge kann folgende Werte enthalten: rfReplaceAll Alle Fundstellen werden ersetzt. Wenn dieses Flag nicht vorhanden ist, wird nur die erste Fundstelle des gesuchten Teilstrings ersetzt. rfIgnoreCase Bei der Suche nach dem Teilstring wird die Groß-/Kleinschreibung nicht berücksichtigt. Wenn dieses Flag nicht vorhanden ist, werden nur Fundstellen berücksichtigt, deren Schreibweise genau mit dem Suchstring übereinstimmt. PS:
Delphi-Quellcode:
das "mit Backslash" kannst weglassen
write('Ordner (mit Backslash): ');
Delphi-Quellcode:
hängt das \ notfalls an ... siehe
dir := IncludeTrailingBackslash(dir);
![]() für lastSlash gibt es ![]() FindFirst sucht übrigens so auch Verzeichnisse, welche dann ebenfalls umbenannt würden. ja und namestring wird nie verwendet der Fehler liegt hier
Delphi-Quellcode:
lastSlash(datei) liefert kein Verzeichnis und datei ist nicht die gefundene Datei.
RenameFile(datei,lastSlash(datei)+DateiName);
und bei der suche würde ich zumindestens eine Suchmaske mit angeben ... damit auch was gefunden wird
Delphi-Quellcode:
datei := IncludeTrailingBackslash(datei);
If FindFirst (datei + '*.*', faAnyFile, FindRec) <> 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then begin DateiName := FindRec.Name; if (pos(Ren,DateiName) > 0) Then begin DateiName := StringReplace(DateiName, Ren, RenIn, [rfReplaceAll]); RenameFile(datei + FindRec.Name, datei + DateiName); end // PS: den Variablennamen "datei" besser in "verzeichnis" umbenennen |
Re: Dateiname: Ersetzen/Löschen von Teilstrings
Hallo Delphi_gn7,
Mp3's umbenennen habe ich hinter mir. Wie NamenLozer im Thread #4 schon geschrieben hat ist Total Commander hier eine gute Wahl. Zu deiner Frage wie man z.B. Leerzeichen mit dem Total Commander entfernt: Du markierts alle gewünschten Dateien, drückst dann Strg + M und trägst oben rechts ein Leerzeichen ein (im Feld Suchen&ersetzen). In der Vorschau siehst du sofort das Ergebnis. Um das Ganze auch anzuwenden, drückst du unten rechts auf "Start". Abschließend auf den "gebogenen" Pfeil neben "Start" um weiter zu machen. Das war's. Wenn dein Hauptziel ein schnelles Umbenennen deiner MP3's ist, wäre es besser dir mal den Total Commander etwas näher anzuschauen. Er bietet wirklich einige Möglichkeiten, ist schnell, einfach zu bedienen und funktioniert. Solltes du aber deine Anforderung als Anlass nehmen um in Delphi etwas zu lernen, wäre dieser Weg auch in Ordnung, kostet aber natürlich "etwas" mehr Zeit. :mrgreen: |
Re: Dateiname: Ersetzen/Löschen von Teilstrings
Vielen Dank für die hilfreichen Tipps, ich werde sie veruschen anzuwenden!
Mfgn7 ;) |
Re: Dateiname: Ersetzen/Löschen von Teilstrings
Ich habe (hoffe ich) alle Änderungen eingebracht, aber es tut sich noch immer nichts:
Delphi-Quellcode:
Mfgn7...
program FileRenamer;
{$APPTYPE CONSOLE} uses SysUtils; procedure RenameFiles (var datei: string; Ren, RenIn: string); Var FindRec: tSearchRec; DateiName: string; Begin datei:=IncludeTrailingBackslash(datei); If FindFirst (datei + '*.*', faAnyFile, FindRec) <> 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then begin DateiName := FindRec.Name; if (pos(Ren,DateiName) > 0) Then begin DateiName := StringReplace(DateiName, Ren, RenIn, [rfReplaceAll]); RenameFile(datei + FindRec.Name, datei + DateiName); end; end; Until FindNext (FindRec) <> 0; FindClose (FindRec); end; // Ende Prozedur var dir, Ren, RenIn: string; begin write('Ordner: '); readln(dir); dir:=IncludeTrailingBackslash(dir); dir:=ExtractFileName(dir); write('Umzubenennender Teilstring: '); readln(Ren); write('Zu ersetzen durch: '); readln(RenIn); RenameFiles (dir,Ren,RenIn); end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz