StringGadget-Text mit GetGadgetText() ermitteln
StringGadget-Text mit GetGadgetText() ermitteln
Hallo,
Ich habe vor ca. ner woche Pure Basic entdeckt und bin begeistert!
Ich hab ein im Prinzip ganz einfaches Problem, wo ich aber nicht weiterkomme und im Rest des Forums finde ich auch nichts dazu.
Und zwar will ich ein Programm machen, das bestimmte Daten erst rausrückt, wenn davor der Richtige Text (sozusagen Passwort) eingegeben wurde. Dies dient keinem bestimmen Zweck, ich würde aber gern wissen wie sowas funktioniert. Also wie das Programm den eingegebenen Text (mithilfe von GetGadgetText() ) ermittelt und dann mit einem bestimmen Text vergleicht und dann je nachdem ob gleicher text oder nicht reagiert (If)
Hoffe auf schnelle antwort!
Danke
Wenn ich zu kompliziert beschreibe kann ich auch den Code posten.
Ich habe vor ca. ner woche Pure Basic entdeckt und bin begeistert!
Ich hab ein im Prinzip ganz einfaches Problem, wo ich aber nicht weiterkomme und im Rest des Forums finde ich auch nichts dazu.
Und zwar will ich ein Programm machen, das bestimmte Daten erst rausrückt, wenn davor der Richtige Text (sozusagen Passwort) eingegeben wurde. Dies dient keinem bestimmen Zweck, ich würde aber gern wissen wie sowas funktioniert. Also wie das Programm den eingegebenen Text (mithilfe von GetGadgetText() ) ermittelt und dann mit einem bestimmen Text vergleicht und dann je nachdem ob gleicher text oder nicht reagiert (If)
Hoffe auf schnelle antwort!
Danke
Wenn ich zu kompliziert beschreibe kann ich auch den Code posten.
Willkommen ...
Vergleichen kannst du mit "IF"
Vergleichen kannst du mit "IF"
Code: Alles auswählen
result.s = GetGadgetText(0) ; gadget anpassen
If result = "passwort"
debug "richtig"
else
debug "falsch"
endif
Ich hab noch mehrere kleine Fragen, für die es sich nicht lohnt einen neuen Tread aufzumachen:
Bei Goto <Sprungmarke> ... was ist da mit Springmarke gemeint?? also die Zeile auf jedenfall nicht. Und welchen Befehl kann ich benutzen um zu einer bestimmten Zeile zu springen oder geht das mit dem?
(Z.B das das Script automatisch je nach Benutzer zu einem bestimmen Punkt springt)
Und wenn ich die Client - Serverbeispiele mit meinem aktuellen Passwort- programm mische, was muss ich dann machen damit der Client die Eingegebenen Texte sendet und der Host dann den einkommenden String wie oben im Normalen Programm prüft und das ergebnis wieder zurückschickt?
Bei Goto <Sprungmarke> ... was ist da mit Springmarke gemeint?? also die Zeile auf jedenfall nicht. Und welchen Befehl kann ich benutzen um zu einer bestimmten Zeile zu springen oder geht das mit dem?
(Z.B das das Script automatisch je nach Benutzer zu einem bestimmen Punkt springt)
Und wenn ich die Client - Serverbeispiele mit meinem aktuellen Passwort- programm mische, was muss ich dann machen damit der Client die Eingegebenen Texte sendet und der Host dann den einkommenden String wie oben im Normalen Programm prüft und das ergebnis wieder zurückschickt?
hi DrNo,
Sprungmarken sind einfach ein text mit einem doppelpunkt dahinterunter gosub findet man in der hilfe auch ein paar beispiele.
bei den netzwerk sachen wird es schon etwas komplizerter, ich glaub da würde dich ein fertiger code von mir erstmal etwas überfordern, daher schau dir einfach mal alles genau an, probiere etwas herum und wenn du irgendwas nicht verstehst, dann frag einfach nochmal nach
Sprungmarken sind einfach ein text mit einem doppelpunkt dahinter
Code: Alles auswählen
Goto Sprungmarke
Debug "wird übersprungen"
Sprungmarke:
Debug "ende"
End
bei den netzwerk sachen wird es schon etwas komplizerter, ich glaub da würde dich ein fertiger code von mir erstmal etwas überfordern, daher schau dir einfach mal alles genau an, probiere etwas herum und wenn du irgendwas nicht verstehst, dann frag einfach nochmal nach

PureBasic 4.40 (Windows - x86)
ich hab jetzt mal aus den Client und Serverbeispielen etwas zusammengebastelt wo ein string zum server geschickt wird, dort wird er mit einem anderen string verglichen und das ergebnis wird an den client zurückgeschickt
Code: Alles auswählen
EnableExplicit
#PORT = 6832
#SIZE = 1000
;/
Define Quit
Procedure Server(dummy)
Shared Quit
Protected *Buffer, SEvent, ClientID, len, Text$
*Buffer = AllocateMemory(#SIZE)
If CreateNetworkServer(0, #PORT)
Debug "Server created (Port "+Str(#PORT)+")."
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case #PB_NetworkEvent_Connect
Debug "Server: A new client has connected !"
Case #PB_NetworkEvent_Data
Debug "Server: Client "+Str(ClientID)+" has send a packet !"
len = ReceiveNetworkData(ClientID, *Buffer, #SIZE)
Text$ = PeekS(*Buffer, len)
Debug "Server: "+Text$
If Text$ = "geheim"
Text$ = "Kennwort ist richtig"
Else
Text$ = "Kennwort ist falsch"
EndIf
SendNetworkString(ClientID, Text$)
Case #PB_NetworkEvent_Disconnect
Debug "Server: Client "+Str(ClientID)+" has closed the connection."
Debug "Server wird beendet"
Quit = 1
EndSelect
EndIf
Until Quit = 1
CloseNetworkServer(0)
Else
MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf
FreeMemory(*Buffer)
EndProcedure
;/
Define ThreadId, ConnectionID, Text$, CEvent, *Buffer, len, Stop
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
ThreadId = CreateThread(@Server(), 0)
;/
ConnectionID = OpenNetworkConnection("127.0.0.1", #PORT)
If ConnectionID
Debug "Client connected to server..."
Text$ = InputRequester("PureBasic - Client", "Kennwort eingeben:", "")
SendNetworkString(ConnectionID, Text$)
*Buffer = AllocateMemory(#SIZE)
Repeat
If NetworkClientEvent(ConnectionID) = #PB_NetworkEvent_Data
len = ReceiveNetworkData(ConnectionID, *Buffer, #SIZE)
Text$ = PeekS(*Buffer, len)
Debug "Client: "+Text$
MessageRequester("PureBasic - Client", Text$, 0)
Stop = 1
EndIf
Until Stop = 1
CloseNetworkConnection(ConnectionID)
FreeMemory(*Buffer)
Else
MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
Quit = 1
WaitThread(ThreadId)
End
PureBasic 4.40 (Windows - x86)