Asynchron Dateien kopieren
Übersicht

judosBetreff: Asynchron Dateien kopieren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen,
Ich habe mich gerade gefragt ob es irgendwie möglich ist mit Blitzbasic Dateien zu kopieren ohne, dass das ganze Programm davon aufgehalten wird. Also gibt es vielleicht eine Möglichkeit über userlibs oder dll's eine Funktion in BB zu implementieren, die eine Datei nebenbei kopiert. Wäre natürlich noch schön wenn man den Status abrufen könnte, also wieviel % bereits kopiert sind oder so. Aber zuerst nur mal die Existenzfrage, wäre sowas möglich? Vielen Dank für die Antworten! Grüsse, judos |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst dir das blitzintern über eine Funktion regeln die einen internen Counter erhält und sich selbst unterbricht. Diese Funktion rufst Du in deiner Main auf und überträgst so die Daten häppchenweise.
Ansonsten müsstest Du multithreading benutzen, da scheint ja grade was am Start zu sein, die Suche hilft. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
judos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok thx!
Mal schauen ob ich da was nützliches finde... ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn es nur ums kopieren geht, kann man CMD dafür anschmeissen. Diese sollte dann parallel zu BB laufen (habs nicht ausprobiert).
Wenn man selber Dateien schreiben will, dann kann man größere Datenmengen einer Bank mit einem Befehl in eine Datei schieben. Das sollte relativ schnell sein. Siehe dazu: WriteBytes ![]() Ansonsten kann man das ganze auch aufteilen un häppchenweise erledigen. Dazu kommt einem SeekFile ![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
judos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm ok habs mal ausprobiert, das Ergebnis sieht so aus:
CopyFile: 30MB/s Mein eigenes (kopiert x MB am Stück, wobei x eingestellt werden kann): 6MB/s Zwar nicht schlecht, aber kann man das vielleicht noch optimieren? Hier mal der Code: BlitzBasic: [AUSKLAPPEN] create() ;Erstellt 10MB grosse Datei Wäre euch sehr Verbunden für weitere Anregungen... Grüsse, judos |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und warum hast du nun mein Vorschlag mit CMD nicht ausprobiert? Habs jetzt selbst ausprobiert und eine über 200MB -Datei von D:\ nach E:\ kopiert, und das Blitzprogramm lies sich nicht eine Millisekunde davon aufhalten. Denn CMD läuft dann als eigenständiger Prozess, und das mit ganz altmodischen Methoden parallel zu Blitz3D. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
judos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm sorry, wollte nur mein bisherigen Stand mitteilen ![]() Klar ich probiers auch noch aus. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut, will ja nicht so sein: ![]() Code: [AUSKLAPPEN] Graphics 400,300,0,2
SetBuffer BackBuffer() Local XP,Q,Timer=CreateTimer(60) AppTitle "Drücke Space" While Not KeyHit(1) If KeyHit(57) Then CopyFile3("d:\t.t","e:\t.t") XP=(XP+1) Mod 20 For Q=0 To 400 Step 20 Rect Q+XP,0,1,300,1 Next WaitTimer Timer Flip 0 Cls Wend Function CopyFile3(x$,y$) ExecFile "cmd.exe /c copy "+Chr(34)+x$+Chr(34)+" "+Chr(34)+y$+Chr(34) End Function Leider erscheint ein zweites Fenster und der Fokus geht erstmal flöten, so lange der Kopiervorgang andauert. Diesen könnte man eventuell durch ein eigenes Zusatzprogramm mit verstekten Rahmen unterbinden. Aber die einfachste Lösung ist erstmal mit CMD. Danach kann man ja weiter sehen, ob es für eigene Zwecke ausreicht. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
judos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok thx! ^^
Mit meinem TestProgramm läuft dies etwa gleich schnell. Da aber der Fokus verlohren geht, bzw. ein neues Fenster aufgetan wird, das genau nichts anzeigt (oder wenigstens nicht sinnvolles) finde ich das auch nicht wirklich besser. Mal schauen ob man das irgendwie silent machen könnte. Also so dass kein Fenster aufgetan wird. Dann wäre dies eine gute Lösung. ![]() grüsse, judos |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Komisch, CopyFile2 hat mein Rechner für etwa eine Minute K.O. gestellt. Also Sanduhr und nichts weiter. War ne >200MB Datei.
Das mit dem Fokusverlust beim CopyFile3 ist ärgerlich. Allerdings, wenn dein Programm im Vollbild läuft ja kein Problem. Wenn du lediglich eine Information im CMD-Fenster ausgeben willst, dann geht das mit echo. Außerdem kann man auch das echo variabel halten, indem man Parameter übergibt. Diese werden dann mit %1 ... %2 ... empfangen. Dafür müsste aber das ganze dann über eine Batchdatei geregelt werden. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group