![]() |
Dateien umbenennen mit unbekannten Parametern
Hi!
Ich würde gern ein "dateien-umbenenn-programm" schreiben. Leider gibt es ein paar Probleme: 1. Ich hab kein Quellcode fürs umbenennen ( ![]()
Delphi-Quellcode:
Erzeugen
[Fehler] Unit4.pas(44): Undefinierter Bezeichner: 'TSHFileOpStruct' [Fehler] Unit4.pas(46): Operator oder Semikolon fehlt [Fehler] Unit4.pas(47): Operator oder Semikolon fehlt [Fehler] Unit4.pas(50): Operator oder Semikolon fehlt [Fehler] Unit4.pas(51): Operator oder Semikolon fehlt [Fehler] Unit4.pas(52): Operator oder Semikolon fehlt [Fehler] Unit4.pas(52): Undefinierter Bezeichner: 'fof_MultiDestFiles' [Warnung] Unit4.pas(52): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert [Fehler] Unit4.pas(54): Operator oder Semikolon fehlt [Fehler] Unit4.pas(54): Operator oder Semikolon fehlt [Warnung] Unit4.pas(54): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert [Fehler] Unit4.pas(55): Undefinierter Bezeichner: 'ShFileOperation' [Warnung] Unit4.pas(55): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert [Fehler] Unit4.pas(95): Operator ist auf diesen Operandentyp nicht anwendbar [Fataler Fehler] Unit1.pas(44): Verwendete Unit 'Unit4.pas' kann nicht compiliert werden 2. Sie haben alle unterschiedliche endungen, die ja voher entfernt werden müssen (also z.B. String[5].Left.-4, oder so) Wie ist die genaue Anweisung dafür? Vielen Dank schon mal für eure Antworten :) |
Re: Dateien umbenennen mit unbekannten Parametern
Hast du die ShellAPI eingebunden ?
|
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
|
Re: Dateien umbenennen mit unbekannten Parametern
1. Du solltest den Quelltext erst kopieren wenn Du auch den Text davor gelesen hast :)
2. Einfach rückwärts durchlaufen und vom Anfang bis zum ersten gefundenen '.' mit Copy() heraustrennen (Oder bis "Length - Length(ExtractFileExt())"). Grüsse, Dirk |
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
|
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
|
Re: Dateien umbenennen mit unbekannten Parametern
[OT] Eine halbe Stunde lang gar keine Antwort und dann 5 innerhalb von 2 Minuten :lol: [/OT]
|
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
![]() das müsste eigentlich besser sein, als das mit der ShellAPI (das ist eh viel zu komplieziert :D ) aber danke für die antworten :) ich werd das gleich mal testen |
Re: Dateien umbenennen mit unbekannten Parametern
Damit benennst du die Datei aber nicht um, sondern Änderst nur die Endung
|
Re: Dateien umbenennen mit unbekannten Parametern
Ist das etwa kein Umbenennen? :gruebel:
|
Re: Dateien umbenennen mit unbekannten Parametern
Liste der Anhänge anzeigen (Anzahl: 1)
ich habs mal eingefügt:
Delphi-Quellcode:
ChangeFileExt(Form3.ListBox1.Items.Strings[i], Edit2.Text);
Allerdings kommt folgender fehler (siehe Attachment) |
Re: Dateien umbenennen mit unbekannten Parametern
Was sind die Grenzen der Laufvariable i?
|
Re: Dateien umbenennen mit unbekannten Parametern
ich hab eine while-schleife eingebaut:
Delphi-Quellcode:
i:=0;
while i<ListBox1...Count do ChangeFileExt(Form3.ListBox1.Items.Strings[i], Edit2.Text); i:=i+1; end; |
Re: Dateien umbenennen mit unbekannten Parametern
Warum keine FOR-Schleife?
|
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
|
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
|
Re: Dateien umbenennen mit unbekannten Parametern
Wenn man das falsch benutzt, ja. Dabei muss man nur den Unterschied zwischen Prozeduren und Funktionen kennen ;)
|
Re: Dateien umbenennen mit unbekannten Parametern
.. und selbst wenn man es richtig benutzt ;)
|
Re: Dateien umbenennen mit unbekannten Parametern
Meine Güte. Was ich meine ist, dass man den Rückgabewert der Funktion für das eigentliche Umbenennen nutzen soll, so wie es auf der ersten Seite steht, passiert natürlich nix. Drücke ich mich so unverständlich aus?
|
Re: Dateien umbenennen mit unbekannten Parametern
Ist doch klar ;)
Ich wollte dem Fragesteller nur den Tip geben das ChangeFileExt kein Ersatz für den ShellAPI-Aufruf ist. Sein Link könnte den Eindruck erwecken das damit die Datei umbenannt wird. Grüsse, Dirk |
Re: Dateien umbenennen mit unbekannten Parametern
Jetzt fällt es mir wie Schuppen aus den Haaren. Der Link ist nachträglich hineineditiert worden, daher fehlte mir der Bezug.
|
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
das würde für das programm reichen :) |
Re: Dateien umbenennen mit unbekannten Parametern
Was könnte "Datei umbenennen" denn auf Englisch heißen? "Rename File", da könnte es ja vielleicht eine ähnlich klingende Funktion geben. :zwinker:
|
Re: Dateien umbenennen mit unbekannten Parametern
es soll ja eig. nur die datei-erweiterung geändert werden.
(da ist nur dieser doofe fehler (s.o.)) |
Re: Dateien umbenennen mit unbekannten Parametern
Ja und? Das entspricht ja auch einem Umbenennen. Pseudocode:
Delphi-Quellcode:
RenameFile(<Alter Dateiname>,<Alter Dateiname mit neuer Endung>);
|
Re: Dateien umbenennen mit unbekannten Parametern
danke, ich teste das gleich mal :)
|
Re: Dateien umbenennen mit unbekannten Parametern
ich hab jetzt:
Delphi-Quellcode:
da kommt zwar kein fehler, es klappt aber auch nicht ^^ (es wird einfach nicht umbenannt)
ChangeFileExt(Form1.Frame21.Label1.Caption+ListBox1.Items[i], Edit1.Text);
|
Re: Dateien umbenennen mit unbekannten Parametern
ChangeFileExt ist eine Funktion, die Dir den Dateinamen mit der angegebenen Endung zurückgibt, nicht mehr und nicht weniger. Das Umbenennen musst Du natürlich noch übernehmen (siehe mein letzter Post).
|
Re: Dateien umbenennen mit unbekannten Parametern
ChangeFileExt nennt die Datei aber nicht um, sondern gibt nur den neuen dateinamen zurück.
Delphi-Quellcode:
ergibt Datei.txt
newfilename := ChangeFileExt( 'Datei.exe', 'txt');
|
Re: Dateien umbenennen mit unbekannten Parametern
Zitat:
Delphi-Quellcode:
inifilename := ChangeFileExt(Application.ExeName, '.ini');
@mkinzler: den Punkt nicht vergessen 'gif' ergibt 'Dateigif' und bei '' kommt 'Datei' raus |
Re: Dateien umbenennen mit unbekannten Parametern
Delphi-Quellcode:
So in etwa muss der Code lauten - nur noch an die eigene Umgebung anpassen
var
AlterDateiName, NeuerDateiName : string; begin AlterDateiName := 'C:\Datei.txt'; // Wir bauen uns den neuen Datei-Namen NeuerDateiName := ChangeFileExt( AlterDateiName, '.dat' ); // Wir ändern den Namen der Datei auf der Fest-Platte RenameFile( AlterDateiName, NeuerDateiName ); end; ach, ja, weil es jetzt so schön ist: ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 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-2025 by Thomas Breitkreuz