StringReserve

Réserve un buffer de la taille spécifiée pour une chaîne de caractères en mémoire.

bool  StringReserve(
   string&    string_var,       // chaîne de caractères
   uint       new_capacity      // taille du buffer pour stocker une chaîne de caractères
   );

Parameters

string_var

[in][out]  Chaîne de caractères pour laquelle la taille est à changer.

new_capacity

[in]  Taille du buffer souhaitée. Si la taille new_capacity est inférieure à la longueur de la chaîne, la taille du buffer actuel n'est pas changée.

Valeur de Retour

En cas d'exécution avec succès, retourne true, sinon false. Pour obtenir le code d'erreur, il faut appeler la fonction GetLastError().

Note

De façon générale, la taille de la chaîne de caractères n'est pas égale à la taille du buffer prévu pour stocker la chaîne. Lors de la création d'une chaîne, le buffer correspondant est habituellement alloué avec une marge. La fonction StringReserve() permet de gérer la taille du buffer et de spécifier la taille optimale pour des opérations futures.

Contrairement à StringInit(), la fonction StringReserve() ne change pas le contenu de la chaîne de caractères et ne la remplit pas avec des caractères.

Exemple:

void OnStart()
  {
   string s;
//--- vérifie la vitesse d'opération sans utiliser StringReserve
   ulong t0=GetMicrosecondCount();
   for(int i=0; i< 1024; i++)
      s+=" "+(string)i;
   ulong msc_no_reserve=GetMicrosecondCount()-t0;
   s=NULL;
//--- effectuons la même opération avec StringReserve
   StringReserve(s,1024 * 3);
   t0=GetMicrosecondCount();
   for(int i=0; i< 1024; i++)
      s+=" "+(string)i;
   ulong msc_reserve=GetMicrosecondCount()-t0;
//--- vérification du temps
   Print("Test avec StringReserve effectué en "+(string)msc_reserve+" ms");   
   Print("Test sans StringReserve effectué en "+(string)msc_no_reserve+" ms");         
/* Résultat :
    Test avec StringReserve effectué en 50 ms
    Test sans StringReserve effectué en 121 ms
*/
  }

Voir également

StringBufferLen, StringSetLength, StringInit, StringSetCharacter