Errores, fallos, preguntas - página 3011
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
Porque el cuarto parámetro
Necesito copiar los 3 primeros caracteres. Si quisiera copiar toda la cadena (7 caracteres incluyendo el 0 final), especificaría -1. Y si una parte no se puede copiar, ¿para qué necesito este parámetro?
Este parámetro no sirve para especificar cuántos caracteres se quieren copiar, como la subcadena
, sino para especificar cuántos caracteres se pasan al array.
, es decir, es una comprobación de seguridad estricta, tipo C, del tamaño de los datos que se pasan.
Este tamaño asignará automáticamente la memoria para el array dinámico.
Si quieres copiar tres elementos de una cadena, tienes que obtenerlos primero de la cadena,
, y luego pasarlos, especificando el tamaño tanto como pases.
Este parámetro no sirve para especificar cuántos caracteres se quieren copiar, como la subcadena
, sino para especificar cuántos caracteres se pasan a la matriz.
es decir, es una comprobación de seguridad estricta del tamaño de los datos que se pasan.
Este tamaño asignará automáticamente la memoria para el array dinámico.
Si necesitas copiar tres elementos de una cadena, tienes que obtenerlos primero de la cadena,
, y luego tienes que pasarlos, especificando el tamaño tanto como pases.
¿Te refieres a esto?
Quiero decir, ¿no?
Más uno como el tamaño del cero de terminación.
StringLen devuelve el tamaño sin incluir el cero.
Más uno como el tamaño del cero de terminación.
StringLen devuelve el tamaño sin tener en cuenta el cero.
He dado un ejemplo de los desarrolladores y funciona
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bibliotecas: Biblioteca de funciones hash y conversiones
Ilyas, 2021.03.04 15:12
La función StringToArray captura la terminación cero si no se especifica la longitud de la cadena (históricamente)
Por lo tanto, en la función CryptDecodeA debe utilizar
en lugar de
StringToCharArray(InputText,scr);
He puesto un ejemplo de los desarrolladores y funciona.
El uso de las bibliotecas no estaba previsto en esta pregunta))
.
Más uno como el tamaño del cero de terminación.
StringLen devuelve el tamaño sin tener en cuenta el cero.
¿Es StringToCharArray tan incapaz de recuperar la longitud de la cadena a partir de una cadena (especialmente porque no es necesario calcularla en MQL) que se necesita ayuda externa en forma de parámetro adicional? ¿Y por qué otras funciones MQL no tienen una"comprobación C" tan supuestamente estricta?
¿Es StringToCharArray tan incapaz de extraer la longitud de la cadena a partir del tipo de cadena (especialmente porque no necesita ser calculada en MQL) que se requiere ayuda externa en forma de un parámetro adicional? ¿Y por qué otras funciones MQL no tienen una comprobación tan supuestamente estricta?
Probablemente no sea una pregunta para mí, sino para los desarrolladores.
Pero este parámetro se utiliza para asignar el tamaño de la memoria de un array dinámico.
En otras palabras, es una forma conveniente de evitar la asignación de memoria para el array por ti mismo.
Además, podemos comprobar si es correcto.
El parámetro de tamaño adicional es una práctica estándar de seguridad rigurosa en sys.
En otras funciones en las que no se requiere el tamaño, este parámetro está ausente.
Normalmente este parámetro se utiliza cuando se trabaja con arrays para asignar memoria.
Esto es lo que ocurre en este caso.
Probablemente no sea una pregunta para mí, sino para los desarrolladores.
Pero este parámetro se utiliza para asignar memoria a un array dinámico.
Significa que le conviene no asignar la memoria del array por sí mismo.
Además, obtendremos una comprobación de la corrección.
¿Y en qué consiste la comprobación de la corrección? - Supongamos que, por ejemplo, escribo 0, un valor deliberadamente incorrecto.
Y todo se copia correctamente y el resultado: 7 - sin error
¿Cuál es la comprobación de la corrección? - Entonces, digamos que lo pongo a 0, que es un valor incorrecto conocido.
Y todo se ha copiado correctamente. Resultado: 7 - sin error
El truco está en la descripción de la función ))
progreso automático ))
lo que confunde más al usuario.
Este parámetro no sirve para especificar cuántos caracteres se quieren copiar como subcadena
sino para especificar cuántos caracteres se pasan a la matriz.
help no está de acuerdo con esta interpretación.
El número de elementos del array a copiar. Define la longitud de la cadena de resultados. El valor por defecto es -1, lo que significa que se copiará hasta el final del array, o el terminal 0. El terminal 0 también se copiará en el array de destino, y el tamaño del array dinámico se puede aumentar para que coincida con el tamaño de la cadena si es necesario. Si el tamaño de la matriz dinámica es mayor que la longitud de la cadena, el tamaño de la matriz no se reducirá.
La descripción, por supuesto, es atas - la cadena es referida como un array, el array como una cadena, la confusión
Número de elementos del array (cadena) a copiar. Especifica la longitud de la cadena resultante (array). Por defecto es -1, lo que significa copiar al final del array (cadena), o encontrarse con el terminal 0.