Da haben wir uns wohl etwas falsch verstanden. Wenn das so ist, kannst du natürlich die Strings einfach in Kleinbuchstaben konvertieren und dann vergleichen
Code: Alles auswählen
Global Such$, Verz$, l , Modus
Verz$ = "C:\Ordner\"
Declare SearchAllPath(Path$,Rek,File.s)
Declare SearchOnePath(Path$,Rek,File.s)
If OpenWindow(0, 0, 0, 400, 480, "Suche", #PB_Window_ScreenCentered) = 0 : End : EndIf
If CreateGadgetList(WindowID(0)) = 0 : End : EndIf
ButtonGadget(6, 290, 10, 100, 18,"Nur Hauptpfad")
ButtonGadget(8, 290, 40, 100, 18,"Alle Unterordner")
ButtonGadget(10, 290, 70, 100, 18,"End")
StringGadget(11,8, 10,206,20,"*.BMP")
StringGadget(13,8, 40,206,20,"C:\Ordner\")
x = #PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_FullRowSelect
ListIconGadget (12, 10, 125, 380, 345,"Ergebnisse", 800, x)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget Or Event = #PB_Event_Menu
Select EventGadget()
Case 6
ClearGadgetItemList(12) : SearchOnePath(GetGadgetText(13), 0, GetGadgetText(11))
Case 8
ClearGadgetItemList(12) : SearchAllPath(GetGadgetText(13),0,GetGadgetText(11))
Case 10
End
EndSelect
EndIf
Until Event = 0
End
Procedure SearchAllPath(Path$,Rek,File.s)
If ExamineDirectory(Rek,Path$,"")=0
MessageRequester("Error!","Path checking failed!",0)
Else
Repeat
NextDirectoryEntry(Rek) ;Das hier hat gefehlt!
Typ=DirectoryEntryType(Rek):Name.s=DirectoryEntryName(Rek)
If Typ=1
If CountString(File.s,"*")=0
If Typ=1 And Name.s=File.s
If ReadFile(0,Path$+Name.s)
AddGadgetItem(12,-1,Path$+Name.s)
Else
MessageRequester("Error!","No file(s) found!",0)
EndIf
EndIf
ElseIf CountString(File.s,"*")=3 And Left(File.s,1)="*" And Right(File.s,1)="*"
NewPos=1
StarPosition=1
Found=1
NewFile.s=RemoveString(File.s,"*")
For A=1 To Len(NewFile.s)
If Found=0
Break
ElseIf Found=1
NewNewFile.s=Mid(NewFile.s,StarPosition,1)
Pos=FindString(Name.s,NewNewFile.s,NewPos)
If Pos=0
NewPos=NewPos+1
Found=0
Else
NewPos=Pos+1
StarPosition=StarPosition+1
Found=1
EndIf
EndIf
Next
If Found=1
AddGadgetItem(12,-1,Path$+Name.s+" ?")
EndIf
ElseIf Left(File.s,1)="*" And Right(File.s,1)="*"
NewFile.s=RemoveString(File.s,"*")
If FindString(Name.s,NewFile.s,1)=0
ElseIf FindString(Name.s,NewFile.s,1)<>0
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
ElseIf Left(File.s,1)="*"
NewFile.s=RemoveString(File.s,"*")
If FindString(Name.s,NewFile.s,1)=0
ElseIf FindString(Name.s,NewFile.s,1)<>0
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
ElseIf Right(File.s,1)="*"
NewFile.s=RemoveString(File.s,"*")
If FindString(Name.s,NewFile.s,1)=0
ElseIf FindString(Name.s,NewFile.s,1)<>0
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
ElseIf FindString(File.s,"*",1)<>0
Pos=FindString(File.s,"*",1)
If Left(File.s,Pos-1)=Left(Name.s,Pos-1)
Length=Len(File.s)-Pos
If Right(File.s,Length)=Right(Name.s,Length)
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
EndIf
EndIf
ElseIf Typ=2 And Name.s<>"."And Name.s<>".."
SearchAllPath(Path$+Name.s+"\",Rek+1,File.s)
EndIf
Until NextDirectoryEntry(Rek)=0
EndIf
EndProcedure
Procedure SearchOnePath(Path$,Rek,File.s)
If ExamineDirectory(Rek,Path$,"")=0
MessageRequester("Error!","Path checking failed!",0)
Else
Repeat
NextDirectoryEntry(Rek) ;Das hier hat gefehlt!
Typ=DirectoryEntryType(Rek):Name.s=DirectoryEntryName(Rek)
If Typ=1
If CountString(File.s,"*")=0
If Typ=1 And Name.s=File.s
If ReadFile(0,Path$+Name.s)
AddGadgetItem(12,-1,Path$+Name.s)
Else
MessageRequester("Error!","No file(s) found!",0)
EndIf
EndIf
ElseIf CountString(File.s,"*")=3 And Left(File.s,1)="*" And Right(File.s,1)="*"
NewPos=1
StarPosition=1
Found=1
NewFile.s=RemoveString(File.s,"*")
For A=1 To Len(NewFile.s)
If Found=0
Break
ElseIf Found=1
NewNewFile.s=Mid(NewFile.s,StarPosition,1)
Pos=FindString(Name.s,NewNewFile.s,NewPos)
If Pos=0
NewPos=NewPos+1
Found=0
Else
NewPos=Pos+1
StarPosition=StarPosition+1
Found=1
EndIf
EndIf
Next
If Found=1
AddGadgetItem(12,-1,Path$+Name.s+" ?")
EndIf
ElseIf Left(File.s,1)="*" And Right(File.s,1)="*"
NewFile.s=RemoveString(File.s,"*")
If FindString(Name.s,NewFile.s,1)=0
ElseIf FindString(Name.s,NewFile.s,1)<>0
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
ElseIf Left(File.s,1)="*"
NewFile.s=RemoveString(File.s,"*")
If FindString(Name.s,NewFile.s,1)=0
ElseIf FindString(Name.s,NewFile.s,1)<>0
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
ElseIf Right(File.s,1)="*"
NewFile.s=RemoveString(File.s,"*")
If FindString(Name.s,NewFile.s,1)=0
ElseIf FindString(Name.s,NewFile.s,1)<>0
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
ElseIf FindString(File.s,"*",1)<>0
Pos=FindString(File.s,"*",1)
If Left(File.s,Pos-1)=Left(Name.s,Pos-1)
Length=Len(File.s)-Pos
If Right(File.s,Length)=Right(Name.s,Length)
AddGadgetItem(12,-1,Path$+Name.s)
EndIf
EndIf
EndIf
EndIf
Until NextDirectoryEntry(Rek)=0
EndIf
EndProcedure