Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#8

Re: Bitmuster eines Single Berechnen

  Alt 15. Jan 2009, 15:57
String[10] gibt 'nen ShortString an, welcher maximal 10 Zeichen enthalten kann ... aber ein ShortString hat noch 'nen LängenByte und das steht anfangs auf 0 (keine Zeichen enthalten)

du kannst da entweder Array[0..9] of Char verwenden, oder mußt halt (z.B. per SetLength) die Länge noch definieren

[add]
ups: doch keine 0 am Anfang ... ein ShortString wird nicht initialisiert ... heißt, es kann da auch vollkommener Schrott drinstehn.

Delphi-Quellcode:
Var S: String[10];

S[0] := #2; // Index null entspricht der Position des Längenbytes
            // das entspricht also SetLength(S, 2);
S[1] := 'a';
S[2] := 'b';
S[9] := 'x';
S = 'ab'
bei ShortString gibt es keine Terminierung mit #0 ... da zählt nur die Angabe im Längenbyte

[add2]
zum Testen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
Var S: String[10];

begin
  SetLength(S, 4);
  S[1] := 'a';
  S[2] := 'b';
  S[4] := 'd';
  S[9] := 'x';
  Label1.Caption := s;
end;
im Labem steht nun 'ab#d' (# ist ein zufälliges Zeichen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat