Questions d'un "mannequin - page 34

 

À propos de StringSplit : pourquoi ne puis-je pas utiliser un tableau statique ?

Exemple tiré de l'aide

string to_split="мама_мыла_раму"; // строка для разбивки на подстроки
   string sep="_";                // раздедитель в виде символа
   ushort u_sep;                  // код символа разделителя
   string result[3];               // массив для получения строк
   //--- получим код разделителя
   u_sep=StringGetCharacter(sep,0);
   //--- разобьем строку на подстроки
   int k=StringSplit(to_split,u_sep,result);
   //--- выведем комментарий 
   PrintFormat("Получено строк: %d. Использован разделитель '%s' с кодом %d",k,sep,u_sep);
   //--- теперь выведем все полученные строки
   if(k>0)
     {
      for(int i=0;i<k;i++)
        {
         PrintFormat("result[%d]=%s",i,result[i]);
        }
     }
Il fonctionne, mais il génère l'erreur 4007. Il semble qu'il devrait y avoir suffisamment de mémoire et qu'il ne soit pas nécessaire de modifier la taille... Je ne comprends pas.
 
Silent:

À propos de StringSplit : pourquoi ne puis-je pas utiliser un tableau statique ?

Exemple tiré du fichier d'aide

Il fonctionne, mais il génère l'erreur 4007. Il semble que la mémoire soit suffisante et qu'il n'y ait pas besoin de la redimensionner... Je ne comprends pas.
case 4007: error_string="Недостаточно памяти для перераспределения массива либо попытка изменения размера статического массива!";
L'aide dit-elle aussi "la mère a lavé le cadre" ? Si vous faites référence à un exemple de l'aide, donnez-nous également un lien vers cet exemple.
 
tol64:
Est-ce que l'aide dit aussi "maman a lavé le cadre" ? Si vous faites référence à un exemple de l'aide, donnez-nous également un lien vers cet exemple.

Vous n'allez pas le croire...

 
Silent:

Vous n'allez pas le croire...

There is no such thing as an array declared string result[3] ; There is an error in the link, because :

"Pas assez de mémoire pour redistribuer le tableau ou une tentative de redimensionner le tableau statique !"

 
tol64:
Il n'existe pas de tableau déclaré de chaînes de caractères résultat[3] ; Il y a une erreur.
J'ai demandé pourquoi, et mis en évidence où (changé).
 
Silent:
J'ai demandé - pourquoi, et souligné - où (changé).
Parce que vous avez déclaré le tableau comme étant statique - 3. Et la sous-chaîne qui en résulte comporte plus de 3 caractères.
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Silent:
J'ai demandé pourquoi, et mis en évidence où (changé).
Avec les tableaux statiques en général, il n'est pas évident de savoir quand et comment les appliquer. Il semble que je ne veuille pas laisser le compilateur à sa merci, et je ne veux pas rencontrer de tels problèmes - il semble fonctionner, mais il y a des erreurs.
 
tol64:
Parce que vous avez déclaré le tableau comme étant statique - 3. Et la sous-chaîne qui en résulte comporte plus de 3 caractères.
Static [3] correspond à 3 (sous-)chaînes de caractères, pas à 3 caractères, je croyais.
 
Silent:
Static [3] est 3 (sous-)lignes, pas 3 caractères, je pensais.

Oui, si vous enlevez jusqu'à 3 lettres

2011.07.28 00:43:55     StringSplit (EURUSD,H1) _LastError 1 4007
2011.07.28 00:43:55     StringSplit (EURUSD,H1) result[2]=рам
2011.07.28 00:43:55     StringSplit (EURUSD,H1) result[1]=мыл
2011.07.28 00:43:55     StringSplit (EURUSD,H1) result[0]=мам
2011.07.28 00:43:55     StringSplit (EURUSD,H1) Получено строк: 3. Использован разделитель '_' с кодом 95
ce n'est pas la question.
 
Silent:
Avec les tableaux statiques en général, il n'est pas évident de savoir quand et comment les appliquer. Il semble que je ne veuille pas laisser le compilateur à sa merci, et je ne veux pas rencontrer de tels problèmes - il semble fonctionner, mais il y a des erreurs.
Et vous essayez d'étudier telle ou telle matière quand vous en avez besoin. Dès que vous atteignez le point dans votre système où vous avez besoin de ces "leviers" (fonctions), commencez à les expérimenter. J'ai constaté que cette méthode d'apprentissage (dans mon cas) fonctionne assez bien.))