Autor Beitrag
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: So 16.02.03 14:59 
Hallo,

ich will, dass ich bestimmte Dateien verlangsamt lesen lasse. Ich stelle mir das so vor, dass ich eine Datei öffne, und wenn ein anderes Prog darauf zugreifen will, gebe ich die Datei Stück für Stück frei, also z.B. einmal pro Sekunde 100kB. Geht das? Ich meine, wenn zwei threads kommunizieren, kann ich Events einsetzen, aber ich arbeite mit einem unbekannten Programm, da geht as nicht.

Gibt es Event-Ähnliche Objekte, die systemweit den Dateizugriff verweigern können? Sowei ich weiß gibt es Overlapped-Structs und CriticalEvents, damit kenne ich mich aber nicht aus. Geht so was, wenn ja, wie?

Oder habt ihr einen andere Idee, wei sich so was realisieren lässt?
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: So 16.02.03 18:38 
:) Dateien stück für stück freizugeben ist IMHO hoffnungslos! Aber wir wärs, wenn du eine datei machst, die stück für stück erweitert wird. Und alle paar sekunden checkst du ob was dazu gekommen ist. Musst natürlich mit den rechten aufpassen (da gibt es irgendwelche 'shared' optoinen).

grüsse
mx
Andreas Pfau Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: So 16.02.03 20:27 
OK, Danke, aber was heißt IMHO? Ich lese das immer wieder, aber habe keine Ahnung, was das ist.

Dann... also, ich habe probiert, die Datei Stück für Stück zu locken (LockFile()), hoffungslos, wie du sagst. Aber... wie meinst du das, Stück für Stück erweitern? Also, ich sage Dir, worum es geht: ich will ein Prog schreiben, das die downloadrate von WWW-Seiten offline simuliert, mit verschiedenen Browsern und so. A bisserl' sinnlos, aber ich habe es mir nun mal in den Kopf gesetzt. Nun, würde ich die Datei Stück für Stück erweitern... du mus wissen, ich kenne das Prog nicht, das liest, das ist z.B. der IE. Weiß der dann auch, dass die Datei größer geworden ist? Das mit den Rechten ist klar... ich brauche GENERIC_WRITE, und muss FILE_SHARE_DENY_NONE angeben.

Gibt es nicht irgendwie die Möglichkeit, eine Datei nur virtuell zu erstellen, so dass ein Prog, dass daraus lesen will, automatisch zu meinem Prog gelinkt wird? Ich meine, wenn du die Datei Stück für Stück erweiterst, dann gibt's Probleme bei gemeinsamen Zugriffen, und außerdem muss ich die Datei buffern, was zu Datenverlusten führen kann.

Na ja, oder, wei ich bereits gesagt habe, kann ich mit Overlapped was anfengen? Damit kann ich doch Dateizugriffe sperren, bis ich fertig bin, oder? Wenn das geht, wie?
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Mo 17.02.03 13:07 
Oha! Ich hab keinen schimmer! Hört hart an!

Wie wärs wenn du mit den Indis nen kleinen lokalen http-server machst und dem IE nur häppchen über den port schicken (habs selber noch nie gemacht).

grüsse
maximus

PS: IMHO heisst 'in my honest opinion' - IMAO -> 'in my arogant opinion'
Andreas Pfau Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Mo 17.02.03 17:17 
Das hört sich gut! Aber wie meinst du das? Ich arbeite nie mit Indy...
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Mo 17.02.03 18:11 
ich auch selten. aber da gibt es eine http server compo, die du vielleicht nutzen könntest.

ich glaub hier www.indyproject.org/dowload/index.html kann man sie downloaden und zum thema http server kannst dann ja'n neuen thread aufmachen :D

mfg
Andreas Pfau Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Mo 17.02.03 20:59 
??? du meinst also, ich soll keine Datei emulieren, sondern eine Internet-Datei? Eiffach, aber genial. Danke!

Also, ich arbeite mich dann mal da rein, und wenn der Karren mal wieder im Dreck sitzt, melde ich mich wieder...
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Di 18.02.03 15:37 
Angeblich ist bei den Indy-demos ein fertiger http server dabei kannst ja mal testen. Die threorie ist klar: Du startest deinen server und kannst dann, theoretisch im IE mit 'http://localhost/MyTestFile.dings' die datei runterladen.

Kannst ja mal berichten wenn du erfolg hast, oder auch nicht!

mfg mx.