Longueur d'une AnsiString
Bonjour à tous,
Dans la doc trouvée là, je peux lire :
Citation:
Ansistrings are strings that have no length limit.
Sauf que, j'ai créé un tout petit bazar pour mettre en évidence que je ne peux pas monter à 1,4 Go --> erreur "out of memory" (1,3 ça passe, je n'ai pas creusé pour trouver exactement où ça coince) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| var
ln: int64 = 1000000000; // 1 Go
procedure TMainForm.ButtonTestClick(Sender: TObject);
var
s: ansistring;
begin
SetLength(s, ln);
ShowMessage(IntToStr(Length(s)));
SetLength(s, 10); // pour libérer
end;
procedure TMainForm.ButtonPlusClick(Sender: TObject);
begin
ln := ln + 100000000; // + 100 Mo
end;
procedure TMainForm.ButtonMoinsClick(Sender: TObject);
begin
ln := ln - 100000000; // - 100 Mo
end; |
Lorsque le ShowMessage affiche 1,3 Go, le "moniteur de ressources" de 7 me dit que la mémoire utilisée par le processus est de 997 Mo (ça descend doucement), et la mémoire disponible de 958 Mo (et ça monte doucement).
Une idée pour pouvoir avoir une Ansistring de 5 ou 6 Go ?
Bonne journée,