Página 5 de 6

Re: Motor de texto en basic.

Publicado: 13 Mar 2019, 15:45
por jordigahan
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.

Re: Motor de texto en basic.

Publicado: 14 Mar 2019, 01:18
por javu61
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

Re: Motor de texto en basic.

Publicado: 15 Mar 2019, 04:16
por jordigahan
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... :(

Re: Motor de texto en basic.

Publicado: 15 Mar 2019, 09:25
por wilco2009
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

Re: Motor de texto en basic.

Publicado: 15 Mar 2019, 13:40
por javu61
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

Re: Motor de texto en basic.

Publicado: 16 Mar 2019, 00:21
por jordigahan
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.

Re: Motor de texto en basic.

Publicado: 20 Mar 2019, 18:13
por jordigahan
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 ?

Re: Motor de texto en basic.

Publicado: 20 Mar 2019, 20:53
por elfoscuro
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.

Re: Motor de texto en basic.

Publicado: 21 Mar 2019, 00:48
por jordigahan
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...

Re: Motor de texto en basic.

Publicado: 22 Mar 2019, 00:06
por otivax
Puedes hacerlo con PAUSE 0, INKEY$ y PRINT AT
En la página 1 de este hilo tienes más o menos como hacerlo.