Probleme mit DeleteFile

Für allgemeine Fragen zur Programmierung mit PureBasic.
MightyMAC
Beiträge: 55
Registriert: 07.01.2007 18:11
Wohnort: Duisburg
Kontaktdaten:

Probleme mit DeleteFile

Beitrag von MightyMAC »

Hi Leute,

ich habe da im Moment Probleme eine .htm-Datei zu löschen, nachdem ich sie ins WebGadget geladen habe. Kann es sein, das PB eine Datei sperrt solange sie im WebGadget angezeigt wird? Ich habe versucht die Datei per Windows-Explorer zu löschen währen sie im WebGadget angezeigt wird und das funktioniert.

Speziell geht es um folgenden Code:

Code: Alles auswählen

      If EventGadget = #ListView_Search
        If GetGadgetText(#ListView_Search)<>""
          SelectElement(SearchList(),GetGadgetState(#ListView_Search))
          CurrentPage=SearchList()\File
          If ReadFile(0, CurrentPage)
;Debug "File erstellen: "+GetPathPart(CurrentPage)+"SearchList.htm"
            If CreateFile(1,GetPathPart(CurrentPage)+"SearchList.htm")
              While Eof(0) = 0
                CurString.s=ReadString(0)
;Debug "  Durchsuche "+CurString
                ForEach SearchList()\Keyword()
;Debug "  Suche "+Keywords()
                  CurString=ReplaceString(CurString,SearchList()\Keyword(),"<b style="+Chr(34)+"background-color:#FF2222"+Chr(34)+">"+SearchList()\Keyword()+"</b>")
                Next
                WriteString(1,CurString)
;Debug "  Schreibe "+CurString
              Wend
              CloseFile(1)
            EndIf
            CloseFile(0)
          EndIf
          SetGadgetText(#Web_Help,GetPathPart(CurrentPage)+"SearchList.htm")

;-------Warteschleufe:--------
          While EventGadget<>#Web_Help And EventType<>#PB_EventType_DownloadEnd
            Event = WindowEvent()
            EventGadget = EventGadget()
            EventType = EventType()
          Wend
;-----------------------------

;          Delay(500)
;          While FileSize(GetPathPart(CurrentPage)+"SearchList.htm")<>0
          If DeleteFile(GetPathPart(CurrentPage)+"SearchList.htm")=0
;Debug "File löschen fehlerhaft: "+GetPathPart(CurrentPage)+"SearchList.htm"
          EndIf
;          Wend
;Debug CurrentPage
        EndIf
      EndIf
Ich öffne eine .htm-Datei, markiere darin die gesuchten Schlüsselwörter und speichere sie als "SearchList.htm" in den gleichen Ordner ab. Danach öffne ich die neue Datei in dem WebGadget und will sie anschließend löschen, was nicht funktioniert. Wenn ich den als "Warteschleife" markierten Bereich entferne. wird die Datei zwar gelöscht, allerdings wird sie im WebGadget nicht angezeigt, ich vermute mal weil PB schneller mit dem löschen ist als der Inhalt der Datei ins Gadget gestreamt wurde.

Weiß jemand einen Weg, das in den Griff zu bekommen?

Danke schon mal im Voraus!

MAC
Windows XP 32-bit SP3, Windows 7 64-bit, PB 4.60, PB 5.11, PB 5.20
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Probleme mit DeleteFile

Beitrag von HeX0R »

Da du uns kein lauffähiges Beispiel gepostet hast, bekommst du von mir auch nur einen Knochen hingeworfen:
Ich würde #PB_Web_Busy mal probieren.

Ob's damit geht, weiss ich aber nicht, kann ja nichts ausprobieren.
MightyMAC
Beiträge: 55
Registriert: 07.01.2007 18:11
Wohnort: Duisburg
Kontaktdaten:

Re: Probleme mit DeleteFile

Beitrag von MightyMAC »

Hmm,

wenn ich den Bereich "Warteschleife" mit diesem hier ersetze

Code: Alles auswählen

          While GetGadgetAttribute(#Web_Help,#PB_Web_Busy)
           Delay(5)
          Wend
bleibt er für immer dort hängen.

Ich glaub, ich mach mal ein lauffähiges Testproggie fertig...
Windows XP 32-bit SP3, Windows 7 64-bit, PB 4.60, PB 5.11, PB 5.20
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Probleme mit DeleteFile

Beitrag von HeX0R »

MightyMAC hat geschrieben:wenn ich den Bereich "Warteschleife" mit diesem hier ersetze

Code: Alles auswählen

          While GetGadgetAttribute(#Web_Help,#PB_Web_Busy)
           Delay(5)
          Wend
bleibt er für immer dort hängen.
Ich bin mir nicht sicher, aber ich würde mal vermuten, dass der Status auch immer erst durch einen Aufruf von (Wait)WindowEvent() neu gesetzt wird.
MightyMAC hat geschrieben: Ich glaub, ich mach mal ein lauffähiges Testproggie fertig...
Ja, das wäre nützlich.
Ausserdem fällt einem selbst dann meist auch noch die ein oder andere Idee ein.
MightyMAC
Beiträge: 55
Registriert: 07.01.2007 18:11
Wohnort: Duisburg
Kontaktdaten:

Re: Probleme mit DeleteFile

Beitrag von MightyMAC »

HeX0R hat geschrieben:Ich bin mir nicht sicher, aber ich würde mal vermuten, dass der Status auch immer erst durch einen Aufruf von (Wait)WindowEvent() neu gesetzt wird.
Da hast du ja mal sowas von recht...

Klappt hervoragend!

Dank schön!

MAC
Windows XP 32-bit SP3, Windows 7 64-bit, PB 4.60, PB 5.11, PB 5.20
Antworten