Seite 1 von 2

Datei löschen... bekomm wert 0 (null)

Verfasst: 02.01.2006 20:18
von Tsuki-Namida
Ich habe ein Listwiev gemacht man muss die datei auswählen und anschliesend kann man eine aktion durchführen unteranderen auch löschen.

Wenn ich löschen möchte kommt eine sicherheitsfrage ob ich sie auch löschen möchte im "Ja" fall soll die datei logischerweise gelöscht werden aber das resultat ist 0 (null).

Hier noch wer quell text:

Code: Alles auswählen

If GadgetID = #Listview_0
  If EventType() = #PB_EventType_LeftClick
    File.s=GetGadgetItemText(#Listview_0,GetGadgetState(#Listview_0),0)
    ex$ = File
    File + ".txt"
    Debug File
    z = 1
  EndIf
ElseIf GadgetID = #Loschen
  If z = 1
    naricht$ = "Möchte Sie Wirklich diesen Sender ''" + ex$ + "''Löschen?"
    yes_no = MessageRequester("Frage", naricht$, #PB_MessageRequester_YesNo)
    If yes_no = #PB_MessageRequester_No
      MessageRequester("Hinweis", "Abgebrochen!", #PB_MessageRequester_Ok)
    EndIf
    If yes_no = #PB_MessageRequester_Yes
      x$ = GetExePath() + File
      h = DeleteFile(x$)
      Debug x$
      Debug h
      If h <> 0
        MessageRequester("Hinweis", "Es ergab einen fehler beim löschen des Senders. Möglicherweise Wird er gerade anderweitig verwendet.", #PB_MessageRequester_Ok)
      Else
        MessageRequester("Hinweis", "Sender Wurde erfolgreich gelöscht.", #PB_MessageRequester_Ok)
      EndIf
    EndIf
  Else
    MessageRequester("Hinweis", "Bitte wählen Sie einen Sender zum Löschen aus.", #PB_MessageRequester_Ok)
  EndIf
EndIf
Was ist daran falsch? bzw. wo ist da der fehler?

Verfasst: 02.01.2006 20:26
von roherter
kannst du mal den ganzen code reinsetzen dann hat man mehr übersicht?
Arbeitest du mit einer userlib????

Verfasst: 02.01.2006 20:43
von Tsuki-Namida
ja sicher kann ich das ;) ich dachte nur das dies reicht... aber ..okay

Code: Alles auswählen

IncludeFile "Fenster.pb"
Repeat ; Start of the event loop
  
  Event = WindowEvent()
  Delay(1)
  WindowID = EventWindowID()
  GadgetID = EventGadgetID() 
  EventType = EventType()
  If Event = #PB_EventGadget 
    If GadgetID = #Listview_0
    ;{ Listviw
      If EventType() = #PB_EventType_LeftDoubleClick
        File.s=GetGadgetItemText(#Listview_0,GetGadgetState(#Listview_0),0)
        ex$ = File
        File + ".txt"
        IncludeFile "Play.pb"
        z = 1
      ElseIf EventType() = #PB_EventType_LeftClick
        File.s=GetGadgetItemText(#Listview_0,GetGadgetState(#Listview_0),0)
        ex$ = File
        File + ".txt"
        Debug File
        z = 1
      EndIf
    ElseIf GadgetID = #Loschen
      If z = 1
        naricht$ = "Möchte Sie Wirklich diesen Sender ''" + ex$ + "''Löschen?"
        yes_no = MessageRequester("Frage", naricht$, #PB_MessageRequester_YesNo)
        If yes_no = #PB_MessageRequester_No
          MessageRequester("Hinweis", "Abgebrochen!", #PB_MessageRequester_Ok)
        EndIf
        If yes_no = #PB_MessageRequester_Yes
          x$ = GetExePath() + File
          h = DeleteFile(x$)
          Debug x$
          Debug h
          If h <> 0
            MessageRequester("Hinweis", "Es ergab einen fehler beim löschen des Senders. Möglicherweise Wird er gerade anderweitig verwendet.", #PB_MessageRequester_Ok)      
         Else
           MessageRequester("Hinweis", "Sender Wurde erfolgreich gelöscht.", #PB_MessageRequester_Ok)
         EndIf
      EndIf
      Else
        MessageRequester("Hinweis", "Bitte wählen Sie einen Sender zum Löschen aus.", #PB_MessageRequester_Ok)
      EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop

End
Okay das ist auch nicht der ganze code.... aber ich habe hier noch eine rar datei da ich für jede aktion eine neue *.pb Datei gemacht habe (finde ich einfacher bei überarbeiten und auch übersichtlicher).

http://streamer.cybton.com/streamer_v2.0.rar


Und Hier das komplette tool:
http://streamer.cybton.com/streamer_setup.exe

Verfasst: 02.01.2006 21:00
von Ja!
Hi, habe den Code nur kurz überflogen.

Hab nur 2 "Anregungen":

Bist Du sicher, daß das Programm die Datei im richtigen
Verzeichnis versucht zu löschen?

Geht das DeleteFile auch bei schreibgeschützten Dateien?

Verfasst: 02.01.2006 21:10
von Tsuki-Namida
Ja die Datei ist forhanden im richtigen verzeichniss, ich habe extra ein debug string$ gemacht und der pfad ist immer richtig. von schreibschutz steht nichts in der hilfe.... aber schreibgeschützt sind die dateien nicht. und einzugriff eigentlich auch nicht.

Verfasst: 02.01.2006 21:34
von walker
Hi,

bist Du sicher, das die Funktion

Code: Alles auswählen

GetExePath()
den Pfad mit abschließendem \ (backslash) zurückgibt? (ist wohl ein Befehl aus einer Userlib? oder eigene Proc)

Verfasst: 02.01.2006 21:43
von Macros
Vieleicht hast du vergessen wie oben im Source das ".txt" anzuhängen

Code: Alles auswählen

x$ = GetExePath() + File+".txt"

Verfasst: 02.01.2006 21:46
von Tsuki-Namida
@walker
Ja das ist eine Procedure. diese gibt den Pfad dur exe an. zum beispiel deine exe ist in "Eigene Dateien" dann machst du "Ergebnis$ = GetExePath()"
und bei "Debug Ergebnis$" erhäst du "C:\Dokumente und Einstellungen\User\Eigene Dateien\" Ich habe dann nur "Listen\" und File hintendran gehangen da ich mit Ergebnis$ schon im Root Verzeichnis des Programs bin.
Die procedute findest du im rar archiev unter "Exe_finder.pb"

[Edit]
@Macros
Nein das habe ich nicht. Wenn ich im listwiev einfach klicke um zu löschen wird der name in File gespeichert aber eine zeile darunter habe ich gleich 'File + ".txt"'.
Und da reicht dann:
x$ = GetExePath() + File

Verfasst: 02.01.2006 22:04
von Macros
Kannst du bitte mal posten, was der Debug befehl ausgibt?

[edit]
Der Quellcode läuft bei mir trotz aller Bemühungen nicht
[/edit]

Verfasst: 02.01.2006 22:13
von Macros
Übriges, deine Desktopverknüpfung heißt "Stramer" statt "Streamer"