![]() |
Projektstart autom. Archivierung
Mahlzeit Leute,
ich beschäftige mich zwar schon einige Zeit mit Delphi, habe aber bisher noch kein größeres Programm gemacht. Jedoch ist es jetzt soweit. Und zwar möcht ich ein Programm erstellen, welches z.B. jeden Tag um 19.00 Uhr die Datei "test" in einen Ordner als "Test+Datum" speichert. Das alleine würd ich vielleicht noch hinbekommen, jedoch soll das Programm so gestaltet sein das eventuell noch andere Dateien nach einem ähnlichem Schema archiviert werden können (quasi editierbar). Jetzt bräuchte ich mal einen kleinen Gedankenanstoß wie ich sowas hinkrieg. Und wenn es nur "Stichworte" sind, so reicht mir das auch , den Rest werd ich schon hinkriegen (hoffe ich zumindest). Gruß Ati |
Re: Projektstart autom. Archivierung
nimm dich ein memo in das du die datein einträgst die archiviert werden
sollen und dann arbeitest du die in einer Schleife ab. das nur ein kleiner ansatz! beschreibe doch mal ein paar konkrete Probleme! :wink: |
Re: Projektstart autom. Archivierung
Und natürlich noch einen Timer für die Uhrzeit.
|
Re: Projektstart autom. Archivierung
Wieso Timer :?:
wie wäre es denn mit DateTime(Now) oder so ähnlich! hab gerade kein Delphi zum nachsehen! |
Re: Projektstart autom. Archivierung
Zitat:
|
Re: Projektstart autom. Archivierung
Das waren eigentlich schon so die richtigen Schubser die ich brauchte (Memo und Schleifen).
Das mit dem Timer hatte ich mir auch schon so überlegt. Aber da Ihr ja so masochistisch angehaucht seid :-D werd ich Euch mal was konkret präsentieren. Also die erste Datei liegt auf \\kfo\qlik-view\kxlf02_1 und soll nach \\kfo\archiv\kxlf02_1_090204 kopiert werden. Jetzt könnte es aber sein das wir noch andere Dateien auf dem Server in einen Ordner arvhivieren wollen. Dies soll man nachträglich realisieren können |
Re: Projektstart autom. Archivierung
Zitat:
|
Re: Projektstart autom. Archivierung
Erstmal noch Herzlich Willkommen im Forum.
Zitat:
Du mußt ja nur den Quellordner, bzw. welche Dateien daraus und den Zielordner wissen. Der Rest ist einfaches kopieren. |
Re: Projektstart autom. Archivierung
Naja. Ich wollte das schon etwas komfortabler machen z.B. mit "opendialog" oder ähnlichem. Wenn man den jeweiligen Pfad von "Hand" eingibt, dann sollte eine Überprüfung folgen, ob die Datei auch vorhanden ist. Ist das editieren einer neuen Archivierung abgeschlossen, so soll das Hauptfenster geschloßen werden und nur noch als Shortcut zu sehen seien etc. Ich weiß das es sich ein bischen mächtig anhört, nur wie soll man den mit diversen "Hello World!"-Programmen was lernen.
|
Re: Projektstart autom. Archivierung
Zitat:
- OpenDialog? - fileexists? Oder wo hängts jetzt? |
Re: Projektstart autom. Archivierung
Das Problem war erstmal der Einstieg, aber da hab ich ja jetzt einige Ansätze. Alles weitere werde ich mir durch Tutorials oder der Boardsuche beibringen. Da ich ja auch in anderen Foren tätig bin weiß ich das die meisten User es hassen irgendwelchen Leuten die Programme von A bis Z vorzukauen. Sobald ich dann an einer Stelle wieder nicht weiterkomme melde ich mich dann wieder. Danke Euch erstmal für die Hilfestellung.
Ati |
Re: Projektstart autom. Archivierung
Du kannst ja z.B. anfangen in eine Listview Komponente mit 2 Spalten (Quelldatei und Zielordner) da mittels OpenDialog und nem Dialog zur Ordnerauswahl mal Einträge hinzuzufügen. Diese Einstellungen mußt du irgendwie noch speichern und laden.
|
Re: Projektstart autom. Archivierung
Hhhhm. Ich hatte jetzt angefangen mit 2 Editfeldern ("von" und "nach"), 2 Memofeldern und einem Button. Beim Button-Klick erscheint der Opendialog und die ausgewählte Datei wird im 1.Editfeld angezeigt. Wollte es dann "ähnlich" mit dem 2. Editfeld machen. Weiter bin ich noch nicht, da ich jetzt erstmal in eine Besprechung muß. Meld mich aber morgen wieder ..........versprochen :lol:
Ati |
Re: Projektstart autom. Archivierung
Zitat:
Als Denkanstoss: Hinzufügen zu deiner Liste:
Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
begin if OpenDialog1.Execute then ListBox1.Items.Add(OpenDialog1.FleName); end; |
Re: Projektstart autom. Archivierung
Noch besser als ne ListBox ist wie ich oben schon geschrieben habe eine ListView Komponente, da kann man doch schön Quellpfad und Zielordner gegenüberstellen.
|
Re: Projektstart autom. Archivierung
Ja, das wäre die perfekteste Lösung, allerdings würde wie eben geschrieben,
für den Anfang zwei ListBoxes nehmen, da diese für "Anfänger" eben leichter zu bedienen ist. |
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Object-Pascal / Delphi-Language" nach "Sonstige Fragen zu Delphi" verschoben.
Ich denke, das gehört besser nach "Sonstiges mit Delphi" *schiiiiiiiiiiiiiiiiiiiiiieb* *drüüüüüüüüüüück* |
Re: Projektstart autom. Archivierung
MrKnogge Du hast Recht. "listview" ist noch ein bischen verwirrend für mich. Werd also erstmal mit der einfacheren Methode weitermachen.
|
Re: Projektstart autom. Archivierung
Hallöle,
ich hatte Euch ja angedroht das ich mich melden werde wenn ich nicht weiterkomme. Jetzt ist es soweit. Folgende Procedure startet er nicht.
Delphi-Quellcode:
Die Fehlermeldung lautet: Undefinierter Bezeichner "listbox1". Es kann sich hier nur um einen selten blöden Fehler handeln aber ich hab momentan echt ein Brett vor dem Kopf.
procedure copyarchiv;
var ndx : Integer; begin for ndx := 0 to listbox1.items.count-1 do begin copyfile(pchar(listbox1.items[ndx]),pchar(listbox2.items[ndx]),false); end; end; |
Re: Projektstart autom. Archivierung
In der Unit wo dieser Code steht, da gibt es kein Listbox1.
|
Re: Projektstart autom. Archivierung
Das kann eigentlich nicht sein. Ich hatte diesen Code vorher in einem Button_Click Ereignis und da funktionierte es wunderbar. Jetzt wollte ich eine eigenständige Procedure daraus mach, welche beim Button_Click aufgerufen wird.
|
Re: Projektstart autom. Archivierung
Wo ist die Funktion deklariert und wo definiert? Da fehlt doch das TForm1. davor.
|
Re: Projektstart autom. Archivierung
Kaum zu glauben. Daran hat es wirklich gelegen :wall:
Naja das sind so Feinheiten mit denen ich noch so Probleme habe- Danke Dir |
Re: Projektstart autom. Archivierung
Warum Funktioniert folgende Prozedur nicht:
Delphi-Quellcode:
Das ganze befindet sich im FormCreate-Ereignis. Ich kriege aber immer die Meldung das die Datei vorhanden sei, was sie aber nicht ist :gruebel:
if FileExists('items.txt') then
showmessage('Item1 vorhanden') else showmessage('Item1 wird erstellt!!' ); Ati |
Re: Projektstart autom. Archivierung
Schon gut, Schon gut. Bin selber drauf gekommen. Mach jetzt besser Feierabend und feier Karneval. Morgen geht´s schön ab nach Köln. Also bis nächste Woche mal.
|
Re: Projektstart autom. Archivierung
Mahlzeit Leute,
ich hab mal wieder eine Frage. Und zwar habe ich mal was gefunden, wo beim Minimieren der Anwendung dies aus der Taskbar verschwindet und nur noch im TNA-Bereich (neben der Uhr) erscheint. Leider brauch ich dafür die Komponente TApplicationEvent (Komponentenseite "Zusätzlich"), welche bei Delphi 3 Prof. nicht dabei ist. Kann ich das denn noch irgendwie anders hinkriegen ?? Vielen Dank schonmal |
Re: Projektstart autom. Archivierung
Hi ATI,
ich hab auch schon ein TNA Proggi geschrieben, aber die TApplicationEvent Komponente hab ich nicht eingesetzt... :gruebel: In der Code Lib steht auch noch was dazu: ![]() Und noch ne Idee für Dein Proggi... Wie wäre es mit der Option alte Dateien automatisch zu löschen, z.B. nach einer gewissen Anzahl von Tagen. So brauch man sich darum nich zu kümmern und der Order wird nich irgendwann platzen :-D Schönen Tag noch... |
Re: Projektstart autom. Archivierung
Hmmm. Ich habe mir das mal ausgedruckt, für eine andere Sache. Hab mir aber gerade CoolTrayIcon-Komponente von Torry runtergeladen, werd es auch mal damit versuchen, obwohl das bisher noch ein bischen verwirrend ist.
Trotdem Danke. |
Re: Projektstart autom. Archivierung
Jo die kenn ich auch,
ist schon n geiles Teil, aber wie Du schon sagst, erst mal sehr verwirrend... :zwinker: Ich habe es so ähnlich gemacht wie in der Code-Library, n bissl anders, aber es lässt sich gut auf andere Programme übertragen und man braucht keine zusätzlichen Komponenten. Gerade fällt mir nochein: -das Programm sollte automatisch mit Windows starten. Also n Eintrag in die Registry und so. CU |
Re: Projektstart autom. Archivierung
Du hast echt gut eVorschläge. Werd ich alle aufnehmen. Jetzt habe ich aber noch ein Problem mit meiner "neuen Komponente". Ich benutze nur die "TexTrayIcon", da mir alles andere zuviel Schnickschnack hat. Jetzt habe ich also MinimizetoTray auf True gesetzt und beim Minimieren verschwindet meine Anwendung auch. Nur wie bekomme ich sie wieder?????
|
Re: Projektstart autom. Archivierung
Ähhh,
dazu solltest Du ein Popup Menü bereitstellen mit den einträgen -Programm anzeigen -Programmende Beim click auf anzeigen startest dann ne Prozedur, z.B. so
Delphi-Quellcode:
Sollte eigentlich so gehn...procedure ZeigeFenster; //Zeigt das Programm Fenster begin //Fenster wieder in der Taskleiste sichtbar machen ShowWindow(Application.Handle, SW_SHOW); //Fenster auf dem Bildschirm sichtbar machen ShowWindow(self.Handle, SW_SHOW); end; Grüße :hi: |
Re: Projektstart autom. Archivierung
Natürlich noch die Hälfte vergessen!!! Das Menü soll ja beim Klick auf das Icon in der Taskbar aufklappen, dazu musst Du den Klick abfangen
Delphi-Quellcode:
Vielleicht kannste das aber auch in der Komponente einstellen, habe sie selbst noch nicht verwendet, bloss gesehn!
//Deklaration:
procedure WMTaskBarEvent(var message: TMessage); message WM_TASKBAR_EVENT; //Diese Procedure redistriert den Klick auf das Icon procedure TfrmMain.WMTaskBarEvent(var message: TMessage); begin //Auswerten des unteren bereichs von LParam //Param = 32 Bitwert unterteilt in 16 Lo und 16 Hi case message.LParamLo of WM_LBUTTONDBLCLK : ZeigeFenster; //WM_LBUTTONDOWN : ZeigeMenue; WM_RBUTTONDOWN : ZeigeMenue; end; end; //Diese Procedure zeigt dann das Menü an procedure ZeigeMenue; //Zeigt das Menue var crsPos : TPoint; begin //Die aktuelle Cursorposition auslesen GetCursorPos(crsPos); //Damit das Menü auch wieder zugeht, wenn nix geklickt wurde //muss das unsichtbare fenster in den Vordergrund SetForeGroundWindow( self.Handle ); //Menü an Cursorposition aufklappen lassen popMain.Popup(crsPos.X, crsPos.x); end; CU |
Re: Projektstart autom. Archivierung
Hat super geklappt. Vielen Dank. Da ich aber eine faule S.. bin, hab ich das nur so gemacht, daß bei einem Doppelklick das Fenster wieder angezeigt wird. Also ohne Menue.
|
Re: Projektstart autom. Archivierung
Wenn du es nur für Delphi Projekte baruchst und es nicht selber machen willst, kuck dir mal das PlugIn für die IDe GExperts an, da hat es was zum Archivieren des Projektes.
|
Re: Projektstart autom. Archivierung
Und wo finde ich das :?:
|
Re: Projektstart autom. Archivierung
Zur Not mit Google. Einen direkten Link habe ich auch nicht parat.
|
Re: Projektstart autom. Archivierung
M-O-D hat ja den Vorschlag gemacht das mein Programm alte Dateien automatisch nach einigen Tagen löscht. Da mein Programm in der Endphase ist möchte ich jetzt diesen Gedanken mal aufgreifen. Wie kann ich das jetzt theoretisch hinkriegen? Die gespeicherte (archivierte) Datei läuft unter folgendem Beispiel "blabla19.03.04.txt".
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 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