Motor de texto en basic.

Moderador: Fundadores

Avatar de Usuario
España jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1351
Registrado: 06 Sep 2013, 02:17
Agradecido : 6 veces
Agradecimiento recibido: 3 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan » 13 Mar 2019, 15:45

tengo diseñada una interface, asi que lo unico que necesito es poder imprimir texto en esa zona , y que si no cabe el texto cuando llegue al limite, salte automaticamente a la siguiente linea .
si llega al final del cuadro de texto, tiene que borrar las lineas y volver a empezar en la parte de arriva, nada de scroll.

Avatar de Usuario
España_Comunidad_Valenciana javu61
Fundador
Fundador
Mensajes: 2000
Registrado: 30 Mar 2013, 11:58
Ubicación: Valencia
Agradecido : 1 vez
Agradecimiento recibido: 22 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por javu61 » 14 Mar 2019, 01:18

A ver, le he quitado lo que no es imprescindible, las primeras líneas es para que veas como se utiliza, das valor a L1, L2, C1, C2 y a$, con ello llamas a la rutina en 2515. Si hubiese algo en esa zona de la pantalla antes debes llamar a la rutina en 2615 para limpiarla.
► Mostrar Spoiler
Y si lo quieres mas sencillo, pero menos bonito sin cortar por palabras completas sino donde caida, la rutina sería esta:
► Mostrar Spoiler
Larga vida y prosperidad \\//_

Avatar de Usuario
España jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1351
Registrado: 06 Sep 2013, 02:17
Agradecido : 6 veces
Agradecimiento recibido: 3 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan » 15 Mar 2019, 04:16

Imagen
este es el codigo que mejor me funciona, hace exactamente lo que necesito, pero cuando termina de imprimir siempre me marca error de subindice incorrecto en la linea 1570 sin importar lo largo o corto que sea el texto.

alguna forma de poder hacer copy/paste para ir probando los codigos y no tener que teclearlos... :(

Avatar de Usuario
España_Comunidad_Valenciana wilco2009
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 7545
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Agradecido : 19 veces
Agradecimiento recibido: 22 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por wilco2009 » 15 Mar 2019, 09:25

Cuando terminas el bucle que hay entre 1555 y 1565 c acaba valiendo uno más que len(a$), por lo que en 1570 te da error de subíndice.
Añade simplemente:
1568 return
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.

Avatar de Usuario
España_Comunidad_Valenciana javu61
Fundador
Fundador
Mensajes: 2000
Registrado: 30 Mar 2013, 11:58
Ubicación: Valencia
Agradecido : 1 vez
Agradecimiento recibido: 22 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por javu61 » 15 Mar 2019, 13:40

Tienes que añadir esto al inicio para llamar bien a la rutina

1501 GO SUB 1505
1502 STOP

El error que te da se resuelve añadiendo esta línea

1523 IF c > LEN a$ THEN RETURN

Pero para que borre bien la pantalla debes cambiar la línea 1540, dejándola así:

1540 IF b=15 THEN LET b=1: PRINT AT 7,28;"-": GO SUB 1586

y añadir estas otras

1586 IF INKEY$="" THEN GO TO 1586
1596 RETURN

Tu rutina lo que hace es imprimir entre la línea 1 y la 14, entre las columnas 1 y 23, el texto que le digas en a$ caracter a caracter, partiendo las líneas donde le toque, y cuando llega a la línea 15 espera una tecla, borra ese trozo de pantalla y vuelve a la 1 para seguir imprimiendo. En lo que yo te puse puedes elegir que líneas impirme y en que columnas, y corta por palabras.

Te pongo tu código completo
► Mostrar Spoiler
Larga vida y prosperidad \\//_

Avatar de Usuario
España jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1351
Registrado: 06 Sep 2013, 02:17
Agradecido : 6 veces
Agradecimiento recibido: 3 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan » 16 Mar 2019, 00:21

Imagen

ahora lo unico que falta es hacer que si la ultima palabra de la linea no cabe, la pase a la siguiente linea y continue con el texto.

Avatar de Usuario
España jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1351
Registrado: 06 Sep 2013, 02:17
Agradecido : 6 veces
Agradecimiento recibido: 3 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan » 20 Mar 2019, 18:13

Siguiendo un poco con el hilo, aunque cambiando de tema, necesitaria hacer un input, pero en cualquier lugar de la pantalla, parece ser que la solucion pasa por usar un poke, pero no tengo ni idea de como averiguarlo, alguna idea ?

Avatar de Usuario
España elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1576
Registrado: 01 Abr 2013, 22:00
Agradecimiento recibido: 3 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por elfoscuro » 20 Mar 2019, 20:53

jordigahan escribió:
20 Mar 2019, 18:13
Siguiendo un poco con el hilo, aunque cambiando de tema, necesitaria hacer un input, pero en cualquier lugar de la pantalla, parece ser que la solucion pasa por usar un poke, pero no tengo ni idea de como averiguarlo, alguna idea ?
Creo que no puedes hacer lo que quieres con INPUT, porque siempre sale en la parte baja de la pantalla (#1 creo recordar, pero vete a saber). El Poke que dices, sólo sirve si tienes la pantalla en blanco, porque lo que hace es agrandar esas dos líneas (23 y 24) para que "suban", por lo que se borra lo que haya en la pantalla "principal" (22 primeras líneas).

Para hacer lo que quieres, necesitas más código, y tienes que hacerte tu propio INPUT, a base de INKEY$. No te queda otra. En mis tiempos (lease con voz de viejo archivero) hice esa rutina, y permitía usar DELETE, cursores y demás. Pero vete a saber "ande andará".

Un saludo.
Fin de impresión

Avatar de Usuario
España jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1351
Registrado: 06 Sep 2013, 02:17
Agradecido : 6 veces
Agradecimiento recibido: 3 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan » 21 Mar 2019, 00:48

falsa alarma, al final creo que he encontrado otra forma de hacerlo menos complicada.
de todas formas, no sabia que eso fuera tan complicado de hacer...

Avatar de Usuario
España otivax
Aspirante a demonio
Aspirante a demonio
Mensajes: 419
Registrado: 22 Ene 2015, 11:05
Ubicación: Alcoy
Agradecido : 3 veces
Agradecimiento recibido: 10 veces
Contactar:

Re: Motor de texto en basic.

Mensaje por otivax » 22 Mar 2019, 00:06

Puedes hacerlo con PAUSE 0, INKEY$ y PRINT AT
En la página 1 de este hilo tienes más o menos como hacerlo.

Responder

¿Quién está conectado?

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