gibt es in PB so etwas wie reguläre Ausdrücke, also wie in Perl oder PHP z.B. preg_match ?
In PHP sieht das z.B. so aus
Code: Alles auswählen
if(!preg_match("([^a-zA-Z0-9-])",$domain,$array)){...
Gruß Ralf
Code: Alles auswählen
if(!preg_match("([^a-zA-Z0-9-])",$domain,$array)){...
Code: Alles auswählen
; Nur Zahlen, Buchstaben (groß / klein) und das Minuszeichen!!!!
*reg = RegComp("([^a-zA-Z0-9-])")
domain.s = "testdomain"
If RegExec(*reg, domain)
Debug "Fehler - Bitte nur Zahlen und Buchstaben !!!"
Else
Debug "Eingabe Korrekt"
EndIf
Code: Alles auswählen
; Kleiner Test der neuen Regular Expression Lib von FloHimself
; _heise-news-ticker_
;
; benny!
;
; PS:
; benötigt demnach die Lib von FloHimself [siehe PureArea.net]
; sowie eine bestehende InternetVerbindung voraus (wird nicht getestet)
Dim Titel.s(150)
Dim Linkh.s (150)
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Gadget_0
#Gadget_1
#Gadget_3
EndEnumeration
Procedure NewsAktualisieren()
*Reg = RegComp ("(<TITLE>|<title>)(.*)(</TITLE>|</title>)")
*Reg2= RegComp ("(<LINK>|<link>)(.*)(</LINK>|</link>)")
If URLDownloadToFile_(0, "http://www.onlinekosten.de/news/ticker.php?format=rdf", "news.rdf", 0, 0) = #S_OK
If (ReadFile(1, "news.rdf"))
counter = 0
While Eof(1)=0
news.s = ReadString()
title.s = Space(100)
link.s = Space(100)
If (RegExec(*Reg, news.s))
RegSub(*Reg, "\2", title.s)
Titel.s(counter) = title.s
counter = counter + 1
EndIf
If (RegExec(*Reg2, news.s))
RegSub(*Reg2, "\2", link.s)
Linkh.s(counter) = link.s
EndIf
Wend
CloseFile(1)
ClearGadgetItemList(#Gadget_3)
For i=1 To counter
AddGadgetItem(#Gadget_3, -1, Titel.s(i))
Next i
EndIf
EndIf
EndProcedure
Procedure NewsAnzeigen(news.l)
news.l = news.l + 2
If news.l > 1
RunProgram(linkh.s(news.l))
EndIf
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 215, 0, 480, 400, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "News Ticker by benny! - weltenkonstrukteur.de")
If CreateGadgetList(WindowID())
ButtonGadget(#Gadget_0, 15, 15, 225, 30, "Newsfeed Aktualisieren")
ButtonGadget(#Gadget_1, 255, 15, 210, 30, "News Anzeigen")
ListViewGadget(#Gadget_3, 15, 60, 450, 315)
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
;Debug "WindowID: " + Str(EventWindowID())
GadgetID = EventGadgetID()
If GadgetID = #Gadget_0
NewsAktualisieren()
ElseIf GadgetID = #Gadget_1
NewsAnzeigen(GetGadgetState(#Gadget_3))
EndIf
EndIf
Until Event = #PB_EventCloseWindow
End