Autor |
Beitrag |
$ebbi
      
Beiträge: 35
|
Verfasst: Do 28.07.11 12:50
Hi,
ich möchte gerne ein Delphi Programm schreiben, welches Dateien aus Ordner A ausschneidet und in Ordner B kopiert, allerdings hab ich keine Ahnung wie ich das machen könnte. Gibts für sowas Befehle oder andere Möglichkeiten?
Zusätzlich soll die aktuellste Datei (letztes Änderungsdatum) aus Ordner A nicht ausgeschnitten werden sondern in Ordner A bleiben.
Wäre schon wenn mir jemand sagen könnte wie man soetwas machen kann.
mfg $ebbi
Moderiert von Narses: Topic aus Sonstiges (Delphi) verschoben am Do 28.07.2011 um 13:03
Moderiert von Martok: Titel geändert, war: "Strg+X; Strg + V"
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 28.07.11 13:04
Moin!
Mal ein paar Suchbegriffe: FINDFIRST MOVEFILE
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
$ebbi 
      
Beiträge: 35
|
Verfasst: Do 28.07.11 15:07
eine bestimmte datei verschieben klappt jetzt. Jetzt muss ichs noch hinbekommen, dass ich mehrere verschiebe (ohne den Namen zu kennen), und die erste nicht zu verschieben. Wäre schön wenn mir da jemand nochma helfen könnte.
Findfirst hab ich nix passendes gefunden, movefile funktioniert tadellos, dafür schonmal vielen dank.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 28.07.11 15:18
Moin!
$ebbi hat folgendes geschrieben : | Findfirst hab ich nix passendes gefunden, |
Sorry, aber das kann ich mir nicht vorstellen  Es sei denn, du meinst, dass du keinen c&p-fähigen Code findest... dafür sind wir auch nicht zuständig...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 28.07.11 18:33
1. Ein schlechterer Titel für deinen Beitrag ist dir nicht eingefallen? Warum schreibst du nicht, was du machen willst: "Dateien verschieben"
2. Hättest du damit schon einen sehr erfolgversprechenden Suchbegriff.
3. Wärst du dann bestimmt auf MoveFile und SHFileOperation gestoßen.
4. Du willst uns sagen, dass du zu FindFirst(File) hier im Forum keine brauchbaren Suchergebnisse gefunden hast? Könnte daran liegen, dass du nicht gesucht hast.
Für diesen Beitrag haben gedankt: BenBE, Regan
|
|
$ebbi 
      
Beiträge: 35
|
Verfasst: Do 28.07.11 20:17
Luckie hat folgendes geschrieben : | 1. Ein schlechterer Titel für deinen Beitrag ist dir nicht eingefallen? Warum schreibst du nicht, was du machen willst: "Dateien verschieben"
|
auschneiden+einfügen ist im Prinzip das gleiche wie verschieben, sollte ich dich damit überfordert haben tut es mir leid
Luckie hat folgendes geschrieben : |
3. Wärst du dann bestimmt auf MoveFile und SHFileOperation gestoßen.
|
bin ich ja dann auch dank der netten Hilfe von Narses, der im Gegensatz zu dir, freundlich, darauf hingewissen hat.
Luckie hat folgendes geschrieben : |
4. Du willst uns sagen, dass du zu FindFirst(File) hier im Forum keine brauchbaren Suchergebnisse gefunden hast? Könnte daran liegen, dass du nicht gesucht hast.
|
ja genau das möchte ich dir sagen vllt liegt das auch daran dass ich nicht alles versteh, weil meine Kenntnisse eben sehr beschränkt sind.
Dank dir gesellen sich zu der Beschreibung von Informatikern, neben übergewichtig und humorlos nun auch noch unfreundlich, aber gibt ja zum Glück auch ausnahmen (z.b. narses zumindest isser nett  )
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 29.07.11 00:37
Moin!
$ebbi hat folgendes geschrieben : | vllt liegt das auch daran dass ich nicht alles versteh, weil meine Kenntnisse eben sehr beschränkt sind. |
Welchen Code hast du dir denn angesehen? Hast du ihn ausprobiert? Was genau verstehst du nicht?
Was Luckie vermutlich sagen wollte ist: das sind Basics, da wird dir keiner den Code so schreiben, wie du ihn haben willst (und das zu recht). Das solltest du selbst auf die Kette bekommen. Wenn´s hakt: konkrete Fragen stellen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 29.07.11 00:48
Mit Strg+X, Strg+V verbinde ich eher Textoperationen in einem Textverarbeitungssystem. Aber was ist daran so schwer sich klar auszudrücken? Ist das zu viel verlangt, wen man am Beitragstitel gleich erkennen kann, um was es geht? Und ich würde sagen, dass ich nicht unhöflich war, nur einfach direkt.
Zu deinem Problem dürftest du im Forum übrigens fast fertigen Code finden. Es müsste nur etwas für deinen speziellen Anspruch modifiziert werden. Und wenn wir deinen speziellen Anspruch mal außer Acht lassen, dürftest du schon fertigen Code hier finden.
Für diesen Beitrag haben gedankt: BenBE
|
|
Delphi-Laie
      
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 29.07.11 11:24
Für diesen Beitrag haben gedankt: Regan
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 29.07.11 13:02
Ja, ich weiß. Benutze ich ja selber oft so im Explorer. Nichts desto trotz verbinde ich es eher mit dem Ausschneiden und Einfügen von Zeichen in einem Editor oder Textverarbeitungssystem. Aber egal.
|
|
$ebbi 
      
Beiträge: 35
|
Verfasst: Fr 29.07.11 13:08
Gut dann versuch ich mal konkretter zu werden
movefile klappt soweit, problem ist, dass ich damit nur eine Datei verschieben kann und ich deren genauen Namen kennen muss, gibts da andere Möglichkeiten? Mein Problem ist eben dass einfach alle Dateien verschoben werden sollen ohne deren genauen Namen zu kennen.
mit findfirst werd ich mich nochma genauer auseinandersetzen ma sehen vllt klappt das ja.
Ach ja kann ich eigneltich den Pfad zu einer Datei aus einem edit auslesen?
Habs mal ganz klassisch probiert also movefile('pfada','pfadb'); wobei pfada und b eben die strings aus dem edit sind.
klappt aber nicht im gegensatz zu movefile('C:\DateiA','C:\DateiB') gibts ne möglichkeit den pfad ins edit zun schreiben?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 29.07.11 15:18
Mit FindFisrt bekommst du doch alle Dateien im Order. Und dann eben für jede Datei MoveFile aufrufen. Da du aber die jüngste Datei nicht verschieben willst, würde ich alle Dateien in einer (String)Liste sammeln und die jüngste Datei rausschmeißen. Dann für jede Datei in der Liste MoveFile aufrufen.
|
|
$ebbi 
      
Beiträge: 35
|
Verfasst: Fr 29.07.11 16:28
habs jetzt fast geschafft. alles wird in ein memo gschrieben und muss jetzt nur noch verschoben werden. allerdings scheint movefile mit der string variable (verz1+2) nicht zurechtzukommen. wenn ich mir verz anzeigen lasse steht der exakt richtige dateipfad da. wenn ich manuell genau den ausgegebenen pfad einfüge klappts auch, mit der variable jedoch nicht. woran liegt den dass?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| for j:=0 to memo1.Lines.Count do begin verz1:=edit1.text+memo1.lines[j]; verz2:=edit2.Text+memo1.lines[j]; movefile('verz1','verz2'); end; |
mfg $ebbi
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 29.07.11 16:39
Das ist ein ganz dicker Anfängerfehler, würde ich sagen.  Du möchtest hier die Datei "verz1" nach "verz2" verschieben. Das sind aber keine gültigen Dateinamen - oder siehst du da am Anfang sowas wie "c:\" ?
So muss es richtig heißen:
Delphi-Quelltext 1:
| movefile(verz1, verz2); |
Also ohne die ' '. Dann sind das da die Variablen. Mit den ' ' sind das einfach Strings mit dem Inhalt "verz1" bzw. "verz2".
_________________ We are, we were and will not be.
|
|
$ebbi 
      
Beiträge: 35
|
Verfasst: Fr 29.07.11 16:51
Ohne '' bekomme die Fehlermeldung: Inkompatible Typen 'string' und 'Pwidechar'
komischerweise funktioniert dagegen deletefile(verz1) problemlos.
|
|
Delphi-Laie
      
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 29.07.11 21:56
Luckie hat folgendes geschrieben : | Mit FindFisrt bekommst du doch alle Dateien im Order. |
Mit Findfirst findet man doch nur einen Eintrag, und zwar, soviel mir davon bekannt ist, immer denselben. Rekursiv (oder eher mit einem impliziten sog. callback?!) geht es dann mit Findnext weiter, bis auch das sich irgendwann erschöpft. Alternativ kann man auch die erste - logischerweise mit Findfirst - gefundene Datei verschieben, und beim nächsten Aufruf von Findfirst muß logischerweise eine andere Datei (als erster Eintrag) gefunden werden.
Zuletzt bearbeitet von Delphi-Laie am Fr 29.07.11 22:06, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 29.07.11 22:05
Wie der Threadersteller davon ausgegangen ist, dass man mit Strg+X und Strg+V gleich weiß, dass es um das Verschieben von Dateien geht, bin ich davon ausgegangen, dass wenn von FindFirst(File) die rede ist, man auch weiß, dass man mit FindNext(File) und einer entsprechenden Schleife alle Dateien in einem Ordner (und eventuell noch Unterordnern) finden kann.
|
|
$ebbi 
      
Beiträge: 35
|
Verfasst: Sa 30.07.11 17:37
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 30.07.11 18:22
Für diesen Beitrag haben gedankt: BenBE
|
|
Delphi-Laie
      
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Sa 30.07.11 18:26
Das liegt vielleicht an der unterschiedlichen Kapselung der (eigentlich) Windows-Funktionen durch Delphi.
Welchen Datentypes die Funktionen bedürfen, ist auch schon mithilfe der Programmierhilfe ("Code insight") ermittelbar, dazu muß man nicht unbedingt ein Forum fragen.
Edit: jaenicke war schneller und antwortete im Prinzip das gleiche, jedoch mal wieder ausführlicher und fundierter....
|
|