Aktuelle Zeit: 17.10.2019 22:46

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: reguläre Ausdrücke
BeitragVerfasst: 15.09.2004 15:14 
Offline

Registriert: 08.09.2004 00:39
Hallo,

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:
if(!preg_match("([^a-zA-Z0-9-])",$domain,$array)){...
Damit überprüfe ich bei einem Domaincheck, ob erlaubte Zeichen eingegeben wurden. Wie mache ich sowas in PB?

Gruß Ralf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 15:24 
Offline
Admin
Benutzeravatar

Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Hi Ralf Frosch,

auf der Seite von André http://www.purearea.net , auch oben verlinkt, finden sich einige Userlibs welche sehr einfach zu installieren sind. Darunter müsste auch eine Userlib von FloHimself sein welche es erlaubt mit Regular Expressions zu arbeiten.

_________________
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 16:51 
Offline

Registriert: 08.09.2004 00:39
Hallo freedimension,

DANKE! für die Info. Ich kriegs aber leider nicht gebacken. Mein Englisch ist wohl auch schon etwas eingerostet.

Gruß Ralf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 17:52 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Frosch hat geschrieben:
Ich kriegs aber leider nicht gebacken.

WAS kriegst Du nicht gebacken. WO gibt's konkrete Probleme?

Grüße ... Kiffi


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 18:53 
Offline

Registriert: 08.09.2004 00:39
@Kiffi,

ich denke ich bräuchte ein konkretes Beispiel, so wie ich es oben im PHP gegeben habe. Aus dem Beispiel das bei der Libery war werd ich nicht schlau. Ich möchte einfach nur bestimmte Zeichen in einem String zulassen, also z.B. A-Z oder a-z oder 0-9. So wie in meinem PHP Beispiel.

Gruß Ralf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 19:15 
Offline
Benutzeravatar

Registriert: 29.08.2004 09:18
Wohnort: Am Ende des www's
@Frosch:

Ich habe mal einen Newsreader als Test für Flo's Lib gemacht.
Vielleicht guckst Du Dir den mal an:

[EDIT]cutted[/EDIT]

_________________
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !


Zuletzt geändert von benny am 15.09.2004 22:10, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 21:20 
Offline

Registriert: 08.09.2004 00:39
@benny,

es funktioniert bei mir nicht. Es lad nicht mal die rdf Datei runter.

Hm, ich stell die Frage mal anders. Angenommen ich will eine Eingabe überprüfen. Text$ darf nur die Zeichen 0-9 und A-Z und a-z enthalten. Wenn andere Zeichen in Text$ enthalten sind soll das zu einer Fehlermeldung führen. Wer kann mir ein kleines Beispiel dazu geben wie ich sowas realisiere.

Gruß Ralf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 22:28 
Offline
Benutzeravatar

Registriert: 29.08.2004 09:18
Wohnort: Am Ende des www's
@Frosch:

Hast recht, funzt irgendwie nicht mehr ... muss ich mir mal angucken.
Scheint das RDF-File nicht richtig runterzuladen ...

Zurück zum eigentlich Problem. Ich habe mich bisher nicht sehr viel mit
Regular Expressions auseinander gesetzt und auf den ersten Blick
wirken sie echt ein wenig verwirrend.

Benutzt man den Ausdruck aus Deinem PHP-Beispiel schaut es folgender-
maßen aus:

Code:
; 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

_________________
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.09.2004 22:52 
Offline
Benutzeravatar

Registriert: 29.08.2004 09:18
Wohnort: Am Ende des www's
@Frosch:

Nochmal zum Newsticker-Programm ... irgendwie kann mein Prog den
News von heise.de nicht runterladen. Gibt immer ein Fehler.

Bei einem anderen Newsticker funktioniert es bei mir...

Naja, ist halt schon über ein Jahr alt ... vollständigkeithalber, hier mal
ne Version, die zumindest bei mir ;-), läuft:

Code:
; 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

_________________
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 16.09.2004 00:41 
Offline

Registriert: 08.09.2004 00:39
@benny,

hey, das funktioniert ja. Super!! DANKE!!!!!!!!

Vielleicht ist die Frage blöd, aber weißt Du wozu das Sternchen vor reg ist? *reg

Gruß Ralf


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye