![]() |
bilder einlesen und unter neuem namen speichern
hi leute,
ich habe schon im forum gesucht, bin aber nicht wirklich draus schlau geworden, bzw. hab nicht wirklich was passendes gefunden. Ich habe folgendes vor. Ich möchte ein Liste von Dateien in einem Ordner einlesen. Die Dateiname möchte ich z.B. in einem Array speichern, in eine andere Form bringen und die neuen Dateinamen jeweils speichern zum passenden Bild. Mein Problem besteht nun darin: 1. wie lese ich eine reihe von dateien in einem ordner ein und speicher diese 2. wie speicher ich die fertigen namen wieder ab zur passenden datei danke schonmal im voraus für eure hilfe. |
Re: bilder einlesen und unter neuem namen speichern
Such mal nach FindAllFiles, da kannst Du schön sehen, wie manmit FindFirst, FindNext und FindClose arbeitet. Und statt eines Arrays solltest Du vielleicht eine StringListe verwenden, die kannst Du mit SaveToFile ganz easy abspeichern.
|
Re: bilder einlesen und unter neuem namen speichern
hi gibs das nicht einen einfachen dialoig zum datei einlesen und speichern in array z.b. und dann dieses speichern ist ja okay. aber es muss doch einen dialog geben zum einlesen mehrerer dateien. oder nicht.
|
Re: bilder einlesen und unter neuem namen speichern
Ich weiß nicht, ob ich Dich richtig verstehe, aber schau Dir mal den TOpenDialog an (mit der Option ofAllowMultiSelect).
|
Re: bilder einlesen und unter neuem namen speichern
hm okay soweit bin ich jetzt, also ich hab über eine Schaltfläche "Durchsuchen" jetzt den Dialog geöffnet und man kann mehrere Dateien auswählen. wenn ich jetzt über die eigenschaft opendialog1.filename gehe habe ich ja nur den pfad zu einer datei, bei files geht es ja für mehrere. so nun will ich allerdings nur den dateinamen und nicht den pfad zum bearbeiten. wie speicher ich jetzt nacheinander die dateinamen von den ausgewählten dateien in einem array oder einer stringliste wie du meintest?
|
Re: bilder einlesen und unter neuem namen speichern
Z.B. so:
Delphi-Quellcode:
var sList: TStringList;
i: integer; begin if OpenDialog1.Execute then begin sList := TStringList.Create; try for I := 0 to OpenDialog1.Files.Count - 1 do sList.Add(ExtractFileName(OpenDialog1.Files[i])); sList.SaveToFile('C:\Test.txt'); finally sList.Free; end; end; end; |
Re: bilder einlesen und unter neuem namen speichern
okay danke das funktioniert soweit, jetzzt muss ich ja die txt datei auslesen, um die dateien umzubennen. wie heist das die funktion?
|
Re: bilder einlesen und unter neuem namen speichern
Welche? Zum Auslesen oder zum Umbenennen?
|
Re: bilder einlesen und unter neuem namen speichern
naja ich dachte mir das jetzt so:
1. ich lese die einzelnen zeilen der txt datei aus 2. schreibe den dateinamen jeweils nach einem bestimmten muster um und speicher die datei mit einer schleife jeweils z.b. im ordner c:\test so jetzt die frage: wie kann ich nacheinander die zeilen der txt datei auslesen und wie ist die funktion SaveToFile definiert. |
Re: bilder einlesen und unter neuem namen speichern
Schau mal in die Hilfe zu TStringList. Das Gegenstück zu SaveToFile heißt LoadFromFile.
|
Re: bilder einlesen und unter neuem namen speichern
ich weiß nicht ob ich dich richtig verstehe, aber:
Delphi-Quellcode:
var i:integer;// Zählvariable
begin if opendialog1.Execute then begin for i := 0 to opendialog1.Files.Count - 1 do// alle Dateien durchgehen begin renamefile(opendialog1.Files[i],{neuer Name}); end; end; |
Re: bilder einlesen und unter neuem namen speichern
okay also mal konkret:
ich habe eine ordner mit dateien nach dem muster: 2008_03080031.JPG jetzt hab ich die ja schon in die lsite.txt gespeichert und will die liste jetzt wieder auslesen und per insert befehl den dateinamen folgendermaßen verändern: aus: 2008_03080031.JPG wird: 2008_03_08-0031.JPG und dann speicher ich das bild unter dem neuen namen in einem bestimmten ordner ab. er soll also die dateinamen der liste.txt nacheinander abarbeiten und also neue datei schreiben mit dem neuen namen. |
Re: bilder einlesen und unter neuem namen speichern
Da ist der Ansatz von Noobinator doch goldrichtig und die Textdatei sparst Du auch ein.
|
Re: bilder einlesen und unter neuem namen speichern
okay supi
also nehm ich jetzt mal den code
Delphi-Quellcode:
so nun will ich ja wie beschrieben den dateinamen per insert verändern.
var i:integer;// Zählvariable
begin if opendialog1.Execute then begin for i := 0 to opendialog1.Files.Count - 1 do// alle Dateien durchgehen begin renamefile(opendialog1.Files[i],{neuer Name}); end; end; kann ich jetzt einfach eine abfolge von insert befehle anstelle von "{neuer Name}" setzen oder muss ich das irgendwie einer eigenen Prozedur übergeben? |
Re: bilder einlesen und unter neuem namen speichern
Du musst nur vor der Zeile RenameFile den Dateinamen halt an Deine Bedürfnisse anpassen.
|
Re: bilder einlesen und unter neuem namen speichern
hi danke an euch alle ihr ward mir eine super Hilfe. Dank euch funktioniert es nun. Herzlichen dank :bounce1: :bouncing4: :bounce2:
Wenns euch interessiert, so siehts jetzt aus.
Delphi-Quellcode:
procedure TForm1.B_renameClick(Sender: TObject);
var i:integer;// Zählvariable dateiname:string; begin if opendialog1.Execute then begin for i := 0 to opendialog1.Files.Count - 1 do// alle Dateien durchgehen begin dateiname:=''; dateiname:=ExtractFileName(OpenDialog1.Files[i]); Insert('_',dateiname,8); Insert('-',dateiname,11); renamefile(OpenDialog1.Files[i],dateiname); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 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