Autor Beitrag
Silke
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 18.02.03 09:49 
Hallo.
Ich möchte/muß ein Programm schreiben,mit dem der User seine Bilder verwalten kann. Der User soll dabei auswählen können, welche Ordner vom Tool verwaltet werden sollen. Er gibt so zum Beispiel in ein Formular "C:\EigeneDateien\EigeneBilder" und "C:\Bilder" ein. Dann soll das Programm diese Ordner anzeigen (so wie im Explorer) und überwachen ob sich in diesen Ordnern etwas verändert hat.(Ob ein Bild dazugekommen ist, ob ein Bild gelöscht wurde).
Hat jemand so etwas schon programmiert oder hat eine Idee, wie man so etwas machen kann?
Wäre nett, wenn mir jemand dabei helfen könnte.

Gruß,Silke
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 18.02.03 13:42 
Zwei TStringList brauchst du dafür. In Alt-StringList sind alle Datten bis jetzt. In Aktuell-StringList liest du alle 5 Sekunden die Liste neu ein. Dann vergleichst du einfacht:

ausblenden Quelltext
1:
2:
3:
4:
if Alt.Text <> Aktuell.Text then begin
  Alt.Text := Aktuell.Text;
  //... mach was
end;


Wie liest man jetzt die Daten ein? Guck dir den Tip 08 an:

mitglied.lycos.de/po...ub/topten/index.html
DelphiNoob
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152

Win 2003 Server
D7 Ent
BeitragVerfasst: Di 18.02.03 14:39 
Hi,

ich brauch für ein andere projekt auch Stringlisten, und du sagst alle 5 Sekunden einlesen.

Nun, kein problem, aber so wie ich das sehe läuft das auf einen Timer hinaus oder? Ich hab nicht wirklich was gegen Timer, aber sie laufen nurmal in Echtzeit und belasten doch den CPU? Daher gibts ne mönglichkeit darauf zu verzichten?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 18.02.03 14:54 
@Silke: Die Lösung für Dein Problem: FindFirstChangeNotification. Habe gerade versucht ein kleines Beispiel auf meiner Platte zu finden. Hab aber leider keins gefunden. Such einfach mal beim Google unter dem Begriff FindFirstChangeNotification.

Gruß
TINO
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Di 18.02.03 15:21 
das mit den stringlisten ist doch eine gute idee .... aber nicht mit der 5 sec intervall

ich würde die ordner immer checken, bei .... ka. Programmstart oder Buttonclick ... dies verhindert dann die Auslastung

die alte Stringlist würde ich in einer .ini ablegen, damit du die werte bei programmende auch noch behälst ....
wäre mein Vorschlag...
die Function von Tino kenn ich nicht aber die würde ich mir auch mal noch anschauen...
:wink2:

P.S.: Willkommen im Board 8)

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Di 18.02.03 15:29 
Hallo silke,

solltest Du D7 Prof. (evtl. auch D6 Prof.) haben, dann schau Dir einmal im Reiter "Beispiele" die Komponente "ShellChangeNotifier" an.

Wenn nicht, dann würde ich auf jeden Fall die Lösung von Tino bevorzugen. Der Abgleich mit Stringlisten ist totaler Blödsinn.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Silke Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 19.02.03 15:47 
Hallo ihr!
Ich bin bis jetzt leider noch nicht dazugekommen eure Vorschläge auszuprobieren :-( Ich wollt mich nur mal wieder melden.;-)

@smiegel: Ich hab leider nur Delphi 5 prof. Und wieso ist der Abgleich mit Stringlisten totaler Blödsinn?

@all: Ich habe bis jetzt ein Klasse TSamlung,eine Klasse TSammlungsverwalter(hier sind Prozeduren wie lösche_Sammlung, kreiere_Sammlung..) , eine Unit mit dem Hautformular (hier sollen die Ordner angezeigt werden) und eben noch ein Unit mit Eingabeformular (hier kann man die gewünschten Ordner eingeben.)
Ein Objekt der Klasse TSammlung enthält den Sammlungsnamen, die beteiligten Ordner, die beteiligten Dateien....außerdem enthält die Klasse noch Methoden wie get_Sammlungsname....etc. Ich hatte jetzt vor die
Daten bzw. das Sammlungsobjekt per Stream abzuspeichern. Ist das Blödsinn? Soll ich lieber keine Klasse TSammlung machen, sondern die ganzen Daten in eine ini schreiben? Da ich sonst nur Java kann, ist mir das mit den Klassen eigentlich lieber. Aber geht das auch so?
Ich hab doch keine Ahnung - leider


Viele Grüße,Silke
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Mi 19.02.03 20:28 
Hallo,

@Silke:
Wenn Du eine Bildersammlung mit 1000 und mehr Bildern über mehrere Verzeichnisse hast, ist Dein Programm nur noch mit Stringlistenabgleich beschäftigt und hätte sonst nichts anderes zu tun. Deshalb meinte ich Blödsinn.

Moderiert von user profile iconTino: Absatz entfernt.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 19.02.03 21:17 
Zurück zu der StringList Methode. Ich behaupte nicht, daß es keine bessere gibt. Wenn ich als überwachendes Verzeichnis "c:\" eingebe, dann ist es Blödsinn. Dann ist das Programm die ganze Zeit am einlesen. Das ist aber nicht so wenn du ein normales Unterverzeichnis überwachst. Auch sind die 5 Sekunden nur eine Hausnummer. Jeder muß selbst wissen wie Aktuell es sein soll.

Das Prinzip ist aber einfach. Das Ergebnis ist, daß man einfach nur zwei Strings vergleicht. Man kann auch nur die Bytes zehlen und zwei Integer vergleichen. Ich habs die Methode zwar nicht für diesen Zweck gebraucht, aber ich hab diese Methode schon angewand um zu prüfen ob es eine Änderung gegeben hat.

Moderiert von user profile iconTino: Absätze entfernt.