Entwickler-Ecke

Dateizugriff - Ordnerinhalte verschieben


DaClown - Sa 08.11.03 13:46
Titel: Ordnerinhalte verschieben
Hi,

ich hab vor zwei Programme zu machen und dazu könnte ich mal eure Hilfe brauchen weil ich nicht wirklich Ahnung von Delphi hab und deshalb nicht genau weiss wie.

Das erste Programm soll ein Verzeichnis leeren und alles Dateien in ein anderes verschieben sobald sie nicht eine bestimmte Endung haben. Das entweder Timermässig einstellbar oder keine Ahnung was sonst noch geht, vielleicht ein Hook auf das Verzeichnis ??

Das zweite Programm ist quasi nur eine Abwandlung des ersten, und zwar soll es eine Meldung ausgeben wenn in einem Verzeichnis eine neue Datei vorhanden ist.

Dann wäre es noch toll, wenn man das Programm mehrfach starten kann für mehrere Verzeichnisse oder mehrere Verzeichnisse eingegeben werden können und dann String parsen ??

Danke für eure Hilfe


MrSaint - Sa 08.11.03 14:48

bitte nimm doch ne aussagekräftigere Übverschrift für dein Topic... guck dir mal die Regeln an!

und wie "Du brauchst hilfe?" bei was? was hast du schon? wo hängst du? oder willst du etwa, dass dir jemand aus dem forum das proggi coded? das kannst glei vergessen. wir sind da um zu helfen, net um dir dein proggi zu schreiben...



MrSaint


DaClown - Sa 08.11.03 16:59

Man, sei bloss nich so freundlich. Und nirgends steht was davon das ihr das machen sollt, nicht ein Wort.

Ich weiss eben nicht wo ich hänge, ich hab bisher lediglich ein paar VCL Komponenten zusammen geklickt und ein paar Kleingikeiten geproggt. Die Probleme die ich hab stehen in den ersten Thread: Was benutze ich um ein Verzeichnis zu überwachen, das steht da auch was ich will, gibt es Komponenenten die die Datei/Verzeichnis-Überwachung vereinfachen oder gar machen, oder sollte man nen Hook installieren, also was wird gemacht und dann Filtern, das sowas wie ein "Neue Datei vorhanden"-Event rauskommt, oder per Timer und immer die Liste von Dateien überwachen oder wie ? Ich denke ihr seit auch hier um zu helfen, und ich weiss nicht wie ich anfangen soll, brauche also dabei vielleicht ein wenig Hilfe.

Ich hoffe ich hab mich diesmal verständlich ausgedrückt.


barfuesser - Mo 10.11.03 09:04

Du nimmst eine Suche in: Delphi-Forum, Delphi-Library TTIMER-Komponenten, und beim Auslösen des OnTimer-Events, durchsuchst Du Dein Verzeichnis mit Suche in: Delphi-Forum, Delphi-Library FINDFIRST, Suche in: Delphi-Forum, Delphi-Library FINDNEXT und Suche in: Delphi-Forum, Delphi-Library FINDCLOSE. Wenn Du dies geschafft hast, kannst Du Dir hier im Forum mas die Postings zum Thema Suche in: Delphi-Forum, Delphi-Library HOOK ansehen.

barfuesser


DaClown - Mo 10.11.03 21:03

Mit den Find - Sachen hab ich mich mal beschäftigt, und ich denke das krieg ich hin. Nun hab ich noch zwei Probleme: Wie prüfe ich ob ein Verzeichnis existiert, dieses wird nämlich eingegeben oder aus einer Datei ausgelesen ? Wie verschiebe ich Dateien ? Ich habdazu nur gefunden das es nicht geht, also nicht direkt, kopieren und dann den alten File löschen ergibt ja das gleiche. Wie funktioniert dann FileCopy das aus der Windows API kommen soll ??


Anonymous - Mo 10.11.03 21:30

Verzeichnis existiert:

Suche in: Delphi-Forum, Delphi-Library DIRECTORYEXISTS manchmal gibt es damit Probleme und Suche in: Delphi-Forum, Delphi-Library FILEEXISTS funzt dann. Keine Ahnung woran das liegt.

Dateien Verschieben: Suche in: Delphi-Forum, Delphi-Library MOVEFILE

zu: CopyFile()
1. Parameter: Existierende Datei
2. Parameter: Zieldatei
3. Parameter: Soll Zieldatei überschrieben werden, wenn sie schon existiert.


Delete - Mo 10.11.03 22:53

Für Punkt zwei kuck dir mal Suche in: Delphi-Forum, Delphi-Library FINDFIRSTCHANGENOTIFICATION an. Dazu findest du auch bei mir Beispielcode: http://www.luckie-online.de/files/demos/


DaClown - Mo 10.11.03 23:12

Ich kriegs nicht hin so in eine Datei zu schreiben:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var x : file
i : integer

...

AssignFile(x,datetimetostr(Now)+'.txt');
rewrite (x);
for i := 0 to combobox1.Items.Count do begin
  movefile(pchar(edit1.text+'\'+combobox1.Items[i]), pchar(edit2.Text+'\'+ combobox1.Items[i]));

  writeln(x,combobox1.Items[i]);
end;
closefile(x);


Das Problem ist, er hat immer einen Fehler bei dem writeln:
[Error] vl.pas(71): Illegal type in Write/Writeln statement
[Error] vl.pas(71): Incompatible types: 'procedure, untyped pointer or untyped parameter' and 'String'

woran liegt das ??


tommie-lie - Mo 10.11.03 23:43

DaClown hat folgendes geschrieben:
Man, sei bloss nich so freundlich. Und nirgends steht was davon das ihr das machen sollt, nicht ein Wort.

Wenn du es dir von MrSaint nicht freundlich sagen lässt, wirst du's jetzt von einem Moderator zu hören bekommen:
Bitte ändere den Titel deines Threads.
Das geht, indem du bei deinem ersten Beitrag im Thread auf "edit" klickst, dort den Titel änderst und anschließend auf "Absenden" klickst.

Beachte dazu bitte auch unsere Richtlinien [http://www.delphi-forum.de/infos.php?mode=guidelines]:
Delphi-Forum.de Richtlinien hat folgendes geschrieben:
1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist. Eine Pseudocodezeile oder die Nennung des Objektes, um welches es sich in dem Beitrag handelt, helfen da schon mehr weiter.