ich suche eine funktion, die die eingabe in ein stringgadget mit vorgegebenen Wörtern vergleicht und nur dann ein neues Fenster öffnet, wenn es eine übereinstimmung zwischen der eingabe und den vorgegebenen Wort gibt
Kann mir da jemand helfen??
Danke schonmal im vorraus
String
Das einfachste wäre wohl die vogegebenen Worte in einem Array (siehe Dim in der Hilfe) zu halten und die Eingabe in einer Schleife damit zu vergleichen (einfach per "="). Mit UCase(String$) könntest Du alles in Großschreibung konvertieren um verschiedene Schreibarten abzufangen (PureBord und Pureboard wären dann PUREBOARD = PUREBOARD).
Bei einer For-Next-Schleife könntest Du die Zählvariable als Index auf das Array verwenden.
Für die Rückmeldung bietet sich wohl MessageRequester() an.
Wenn Du das Ganze noch in eine Prozedur (Procedure - nur ein anderes Wort für Funktion) schreibst hast Du außer dem gewünschten Resultat noch das unbeschreibliche Gefühl es selbst gemacht zu haben.
Später könntest Du es noch ausbauen
- z.B. mit String-Vergleich mit Wildcards http://www.purebasic.fr/german/viewtopic.php?t=9625
im CodeArchiv http://www.purearea.net/pb/german/ findest Du aber auch einiges.
Bei einer For-Next-Schleife könntest Du die Zählvariable als Index auf das Array verwenden.
Für die Rückmeldung bietet sich wohl MessageRequester() an.
Wenn Du das Ganze noch in eine Prozedur (Procedure - nur ein anderes Wort für Funktion) schreibst hast Du außer dem gewünschten Resultat noch das unbeschreibliche Gefühl es selbst gemacht zu haben.
Später könntest Du es noch ausbauen
- z.B. mit String-Vergleich mit Wildcards http://www.purebasic.fr/german/viewtopic.php?t=9625
im CodeArchiv http://www.purearea.net/pb/german/ findest Du aber auch einiges.
Viele Wege führen nach Rom. Ich kenne aber keinen Einfacheren.
Nun beraube ich Dich doch des Erfolges es ganz allein gemacht zu haben :
Nun beraube ich Dich doch des Erfolges es ganz allein gemacht zu haben :
Code: Alles auswählen
AnzahlElemente = 2
Dim MyArray.s( AnzahlElemente-1)
; AnzahlElemente-1 = 1
; das ergibt 2 Elemente weil die Zählung bei 0 (nicht bei 1) beginnt
MyArray(0) = "Hallo"
MyArray(1) = "Welt"
.... ; Die Eingabe
For i = 0 To AnzahlElemente-1
If MyArray(i) = ...
; = der Vergleichswert - das eingegebene Wort
... ; hier die Meldung - z.B. "Habe passendes Wort gefunden"
EndIf
Break
; die For/Next Schleife direkt verlassen
;- macht Sinn wenn jedes Wort nur einmal im Array vorkommt
; dann brauchen wir bei einem Treffer nicht weiter suchen
Next
mit arrays kannst du einfach mit einem variablen-namen auf
mehrere verschiedene werte zugreifen. unterschieden werden
sie mit einem index, der in klammern angegeben wird, z.b:
vorher mußt du so ein array aber deklarieren, mit dem schlüsselwort Dim:..wobei die 9 dem compiler sagt, das du ein array mit 10 elementen haben willst, nämlich von 0 bis 9.
danach kannst du werte speichern:
und lesen:..und in beiden fällen kannst du auch variablen als index nehmen:
ohne arrays müßtest du verschiedene variablen nehmen:..und müßtest so immer alles zeile für zeile coden, ohne schleifen nutzen zu können und dergleichen 
du kannst natürlich auch andere typen verwenden, z.b. Strings(achte auf das .s am ende):
alles klar?
mehrere verschiedene werte zugreifen. unterschieden werden
sie mit einem index, der in klammern angegeben wird, z.b:
Code: Alles auswählen
myArray(3)
Code: Alles auswählen
Dim myArray(9)
danach kannst du werte speichern:
Code: Alles auswählen
myArray(0)=100
myArray(1)=200
myArray(3)=3000
myArray(5)=555
myArray(8)=-12
myArray(9)=9
Code: Alles auswählen
Debug myArray(2)
Debug myArray(5)
Code: Alles auswählen
For k=0 To 9
Debug myArray(k)
Next
Code: Alles auswählen
myProblem0 = 0
myProblem1 = -16
myProblem2 = 33
myProblem3 = 1000

du kannst natürlich auch andere typen verwenden, z.b. Strings(achte auf das .s am ende):
Code: Alles auswählen
Dim myOtherArray.s(3)
myOtherArray(0) = "hell"
myOtherArray(1) = "0"
myOtherArray(2) = "wold"
myOtherArray(3) = ";)"
For n=0 To 3
Debug myOtherArray(n)
next
alles klar?