Motor de texto en basic.
Moderador: Fundadores
Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
- alvaroalea
- Demonio segundo orden
- Mensajes: 1092
- Registrado: 25 Oct 2014, 12:49
- Ubicación: Asturias, Paraiso Natural
- Has thanked: 14 times
- Been thanked: 52 times
- Contactar:
Re: limitar espacio de escritura de caracteres
A mí me va, ojo a la línea 50.
Enviado desde mi Mi MIX 2S mediante Tapatalk
Enviado desde mi Mi MIX 2S mediante Tapatalk
-
- El infierno es su lugar
- Mensajes: 161
- Registrado: 01 Nov 2015, 18:35
- elfoscuro
- Demonio segundo orden
- Mensajes: 1831
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: limitar espacio de escritura de caracteres
Quita mi "-1" de la línea 20 y funcionará igual. Por eso decía que revisarais los límites de los bucles, porque no tenía claro cuando pararíaalvaroalea escribió: ↑01 Mar 2019, 12:36 A mí me va, ojo a la línea 50.
Enviado desde mi Mi MIX 2S mediante Tapatalk
Parece que hace una iteración menos de las necesarias.
Un saludo.
Edito: no, es necesaria la línea 50, si no da error de intentar llegar más allá del final de la cadena.
Fin de impresión
- jordigahan
- Demonio segundo orden
- Mensajes: 1762
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
Re: limitar espacio de escritura de caracteres
y ya seria la leche si podeis hacer algo para que si el texto es demasiado largo se pare y cuando presiones una tecla se borre lo anterior y continue en el punto inicial. y meterle un retardo para que el texto salga mas despacio y no de golpe.
- derdhal77
- Aspirante a demonio
- Mensajes: 216
- Registrado: 22 Nov 2015, 05:54
Re: limitar espacio de escritura de caracteres
Con permiso de Alvaroalea, espero que no le moleste, lo modifico a ver si te vale esto:
Cada 50 que le sumes al pause de la línea 70 es 1 segundo mas que tarda en escribir cada línea
y el numero de líneas a imprimir por pantalla lo puedes cambiar cambiando el valor de la variable b del if de la línea 60
Cada 50 que le sumes al pause de la línea 70 es 1 segundo mas que tarda en escribir cada línea
y el numero de líneas a imprimir por pantalla lo puedes cambiar cambiando el valor de la variable b del if de la línea 60
- elfoscuro
- Demonio segundo orden
- Mensajes: 1831
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: limitar espacio de escritura de caracteres
Varias cosas a este listado, Jordi:derdhal77 escribió: ↑02 Mar 2019, 07:27 Con permiso de Alvaroalea, espero que no le moleste, lo modifico a ver si te vale esto:
Cada 50 que le sumes al pause de la línea 70 es 1 segundo mas que tarda en escribir cada línea
y el numero de líneas a imprimir por pantalla lo puedes cambiar cambiando el valor de la variable b del if de la línea 60
- Debes cambiar el CLS por un GO SUB a una rutina donde se borre "únicamente" el contenido de tu ventana, y no el resto de la pantalla.
- "b" está limitado a 4, es decir, cinco líneas en pantalla. Si vas a poner más, cambia los límites.
- Esta rutina escribe línea a línea. Si quieres letra a letra, deberías guardar el contenido de la línea en otra variable de cadena (b$ por ejemplo) y luego hacer un bucle que escriba letra a letra (for i=1 to len b$:print b$(i);:pause 5:next i <- fíjate en el ;: hay que poner los dos). Y quita el pause de la línea 70.
Por otro lado, si ya quieres rizar el rizo, puedes usar códgo máquina:
Por si no lo quieres teclear :
https://proyectobasiczx.wordpress.com/r ... 17/mh-203/
Un saludo.
Fin de impresión
- derdhal77
- Aspirante a demonio
- Mensajes: 216
- Registrado: 22 Nov 2015, 05:54
Re: limitar espacio de escritura de caracteres
Ojo, unas cosillas sobre esto:elfoscuro escribió: ↑02 Mar 2019, 10:17 - Debes cambiar el CLS por un GO SUB a una rutina donde se borre "únicamente" el contenido de tu ventana, y no el resto de la pantalla.
- "b" está limitado a 4, es decir, cinco líneas en pantalla. Si vas a poner más, cambia los límites.
- Esta rutina escribe línea a línea. Si quieres letra a letra, deberías guardar el contenido de la línea en otra variable de cadena (b$ por ejemplo) y luego hacer un bucle que escriba letra a letra (for i=1 to len b$:print b$(i);:pause 5:next i <- fíjate en el ;: hay que poner los dos). Y quita el pause de la línea 70.
- La rutina que puse no imprime 5 líneas por pantalla como comentas, imprime 4, imprime las líneas que le indiques a la variable b en la línea 90 de este nuevo listado o linea 60 del anterior.
- El bucle que has escrito para escribir letra a letra escribiría solo 1 letra por línea, ya que a cada print salta a la línea siguiente, habría que hacerlo con un PRINT AT línea,columna
Ademas creo que no seria necesario guardar el contenido de la línea en otra variable, metiéndolo en un bucle con el contenido de a$ pienso que seria suficiente
Seria algo asi, lo único que hay que pulir el print de la línea 110 ya que la ultima línea de la frase sale de golpe no letra a letra:
- elfoscuro
- Demonio segundo orden
- Mensajes: 1831
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: limitar espacio de escritura de caracteres
Es posible, siempre me lían los límites (por eso siempre digo que se revisen, porque los suelo poner por el método de ensayo y error XD XD
No, no es necesario. Si pones 'PRINT a:', si que lo haría pero si pones, como le he recalcado, 'PRINT a;:' se "guarda" la posición del cursor de impresión. El punto y coma marca la diferencia.
Esto se lo he puesto más que nada por no liar más los valores del "TO". Creo que queda más limpio, más didáctico. Está claro que todo se puede mejorar, pero en este caso he preferido hacerlo así por claridad de código.derdhal77 escribió: ↑02 Mar 2019, 17:24 Ademas creo que no seria necesario guardar el contenido de la línea en otra variable, metiéndolo en un bucle con el contenido de a$ pienso que seria suficiente
Seria algo asi, lo único que hay que pulir el print de la línea 110 ya que la ultima línea de la frase sale de golpe no letra a letra:
Un saludo.
Fin de impresión
- derdhal77
- Aspirante a demonio
- Mensajes: 216
- Registrado: 22 Nov 2015, 05:54
Re: limitar espacio de escritura de caracteres
Upssss. sorry!!! se me escapo el ; que pusiste, fallo mio!!!elfoscuro escribió: ↑02 Mar 2019, 22:25No, no es necesario. Si pones 'PRINT a:', si que lo haría pero si pones, como le he recalcado, 'PRINT a;:' se "guarda" la posición del cursor de impresión. El punto y coma marca la diferencia.
Esto se lo he puesto más que nada por no liar más los valores del "TO". Creo que queda más limpio, más didáctico. Está claro que todo se puede mejorar, pero en este caso he preferido hacerlo así por claridad de código.derdhal77 escribió: ↑02 Mar 2019, 17:24 Ademas creo que no seria necesario guardar el contenido de la línea en otra variable, metiéndolo en un bucle con el contenido de a$ pienso que seria suficiente
Seria algo asi, lo único que hay que pulir el print de la línea 110 ya que la ultima línea de la frase sale de golpe no letra a letra:
Un saludo.
La verdad que si que en programación se puede hacer las mismas cosas de 1000 formas diferentes, yo me dedico al cobol asi que imagínate, ultima tecnologia jejeje
Hacia que no tocaba el Basic siglos, la verdad que me divierte hacer cosillas de estas y recordar lenguajes que hacia mucho que no usaba.
He pulido el programa usando subrutinas y ya funciona todo bien sacando todo letra a letra:
- jordigahan
- Demonio segundo orden
- Mensajes: 1762
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
Re: limitar espacio de escritura de caracteres
gracias por todo, creo que con este codigo me puedo apañar.
ahora solo falta ajustarlo al o que voy ha hacer.
ahora solo falta ajustarlo al o que voy ha hacer.