Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Los resultados de la ejecución muestran que el compilador actúa de forma contraria a la lógica:
Para una cadena constante pura, el tamaño del buffer por StringBufferlen=0, lo que significa que la cadena es constante:
Reasignar una cadena "supuestamente" constante no es trabajar con una constante, sino crear exactamente una variable dinámica con una preasignación de 260 caracteres:
Para una cadena constante pura, el tamaño del buffer por StringBufferlen=0, lo que significa que la cadena es constante:
Reasignar una cadena "supuestamente" constante no es trabajar con una constante, es crear una variable dinámica con una preasignación de 260 caracteres:
es el momento de introducir los asignadores )))
Un recordatorio de que hay un error con el buffer de cadenas:
La función de la DLL puede ser cualquier cosa.Sugiero añadir una versión extendida de la funciónStringToTime a MQL en el formulario:
Porque en la versión actual la función siempre devuelve la hora válida, aunque la cadena contenga basura, y se devuelve la fecha actual, lo cual es particularmente extraño:
StringToTime("aaabbbccc") devuelve "2019.09.05 01:00:00" ¿Es esto normal? En esta implementación, la función es peligrosa para la salud en absoluto, por lo que se necesita una versión con comprobaciones de corrección.
Hasta ahora tenemos que parsear con nuestra propia función,pero el problema es que la hora puede ser especificada en diferentes formatos.Y realmente no quiero codificar todos esos formatos reinventando la rueda cuando el tiempo ya ha sido implementado en MQL.
Básicamente, esto también se aplica a otras funciones de conversión de cadenas: StringToInteger, StringToDouble. No se proporciona ninguna comprobación de validez para ellos también.
p.d. Resulta queGetLastError() genera errores en estos casos. No lo sabía. La documentación de estas funciones no dice nada de eso. Eso elimina el problema, aunque sería más fácil con un bool.Apoyo la sugerencia de Alexey, el manejo seguro de las cadenas es clave para evitar errores ocultos.
error "la propiedad ya existe con un valor diferente y será omitida".
Lo usé por primera vez. Ningún otro archivo lo tiene. No depende del valor. Construye 2136.
Por favor, traiga de vuelta el viejo estilo de styler.
Ahora no puedo averiguar qué se supone que se ejecuta aquí:
Esta pieza solía tener este aspecto:
error "la propiedad ya existe con un valor diferente y será omitida".
Lo usé por primera vez. Ningún otro archivo lo tiene. No depende del valor. Construye 2136.
Este error se produce al trabajar con proyectos si el valor de la propiedad especificada en el código fuente entra en conflicto con el valor de la configuración del proyecto.
Propiedades del proyecto
Por favor, traiga de vuelta el viejo estilo de styler.
Ahora no puedo averiguar qué se supone que se ejecuta aquí:
Esta pieza solía tener este aspecto:
Los ifs anidados múltiples no pueden ser guardados por ninguna alineación. Tenemos que cambiar el código para que sea legible.
Los ifs anidados múltiples no pueden ser guardados por ninguna alineación. Hay que cambiar el código para que sea legible.
No hay anidación múltiple - el nivel superior es if, luego if else.
Pido el estilo antiguo, cuando si se parecía a esto:
- Estaba en una sola línea y no había desplazamiento del texto posterior hacia la derecha.
Este es un ejemplo de la ayuda de lasentencia condicional if-else (el antiguo styler)
y esto es lo que hace el nuevo estilista: