Naja ich selber würde das nicht in einen String unwandeln, wenn du schon die Quellzahl vorliegen hast.
Wenn du dich nicht an die Pointer traust, nehm die Klasse, aber die erzeugt einiges an Overhead. Ansonsten machst du das mit Pointern, wie ich das Vorgeschlagen habe. Dann nehme dir zwei/drei Methoden:
Delphi-Quellcode:
procedure SetExtended(AList : TStrings; AIndex : Integer; AExtended : Extended);
var
p : PExtended;
begin
p := PExtended(AList.Objects[AIndex]);
if p =
nil then
begin
New(p);
AList.Objects[AIndex] := TObject(p);
end;
p^ := AExtended;
end;
function GetExtended(AList : TStrings; AIndex : Integer) : Extended;
var
p : PExtended;
begin
p := PExtended(AList.Objects[AIndex]);
if p =
nil then
begin
raise Exception.CreateFmt('
Index ' + IntToStr(AIndex) + '
is not set!');
end;
Result := p^;
end;
procedure ClearList(AList : TStrings);
var
i : Integer;
p : PExtended;
begin
for i := 0
to AList.Length - 1
do
begin
p := PExtended(AList.Objects[i]);
if p <>
nil then
begin
Dispose(p);
AList.Objects[i] :=
nil;
end;
end;
end;
Wichtig ist nur, dass du beim zerstören der StringList die Methode
ClearList aufrufst, damit da keine Speicherlecks entstehen.
MfG
Fabian