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;