Preguntas de un "tonto" - página 263

 
Contender:

Pruebe a utilizar StringConcatenate() para "pegar" las cadenas

Sustituido por

StringConcatenate(nTL,"nTL_",IntegerToString(MathRand()));
no ayudó.
 
Silent:
Me devanaré los sesos una semana más. ¿Puede darme más detalles? (puede ser duro :))

¿Hay otra opción para un par de cientos de objetos con nombres únicos?

(Un grupo de objetos debe tener la misma parte de la cadena en el nombre, para eliminar el grupo).

Contador
 
TheXpert:

Bueno, lógicamente, si la función establece el último error, entonces al finalizar con éxito la función debería haber un valor de error cero o el valor descrito en la documentación. No hay otra manera.

Es decir, si la llamada fue exitosa y el error es distinto de cero, este caso debe ser descrito en la documentación.

Eso es lo que yo también pensaba, hasta que me convencieron de lo contrario. Escribí una solicitud a la SD, obtuve una respuesta como la de arriba :)
 
220Volt:

¿Está preocupado porque Get Last Errors imprime algo distinto a cero? Si es así, sólo debe pedir un error si la función informa de un fallo. Y no deberías pedir un error al final de la trama, podrías obtener un valor basura. Así es en MT4, tal vez sea diferente aquí.

Pseudocódigo:

El error debería ser borrado por ResetLastError(), pero si hay una asignación en curso, es equivalente.
 
Silent:

Mi recomendación: volver a hacer el Get LastError según el principio que he descrito anteriormente. Sólo entonces obtendrá el error que se produce, tal vez usted consigue algo más.

 
220Volt:
Yo también lo creía, hasta que me convencieron de lo contrario. Escribí una solicitud a la SD y obtuve la misma respuesta que arriba :)
Rebuznando.
 

El reinicio se realiza antes de la llamada.

El error está causado por la siguiente entrada

void  CreateTL(string name,datetime time1,double price1,datetime time2,double price2,bool ray_left,bool ray_right,color color_TL)
  {
//------------ nTL,nTLh,nTLl,nTLe
   nTL="nTL_"+IntegerToString(MathRand());
   nTLh="nTLh_"+IntegerToString(MathRand());
   nTLl="nTLl_"+IntegerToString(MathRand());
   nTLe="nTLe_"+IntegerToString(MathRand());
//------------
   ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2);
  };

No hay ningún error en esta variante

void  CreateTL(string name,datetime time1,double price1,datetime time2,double price2,bool ray_left,bool ray_right,color color_TL)
  {
//------------ nTL,nTLh,nTLl,nTLe
   //nTL="nTL_"+IntegerToString(MathRand());
   //nTLh="nTLh_"+IntegerToString(MathRand());
   //nTLl="nTLl_"+IntegerToString(MathRand());
   //nTLe="nTLe_"+IntegerToString(MathRand());
//------------
   ObjectCreate(0,nTL="nTL_"+IntegerToString(MathRand());,OBJ_TREND,0,time1,price1,time2,price2);
  };
 
zfs:
Contador
¿Qué diferencia hay? Los mismos números en una cadena.
 
Silent:
¿Qué diferencia hay? Son los mismos números en la línea.
No hay garantía de que los números no coincidan. Potencial de error.
 
zfs:
No hay garantía de que los números no coincidan. Posible error.

En primer lugar, no hay ninguna posibilidad (el código de Urain nunca ha fallado)

x=0;  MathSrand(x);
   for(i=0;i<MathRand();i++)MathRand();
   MathSrand((int)TimeLocal()*MathRand());

En segundo lugar, tengo un error (y ningún objeto creado) exactamente en la primera llamada.

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
Razón de la queja: