Bonjour à tous,

Dans la doc trouvée là, je peux lire :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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,