Autor Beitrag
FrEaKY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 235


D7
BeitragVerfasst: So 23.05.04 18:51 
Moin
Ich will in nem Chat wo es nur eine Console gibt ne Funktion einbauen wo man mittels Nick NAME seinen Nick ändern kann, zB "Nick Sam" dann soll der Name auf Sam geändert werden. Ich hab nur kein Plan wie ich das machen soll. Habs schon mit ner while Schleife versucht aber hat net gefunzt.
MfG Matthias

Moderiert von user profile iconPeter Lustig (10:39, 24.05.2004): Topic verschoben
Jetstream
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: So 23.05.04 21:28 
ausblenden Quelltext
1:
if copy(Zeile,1,4)='Nick' then NeuerNick:=copy(Zeile,6,length(Zeile)-5);					


Copy hat dabei drei Parameter:
- Der erste ist der String, aus dem man kopiert, keine Ahnung wie der bei dir heißt, hab ihn einfach mal 'Zeile' genannt.
- Der zweite ist die Stelle, von der man anfängt zu kopieren (1 für die erste Stelle, usw.)
- Der dritte gibt an, wie viele Zeichen man rauskopieren möchte.

Der Rückgabewert von copy ist logischerweise ein String.

Also bedeutet der Quelltext: Wenn ich aus der Zeile vom ersten Zeichen an 4 Stellen rauskopiere und dann 'Nick' rauskommt, dann bekommt der String 'Neuernick' den Inhalt: Vom String 'Zeile' vom sechsten Zeichen an (nach 'Nick' und dem Leerzeichen) den Rest der Zeile rauskopieren. (Das sind genau so viele Zeichen, wie die Zeile hat, nur halt 5 weniger, also 'Nick' und das Leerzeichen)

Viel Spass
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Mo 24.05.04 09:33 
Ich würde auch das Leerzeichen hinter "Nick" mit einbeziehen, um das Kommando präzise einzugrenzen.

Desweiteren würde ich ein Sonderzeichen zum Bestandteil von Chat-Kommandos machen.
Z.B. das "/" voranstellen --> Befehl lautet dann "/Nick". Also:
ausblenden Delphi-Quelltext
1:
if copy(Zeile,1,6)='/Nick ' then NeuerNick:=copy(Zeile,7,length(Zeile)-6);					


Wenn du das nicht machst, erlebst du eine böse Überraschung, wenn jemand schreibt:
"Nick hat sich ein neues Auto gekauft."

Und darauf achten, dass ohne weitere Prüfungen NeuerNick ein Leerstring sein kann, wenn in Zeile hinter "/Nick " nichts steht.