Motor de texto en basic.

Moderador: Fundadores

Avatar de Usuario
España_Asturias alvaroalea
Demonio tercer orden
Demonio tercer orden
Mensajes: 685
Registrado: 25 Oct 2014, 12:49
Ubicación: Asturias, Paraiso Natural
Has thanked: 3 times
Been thanked: 12 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por alvaroalea » 01 Mar 2019, 12:36

A mí me va, ojo a la línea 50.
Imagen

Enviado desde mi Mi MIX 2S mediante Tapatalk

Radiosity
El infierno es su lugar
El infierno es su lugar
Mensajes: 162
Registrado: 01 Nov 2015, 18:35
Has thanked: 4 times
Been thanked: 4 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por Radiosity » 01 Mar 2019, 13:27

Este que pones ahora si que funka bien si.

Avatar de Usuario
España elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1623
Registrado: 01 Abr 2013, 22:00
Been thanked: 24 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por elfoscuro » 01 Mar 2019, 22:19

alvaroalea escribió:
01 Mar 2019, 12:36
A mí me va, ojo a la línea 50.
Imagen

Enviado desde mi Mi MIX 2S mediante Tapatalk
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ía ;-)

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

Avatar de Usuario
España jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1413
Registrado: 06 Sep 2013, 02:17
Has thanked: 7 times
Been thanked: 5 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por jordigahan » 02 Mar 2019, 00:39

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.

Avatar de Usuario
derdhal77
El infierno es su lugar
El infierno es su lugar
Mensajes: 193
Registrado: 22 Nov 2015, 05:54
Been thanked: 5 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por derdhal77 » 02 Mar 2019, 07:27

Con permiso de Alvaroalea, espero que no le moleste, lo modifico a ver si te vale esto:

Imagen

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

Avatar de Usuario
España elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1623
Registrado: 01 Abr 2013, 22:00
Been thanked: 24 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por elfoscuro » 02 Mar 2019, 10:17

derdhal77 escribió:
02 Mar 2019, 07:27
Con permiso de Alvaroalea, espero que no le moleste, lo modifico a ver si te vale esto:

Imagen

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
Varias cosas a este listado, Jordi:

- 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:

Imagen
Imagen

Por si no lo quieres teclear ;-) :

https://proyectobasiczx.wordpress.com/r ... 17/mh-203/

Un saludo.
Fin de impresión

Avatar de Usuario
derdhal77
El infierno es su lugar
El infierno es su lugar
Mensajes: 193
Registrado: 22 Nov 2015, 05:54
Been thanked: 5 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por derdhal77 » 02 Mar 2019, 17:24

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.
Ojo, unas cosillas sobre esto:

- 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:

Imagen

Avatar de Usuario
España elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1623
Registrado: 01 Abr 2013, 22:00
Been thanked: 24 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por elfoscuro » 02 Mar 2019, 22:25

derdhal77 escribió:
02 Mar 2019, 17:24
- 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.
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
derdhal77 escribió:
02 Mar 2019, 17:24
- 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
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.
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:
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.

Un saludo.
Fin de impresión

Avatar de Usuario
derdhal77
El infierno es su lugar
El infierno es su lugar
Mensajes: 193
Registrado: 22 Nov 2015, 05:54
Been thanked: 5 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por derdhal77 » 03 Mar 2019, 04:15

elfoscuro escribió:
02 Mar 2019, 22:25
derdhal77 escribió:
02 Mar 2019, 17:24
- 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
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.
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:
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.

Un saludo.
Upssss. sorry!!! se me escapo el ; que pusiste, fallo mio!!!
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:

Imagen

Avatar de Usuario
España jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1413
Registrado: 06 Sep 2013, 02:17
Has thanked: 7 times
Been thanked: 5 times
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por jordigahan » 03 Mar 2019, 09:15

gracias por todo, creo que con este codigo me puedo apañar.
ahora solo falta ajustarlo al o que voy ha hacer.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado