Autor Beitrag
jawo3
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 22.02.11 15:22 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: 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:

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)


Zuletzt bearbeitet von Xion am Di 22.02.11 15:33, insgesamt 2-mal bearbeitet
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: 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

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.