Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Verwendung des "copy" Befehls


jawo3 - Di 22.02.11 15:22
Titel: Verwendung des "copy" Befehls
Hi,
in der heutigen Informatikklausur lautete eine Frage in etwa so:

In dem vorgegeben Programm x wird "copy" verwendet um den ersten Buchstaben aus dem Inhalt des Editfeldes in einer Variablen zu speichern.
Der Aufbau sieht derzeit so aus:
copy(text,1,1);

Wie müsste der dritte Parameter verändert werden, damit statt des ersten Buchstabens der gesamte String in der Variablen gespeichert wird?


Ich habe in der Aufregung mal blind auf "0" getippt, jetzt im nachhinein scheint mir der ganze copy Kram jedoch ziemlich sinnlos, wenn eh der gnaze String eingelesen werden soll. Aber das wäre ja sehr gemein bei dieser Fragestellung :?

Da kann man doch gleich sowas hier machen, oder?:
variable:=Edit.Text;


Vielleicht könnt ihr mich aufklären. :wink:


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 22.02.2011 um 17:59


Xion - Di 22.02.11 15:30

Es ist zwar sinnlos, aber trotzdem ist 0 falsch :P

S:= Copy(text,1,MaxInt);
oder
S:= Copy(text,1,Length(text));

Der zweite Parameter gibt die Anzahl der zu kopierenden Zeichen an. Mehr als vorhanden sind, kann man aber nicht kopieren (deswegen funktioniert auch MaxInt)

Um es noch etwas sinnvoler zu machen hätte man die Frage stellen können, wie kopiert man alles AUSSER den ersten Buchstaben. Antwort:


S:= Copy(text,2,MaxInt) ;)

//edit:
Es hätte vielleicht auch s:=copy(text); funktioniert :mrgreen:


Nersgatt - Di 22.02.11 15:30

Ich vermute, der Lehrer wollte auf Length() hinaus.
Wobei das natürlich Quatsch ist, denn Copy(x, 1, length(x)) liefert x


BenBE - Di 22.02.11 20:38

Nicht in Bezug auf die Referenzzählung ;-)

Außerdem alles AUSSER dem ersten Zeichen erhält man mit Delete(Text,1,1);

Wobei NUR das erste Zeichen hätte man auch mit text[1] machen können ...

Aber naja ... Schulaufgaben halt :P