Seite 2 von 2

Verfasst: 16.09.2004 01:19
von Ynnus
Das simbolisiert, dass dies keine Variable sondern ein Pointer ist. Freak hat dazu mal ein Tutorial geschrieben, solltest du dir unbedingt ansehen (hab ich neulich auch zum 2ten Mal schon gelesen...):
Direktlink von Purearea.net: http://www.purearea.net/pb/download/tut ... ointer.zip

Verfasst: 16.09.2004 01:24
von Frosch
@Sunny,

ich dachte die Pointer werden mit ? angegeben. Oder hab ich da was falsch in Erinnerung. Komisch ist auch, dass das Ganze auch ohne das Sternchen funktioniert.

Das ganze Ding mit den regulären Ausdrücken ist eh seltsam, ich habe als weiteres Zeichen ein Komma zugefügt, das funktioniert aber nur, wenn es vor den restlichen Zeichen steht.

Gruß Ralf

Verfasst: 16.09.2004 08:10
von benny
@Frosch:

Also mit einem ? bekommt man die Adresse von Labels zurück.

Zu den regülären Ausdrücken kann ich Dir nur Recht geben. Bisher
blicke ich dort auch noch nicht durch. Ich wäre auch froh, wenn die
Hilfe von Flo's Lib ein wenig ausführlicher wäre.

Desweiteren scheint es verschiedene Implementierungen von Regular
Expressions zu geben. Und ich weiß nicht inwieweit diese alle konform sind,
bzw. in der Lib umgesetzt sind. In der Beschreibung steht ja:
This library, based on a library developed several years ago by Henry
Spencer at the University of Toronto, adds some functions for using a
subset of Perl Regular Expressions in PureBasic.
Und was nun mit diesem "subset of Perl Regular Expressions" gemeint
ist, ist mir leider vollkommen unklar.

Zu den Problem mit dem Komma, so könnte es sein, dass es sich um ein
Spezialcharakter handelt, welches man in dem regulären Ausdruck mit
einer Art Escapezeichen deklarieren muss ( manchmal '\' ).

Wie es genau geht, kann ich Dir aber leider nicht sagen.... :cry:

Verfasst: 16.09.2004 09:17
von freedimension
Ich weiß ja nicht, aber schießt du da nicht mit Spatzen auf Kanonen? Eine von Hand geschriebene Funktion hätte es hier auch getan und wäre vermutlich schneller und kleiner, auch (oder gerade eben) ohne Reguläre Ausdrücke ;-)
Die sind nämlich eigentlich dafür gedacht komplexere Zusammenhänge in Strings zu erkennen/ersetzen.

Verfasst: 16.09.2004 11:13
von Frosch
@freedimension,

wie würdest Du eine solche funktion realisieren? Ist das nicht viel umständlicher?

Gruß Ralf

Verfasst: 16.09.2004 11:32
von Agent
Morsche!

Sorry, bin hier zufällig reingestolpert:

RegComp () und RegExed()

wo gibts dass denn? sind das procs von dir? Ist doch kein regulärer Befehl von PB oder?

Verfasst: 16.09.2004 11:34
von NicTheQuick
Wenn man nur testen will, ob gültige Zeichen benutzt wurden, würde ich das so machen.

Code: Alles auswählen

Dim AllowedChars.l(255)
Procedure SetAllowedChars(*AllowedChars.BYTE)
  Protected a.l
  For a = 0 To 255
    AllowedChars(a) = #False
  Next
  While *AllowedChars\b
    AllowedChars(*AllowedChars\b & $FF) = #True
    *AllowedChars + 1
  Wend
EndProcedure

Procedure TestAllowedChars(*String.BYTE)
  While *String\b
    If AllowedChars(*String\b & $FF) = 0 : ProcedureReturn #False : EndIf
    *String + 1
  Wend
  ProcedureReturn #True
EndProcedure

SetAllowedChars(@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-.%")

Debug TestAllowedChars(@"Hallo")
Debug TestAllowedChars(@"Nummer123")
Debug TestAllowedChars(@"www.ich-bin-da.de")
Debug TestAllowedChars(@"das geht nicht")
Debug TestAllowedChars(@"das%20geht%20auch%20nicht!")

Verfasst: 16.09.2004 12:06
von Frosch
@NicTheQuick,

super, DANKE! das werd ich mir jetzt mal genauer ansehen, ich denke das kann ich gebrauchen. Du kannst mir doch bestimmt das Sternchen erklären oder?

Code: Alles auswählen

*AllowedChars\b
Ist das ein Pointer? Ich bin leider nicht so fit, was das Programmieren angeht, die Sache mit den Regulären Ausdrücken hatte ich aus einem PHP Buch übernommen und in einem Domainchack eingesetzt. Deshalb bin ich auf die Idee gekommen es in PB einzusetzen.

@Agent,

RegComp () und RegExed() sind aus der Userlib.

Hm, eigentlich gehört dieser Tread garnicht mehr in die Laberecke ;-)

Gruß Ralf

Verfasst: 16.09.2004 12:19
von NicTheQuick
Ich erkläre das jetzt nicht alles nochmal. Lies dir nochmal den Post von Sunny durch. Hier ist er, damit du nicht hochscrollen musst. :wink:
Sunny hat geschrieben:Das simbolisiert, dass dies keine Variable sondern ein Pointer ist. Freak hat dazu mal ein Tutorial geschrieben, solltest du dir unbedingt ansehen (hab ich neulich auch zum 2ten Mal schon gelesen...):
Direktlink von Purearea.net: http://www.purearea.net/pb/download/tut ... ointer.zip