confusión sobre el comportamiento de las variables - página 5

 
Hay problemas con las líneas, eso es un hecho. Es extraño que nadie se ocupe de ellos. Oh, no, no lo es. Sólo falta un mes para la transición.
 

Gracias por el reconocimiento MetaDriver y TheExpert, estoy harto de demostrar que algo está mal cuando otros sólo leen entre líneas y dan comentarios inapropiados.

Esperaba informar correctamente del error aquí en el foro, pero algunos se sienten obligados a dar una respuesta sin entrar en lo que se trata

 
wlad:

Este es un ejemplo para comparar el comportamiento de las cadenas y los ints

y la salida al registro:

1. carga de EA e inicio de variables globales

2. transferencia de variables externas a variables globales. transferencia única implementada mediante bool firsttime

3. cambio de variables externas

4. la diferencia se puede ver aquí.

tempString toma el valor de ValueString - erróneo

tempInt mantiene su valor aunque ValueInt haya cambiado - correcto

5 y 6 similares a 3 y 4


por favor, explique por qué la cadena se comporta de manera diferente

mientras que el Int es correcto

por favor, dame respuestas concretas.


Creo que entiendo cuál es el problema... Si ha cambiado manualmente los parámetros durante las pruebas en las propiedades de EA, se guardarán en algún lugar de los archivos .tpl e incluso la recompilación de EA no ayudará. Sólo el botón "Reset" ayudará. Si es un error o no, no lo sé...
 
Resulta que si cambias algo en el código, el extern se queda de la versión anterior, anterior. Y sólo el restablecimiento de los parámetros de EA ayuda. ¿Es un error o no? .... una vez más repito..... no lo sé......
 
wlad:

Gracias por el reconocimiento MetaDriver y TheExpert, estoy harto de demostrar que algo está mal cuando otros sólo leen entre líneas y dan comentarios inapropiados.

Esperaba informar correctamente del error aquí en el foro, pero algunos se sienten obligados a dar una respuesta sin entrar en lo que se trata


deberías formular las preguntas correctamente, no has dicho nada de que sea un problema de los probadores
 

¡este no es el problema del probador!

1. el EA se ejecuta en modo de funcionamiento normal en el gráfico, ¡no en el probador!

No he mencionado ni una palabra sobre el probador, ¡no sé de dónde has sacado eso!

2. ¡Los parámetros externos cambian durante la ejecución!

3. el problema surge después con una variable global de tipo cadena, que toma por error el valor

de una variable externa cuando ésta cambia.

 
wlad:

¡no es problema del probador!

1. el experto se ejecuta en modo de funcionamiento normal en el gráfico, ¡no en el probador!

no he mencionado ni una palabra sobre el probador, ¡no sé de dónde has sacado eso!

2. los parámetros externos cambian durante el tiempo de ejecución

3. el problema se produce después con una variable global de tipo cadena, que toma por error un valor

variable externa cuando esta última se modifica.


Curioso. ¿Podría publicar el código completo de TestInit2?
 

Maldita sea, tal vez soy tonto.... ¡Pero está funcionando correctamente! ....Incluso con el registro que me has dado...

En el primer tic tempString y tempInt se modifican y se envían al registro. Ya desde el segundo tick no se cambia nada, sólo se imprime. Poner huellas y comentarios antes del si. Y verás la diferencia.

 
valenok2003:

Curioso. ¿Podría publicar el código de TestInit2 en su totalidad?

los tres ejemplos dados están completamente contabilizados

el código se ha simplificado al mínimo

 
Sepulca:

Maldita sea, tal vez soy tonto.... ¡Pero está funcionando correctamente! ....Incluso con el registro que me has dado...

En el primer tic tempString y tempInt se modifican y se envían al registro. Ya desde el segundo tick no se cambia nada, sólo se imprime. Poner huellas y comentarios antes del si. Y verás la diferencia.

Realmente no se lee todo.

He señalado que el problema es evidente cuando se cambian las variables externas.

Lea atentamente el ejemplo.


los primeros ejemplos con iniit imprimían sólo lo necesario para localizar el error, yo sólo lo convertí para llamar a

de start() porque mucha gente se confundía con init()