mystring[0]
ist nur bei Shortstrings die Länge des Strings. Benutze bitte immer length(mystring)
falls Du die Länge benötigst.
Stimmt nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var str: String;
begin
str := 'Hallo Welt!';
Caption := IntToStr(PInteger(Integer(@str[1])-SizeOf(Integer))^);
end;
Length(mystring) ist natürlich trotzdem zu bevorzugen.
Delphi-Quellcode:
const
bstb='aaaaaaaaaa';
var
i: integer;
mystring: ansistring;
begin
mystring:='';
for i:=1 to 30 do
mystring:=mystring+bstb;
self.Button1.Caption:=format('%d -- %d',[length(mystring),mystring[0]]);
end;
ergibt:
[Fehler] Unit1.pas(38): Auf Element 0 kann nicht zugegriffen werden - 'Length' oder 'SetLength' verwenden
es ging ja explizit um MyString
[0] mit irgendwelcher Pointerartistik kann man ja beinahe alles erreichen
Gruß
K-H