kleiner diskscanner mit waitevent
Übersicht

X0rBetreff: kleiner diskscanner mit waitevent |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hattet ihr auch Früher das Problem mit euren eigenen Beispiel Disk Scanner?: Die GUI Objekte funktionieren dann nicht mehr. Alles disabled. Was nun?
Hier ein Beispiel: Bei dem die Objekte nicht disabled sind: Code: [AUSKLAPPEN] global timer timer = createtimer(70) search("C:/") Function search(apath$) odirs1=ReadDir(apath$) Repeat WaitEvent() Select EventID() Case EVENT_TIMERTICK file$=NextFile(odirs1) If file$="" Then Return If FileType(apath$+"/"+file$)=1 Then print apath$+"/"+file$ ElseIf FileType(apath$+"/"+file$)=2 If file$<>"." And file$<>".." Then search(apath$+"/"+file$) EndIf EndIf End Select Until file$="" CloseDir(odirs1) End Function Einfach ein waitevent() und timertick event in die schleife. schon können die GUI Objekte auch dabei genutzt werden. P.s: Bitte keine blöden Kommentare wie: Für wen hälst du dich eigentlich? Bitte kein flame. Das ist nur ein kleiner code. Es ist ncht Wert sich drüber zu streiten. |
||
- Zuletzt bearbeitet von X0r am Fr, Jul 14, 2006 23:02, insgesamt einmal bearbeitet
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nett ![]() Kann ich bestimmt mal gebrauchen *g* Kleine Korrektur: nicht:Zitat: End Funktion
sondern:Zitat: End Function
;D |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er wäre noch kleiner, wenn du nicht so viele leerzeilen reinpacken würdest. ![]() |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und vernünftig eingerückt ist es auch nicht, kein wunder das nie was
bei raus kommt ![]() Damit auch was nützliches in meinem Post steht: Die funktion t natürlich überhaupt nicht ohne weiteres zu gerauchen weil man erst mal die prints rausnehmen muss. Solche bereit gestellten funktionen sollten aufgeräumt und SuperStrict komform sein. Das schafft die nicht. Bau sie um. IMurDOOM |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja ok. ist jetzt egal. Ihr seht das Prinzip ja. reicht hin.
Einfach waitevent() in die Schleife und mit EVENT_TIMERTICK arbeiten. |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] SuperStrict
'Vars Global timer:TTimer 'Init timer = CreateTimer(70) 'Main search("C:/") 'Functions Function search:Int(apath$) Local file:String Local odirs1:Int odirs1 = ReadDir(apath$) If odirs1=0 Then Return -1 EndIf 'Loop Repeat WaitEvent() Select EventID() Case EVENT_TIMERTICK file$=NextFile(odirs1) If file$="" Then Return 1 If FileType(apath$+"/"+file$)=1 Then DoSomethingWith( apath$+"/"+file$ ) ElseIf FileType(apath$+"/"+file$)=2 If file$<>"." And file$<>".." Then search(apath$+"/"+file$) EndIf EndIf End Select Until file$="" CloseDir(odirs1) Return 1 End Function 'Output function, you have to manipulate it for your code Function DoSomethingWith( path:String ) Print path End Function P.S. Schade, dass man in BMax keine Funktionszeiger übergeben kann, das würde das Problem viel eleganter lösen. |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sag mal, muss man das machen: timer:TTimer. Eigentlich nicht, oder? Warum schreibt ihr es dann extra?
Macht ihr das, weil das BEispiel dann professioneller aussieht? Zum Abbruch des Scanner: vorher: global stops=0 select eventsource() case chancel stops=1 end select Bei der Entscheidung mit dem Dir und in der Schleife mit nexfile(): if stops=1 the return Sagt jetzt bitte nicht, das klappt nicht. Ich habs ausprobiert und es klappt. |
||
![]() |
Byteemoz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im SuperStrict-Modus wird sowas wie
Code: [AUSKLAPPEN] Global timer = CreateTimer(70) kaum funktionieren...
Außerdem lässt es den Code nicht nur professioneller aussehen sondern erleichert auch das Debuggen. -- Byteemoz |
||
MaxIDE Community Edition: Summary | Bugs | Feature Requests | CVS Repository | Thread |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
und dadurch das du den TTimer als typ angibst wird nicht auf ne int gecastet. Wesentlich besser das. | ||
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 |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Egal. aber wenn das Programm kompiliert ist und man das fertige Programm startet, läuft alles schnell und wunderbar. ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht egal, denn wenn du gängige Konventionen nicht lernst und auch einhälst wirst du massiv Probleme kriegen wenn Du mal mit anderen zusammenarbeiten willst.
Strict und superstrict sind extrem hilfreiche Stützen, da sie zu sauberem Coden zwingen. |
||
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 |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was soll eigentlich dieses T bedeuten(TImage,TGadget,TSound,TTimer,..)? | ||
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
vieleicht Type... | ||
![]() |
Byteemoz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist auch eine der Konventionen (wie auch das Einrücken von Blöcken oder Großschreiben von Konstanten), die den Code leserlicher machen. | ||
MaxIDE Community Edition: Summary | Bugs | Feature Requests | CVS Repository | Thread |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
T steht für type. | ||
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 |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Basicprogger,
klar geht das. Hab deinen Code ein wenig geändert: Code: [AUSKLAPPEN] SuperStrict
'Vars Global timer:TTimer 'Init timer = CreateTimer(70) 'Main search("C:/", DoSomethingWith) 'Functions Function search:Int(apath$, func(str$)) Local file:String Local odirs1:Int odirs1 = ReadDir(apath$) If odirs1=0 Then Return -1 EndIf 'Loop Repeat WaitEvent() Select EventID() Case EVENT_TIMERTICK file$=NextFile(odirs1) If file$="" Then Return 1 If FileType(apath$+"/"+file$)=1 Then func( apath$+"/"+file$ ) ElseIf FileType(apath$+"/"+file$)=2 If file$<>"." And file$<>".." Then search(apath$+"/"+file$, func) EndIf EndIf End Select Until file$="" CloseDir(odirs1) Return 1 End Function 'Output function, you have to manipulate it for your code Function DoSomethingWith( path:String ) Print path End Function |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BladeRunner, meinst du nicht, dass eine solche Diskussion nichts mehr mit einem CodeArchiv zu tun hat? Zumal der Code die Kriterien für das CodeArchive nicht erfüllt... | ||
![]() |
Byteemoz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Codearchiv soll
Zitat: Quellcode-Schnippsel und kleine Spielereien in BlitzMax enthalten ... passt doch! ![]() -- Byteemoz |
||
MaxIDE Community Edition: Summary | Bugs | Feature Requests | CVS Repository | Thread |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich stimme Dir insofern zu als das die Diskussion über Codestyle nicht unbedingt passt.
Da jedoch einige verbesserte Snippets daraus entstanden sind sehe ich das ganze nicht so eng. Abgesehen davon war der Code eine abgeschlossene, wenn auch nicht strict-konforme Sache. Da ich deinen Einwand jedoch als berechtigt sehe möchte ich alle anderen bitten für eine eventuelle Weiterführung der Codekonventionsdiskussion im Smalltalk einen Thread zu eröffnen. |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group