Hat Pathrequester in V4.01 ein BUG ??

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Then
Beiträge: 284
Registriert: 06.09.2004 13:26
Wohnort: Siegen

Hat Pathrequester in V4.01 ein BUG ??

Beitrag von Then »

Habe diesen Code probiert, aber dabei stürtzt mir der Debugger immer ab. Bei der fertigen EXE kommt auch ein Ausnahmefehler... ist dat ein BUG ? War lange nicht mehr hier und habe evtl die Bugmeldung verpasst...

Code: Alles auswählen

OpenWindow(0,0,0,200,200,"test")
CreateGadgetList(WindowID(0))
ButtonGadget(1,10,10,100,100,"Ende")

verzeichni$=PathRequester("Bitte das zu bearbeitende Verzeichnis wählen. Sie können nach der Auswahl die Änderungen bestimmen !","C:\")
If verzeichni$=""
 MessageRequester("Vielen Dank","")
 End
EndIf
ExamineDirectory(0,verzeichni$,"")
Debug verzeichni$
Repeat
Delay(2)
 EventID.l=WindowEvent()
 If EventID=#PB_Event_Gadget
  Select EventGadget()
   Case 1 ; tausch
   End  
  EndSelect
 EndIf
ForEver
Bild
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch

... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

also bei mir gibt es keine probleme, läuft, ohne fehler ect.
was ist denn wenn du das delay() auskommentierst?
versuch es außerdem mal mit einem

Code: Alles auswählen

ExamineDirectory(0,verzeichni$,"")
Debug verzeichni$
FinishDirectory(0)
prüfe auch alle rückgabewerte, zumindest die von OpenWindow() und ExamineDirectory(). vielleicht ist die fehlermeldung auch von WindowEvent(). kam mir schon öfters vor, dass fehler an einer anderen/der vorherigen zeile aufgezeigt werden, als in der, in welcher sie entstehen.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

die repeat forever schleife ist supoptimal

sowas

Code: Alles auswählen

...
Repeat 
 EventID.l=WaitWindowEvent() 
Until eventid=#PB_Event_CloseWindow
ist meist angebrachter .. das Programm wartet dann auf Ereignisse
im Fenster
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Then
Beiträge: 284
Registriert: 06.09.2004 13:26
Wohnort: Siegen

Beitrag von Then »

Ja, waitWindow... ist schon klar, aber dann wartet er ja komplett, bis die Maus bewegt wird. Sogar die EXE schmiert ab....hm, ich raff das nicht ! Habe den Code in 3.9 auch getestet und da isset dat gleiche... ich werde mal weiter rumspielen, wenn ichs herausgefunden habe, dann melde ich das - sollte jeder so machen und nicht einfach nur schreiben "Gelöst !"

Dennoch danke !
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch

... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Willst du nur testen, ob ein verzeichnis exisiter? Dann nimm lieber FileSize().

du musst nämlich folgednes beachten: es gibt einige Elemente im PathRequester, die man auswählen kann und dann einen ungültigen pfad bekomme!

Beispiel: Klicke ich den Arbeitsplatz an und dann auf OK, erhalte ich einfach nur \als Pfad !!

Oder die eventuell vorhanden FTP-Server... Oder Wenn jemand Widcomm-Bluetooth auf dem Desktop installiert hat, welches dann ein im PathRequester anklickbares Icon hinterlässt...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Willst du nur testen, ob ein verzeichnis exisiter?

hast Du Dir den Code oben angeschaut?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Wir sammeln für ne Brille
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Überflüssiger Kommentar und das von einem Mod... /:-> Außerdem hab ich schon eine 8)

Ja, ich habe mir den Code angeschaut. Mir wird daraus nichts klar, also ich weiß auch nicht, warum ein ungültiger SPeicherzugriff erfolgt. Will er aber nur ein Verzeichnis examinen, um zu sehen ob es existiert, kann er ja FileSIze() nehmen.

Und trotzdem ist es keine abwegige Idee, das Verzeichnis mittels FileSize() vorher auf seine Gültigkeit zu prüfen!!!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Mir wird daraus nichts klar

dann sag ich nur: üben, üben, üben und immer schön die F1-Taste benutzen ;-)

Ich sehe da eindeutig, dass dem Anwender die Möglichkeit gegeben werden
soll, mittels PathRequester() ein Verzeichnis auszuwählen. Also nix mit
FileSize().

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ich kann dir verbindlich versichern, dass ich die F1-Taste öfter benutze als du denkst!

Dann revidiere ich halt meine Aussage und sage: " (ot) Ey, ich geb dir nen Tipp! Prüf vor ExamineDirectory(), ob das gewählte Verzeichnis auch gültig ist! Es kann z. B ungültig sein, wenn ich im PathRequester() den ARbeitsplatz auswähle. (/ot)"

So besser?

_______________________________________________________


Ich kann nur sagen: Bei mir unter PB 4.01 läuft der Code astrein. Habe mit EnableExplicit getestet. An Delay(2) liegt es nicht, wieso auch? Ich weiß nicht wieso, aber mir springt das ExamineDirectory(0, ...) ins Auge. Probeir statt der ID 0 doch mal bitte eine andere ID bzw. #PB_Any!!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten