Joachim Mohr Mathematik Musik Delphi
Zeichen
In Delphi wird der Typ Zeichen zum Beispiel folgendermaßen deklariert:
var c: char;
Zeichen werden durch den
ASCII-Zeichensatz in einer Breite von 8 Bit festgelegt:
Nr.1 bis 31: Steuerzeichen: Zum Beispiel #7=Bell #13=Wagenrücklauf #10=Zeilenvorschub
Nr.32 bis 127: Zahlen, Alphabet, Satzzeichen. Zum Beispiel #48='0' #49='14' ...
#65='A' #66='B' ... #97='a' #98='b'
Nr.128 bis 255: Sonderzeichen, nationale Zeichen. Zum Beispiel #228='ä'
Ausblick: Für europäische + chinesische + japanische + ... Zeichen wird der Unicode mit 16 Bit
verwendet.
Programm ASCII: Darstellung der Zeichen
Strings (Zeichenketten)
In Delphi wird der Typ String zum Beispiel folgendermaßen deklariert:
var s: string;
Arbeiten mit Strings:
Beispiel 1: (Programm: 1Schritt)
procedure TForm1.Button2Click(Sender: TObject);
var s1, s2, s3, s4, s5, s6, s7, su: string;
n1, n2, k: integer;
c: char;
begin
s1 := 'Justin';
s2 :='Timberlake';
n1 := length(s1);
n2 := length(s2);
showmessage('a) "' + s1 + '" hat ' + inttostr(n1) + ' Buchstaben');
showmessage('b) "' + s2 + '" hat ' + inttostr(n2) + ' Buchstaben');
su := s1 + ' ' + s2;
showmessage('c) ' + su);
s3 := copy(su,1,n1);
showmessage('d) Die ersten ' + inttostr(n1) + ' Buchstaben von "' + su + '" sind:"' + s3 + '"');
s4 := copy(su,12,3);
showmessage('e) Die 3 Zeichen ab der 12. Stelle von "' + su + '" sind: "' + s4);
s5 := copy(su,7,length(su)- 7);
showmessage('f) ' + s5);
s6 := copy(su,7,length(su)- 6);
showmessage('g)' + s6);
s7 := copy(su,7,1000); // als Test
showmessage('h)' + s7); //Test ist erlaubt. Es werden nur die restlichen Zeichen erfasst.
for k := 1 to length(s1) do Begin
c := s1[k];
showmessage('i) ' + c);
End;
//c := s1[1000]; // Unbedingt zu vermeiden: Unzulässiger Zugriff
// // Manchmal krachts, manchmal geht's scheinbar gut.
end;
Beispiel 2: (Programm: 2Schritt)
procedure TForm1.Button2Click(Sender: TObject);
var s, s1, s2: string;
n: integer;
begin
s := edit1.text;
n := pos(' ',s);
if n = 0 then showmessage('Es ist nur ein Wort angegeben.') else Begin
s1 := copy(s,1,n-1);
s2 := copy(s,n+1,length(s) - n);
edit2.text := s1;
edit3.text := s2;
End;
end;