Fehlermeldung (VB 6.0): Element nicht gefunden



  • Guten Morgen

    Beim Debuggen steht in diesem fil komischerweise der Pfad derjenigen Datei, wies eigentlich sein müsste.

    [quote]
    For Each fil In fld.Files
    If fil.DateCreated < datum Then
    ListView1.ListItems.Remove ([i]fil[/i])
    Else
    ...
    End If
    Next
    [/quote]

    Nächstes Mal wieder C++, muss aber in VB! 😞
    mfg Quest



  • Nuja,

    hmm...

    ....

    Meinst nich die Infos sind ein bisschen wenk ? 🤡



  • Ich weiß nicht wie das in der 6.0 Version aussieht, aber wenn fil vom Typ Scripting.File ist dann wird auch der Pfad zurückgegeben, weil (unter anderem) Path die Standard-Eigenschaft des File-Typs ist. Wenn Du den Index haben willst dann musst Du auch "normale" For-Schleife nehmen. Oder einen Integer in der for each um eins erhöhen.



  • Guten Tag,

    @Knuddelbaer: Prinzipiell ists nicht mehr denn sonst hängt nichts mit diesem Abschnitt zusammen.

    @BIce: Vielleicht verstehe ichs ja auch falsch doch sollte diese Eigenschaft doch nur diese eine Datei entfernen. Bitte belehr mich eines besseren, aber warum kann ich es nicht entfernen wenn der Pfad mitgegeben wird.



  • Hallo,
    1. Es ist nicht eine Eigenschaft, sondern eine Methode.
    2. ListItems ist - wie der Name schon sagt - eine Liste. Sie enhält (wenn ich es richtig verstehe) Dateipfade. Wenn Du einen Eintrag löschen willst (mit ListItems.Remove), dann musst Du auch wissen an welcher Position sich dieser Eintrag befindet, du übergibst der Methode aber nur einen Eintrag. Und woher soll die Methode wissen wo sich die Liste befindet? Sie wird nicht danach suchen, das musst Du selbst tun. Eine solche Möglichkeit wäre (Hier wird nicht gesucht, sondern es wird jeder Eintrag geprüft bis der passende gefunden wurde.):

    Dim iter as Integer
    For Each fil In fld.Files
       iter = iter + 1 ' Da der erste Eintrag mit 1 beginnt muss Du es auch 
                       '- zuerst aufrufen. Wenn Du OptionBase auf 0 setzt dann musst
                       '- Du es nach End If schreiben
       If fil.DateCreated < datum Then
          ListView1.ListItems.Remove iter ' Hier wird die Datei an der Position iter 
                                          '- gelöscht
       Else
          [...]
       End If
    Next
    

    PS: Das mit der Liste stimmt es nicht ganz, es ist nämlich eine "besondere" Liste, die Schlüssel-Wert-Paare enthält. D.h. Du kannst deine Liste z.B. mit diesen Einträgen füttern:

    '                       Schlüssel             Wert
    ListView1.ListItems.Add Key:="boeseDatei"    Text:="virus.exe"
    ListView1.ListItems.Add Key:="nochSchlimmer" Text:="iexplore.exe"
    

    Zu sehen bekommst Du nur virus.exe und iexplore.exe.
    Aber Du kannst dann, wenn Du eine Datei aus der Liste entfernen willst, entweder den Index ...

    ListView1.ListItems.Remove 1 ' Es wird der Eintrag "virus.exe" entfernt
    

    ... oder den Schlüssel nehmen

    ListView1.ListItems.Remove "nochSchlimmer" ' Es wird der Eintrag "explore.exe" entfernt
    

Anmelden zum Antworten