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
- jordigahan
- Demonio segundo orden
- Mensajes: 1759
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
Re: Motor de texto en basic.
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.
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.
- javu61
- Fundador
- Mensajes: 2175
- Registrado: 30 Mar 2013, 11:58
- Ubicación: Valencia
- Been thanked: 76 times
- Contactar:
Re: Motor de texto en basic.
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.
Y si lo quieres mas sencillo, pero menos bonito sin cortar por palabras completas sino donde caida, la rutina sería esta:
► Mostrar Spoiler
► Mostrar Spoiler
Larga vida y prosperidad \\//_
- jordigahan
- Demonio segundo orden
- Mensajes: 1759
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
Re: Motor de texto en basic.
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...
- wilco2009
- Hermano de Lucifer
- Mensajes: 8152
- Registrado: 01 Abr 2013, 23:47
- Ubicación: Valencia
- Has thanked: 47 times
- Been thanked: 101 times
Re: Motor de texto en basic.
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
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.
Douglas Adams. Guía del autoestopista galáctico.
- javu61
- Fundador
- Mensajes: 2175
- Registrado: 30 Mar 2013, 11:58
- Ubicación: Valencia
- Been thanked: 76 times
- Contactar:
Re: Motor de texto en basic.
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
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 \\//_
- jordigahan
- Demonio segundo orden
- Mensajes: 1759
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
Re: Motor de texto en basic.
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.
- jordigahan
- Demonio segundo orden
- Mensajes: 1759
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
Re: Motor de texto en basic.
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 ?
- elfoscuro
- Demonio segundo orden
- Mensajes: 1831
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: Motor de texto en basic.
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).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 ?
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
- jordigahan
- Demonio segundo orden
- Mensajes: 1759
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
Re: Motor de texto en basic.
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...
de todas formas, no sabia que eso fuera tan complicado de hacer...
- otivax
- Aspirante a demonio
- Mensajes: 425
- Registrado: 22 Ene 2015, 11:05
- Ubicación: Alcoy
- Been thanked: 1 time
Re: Motor de texto en basic.
Puedes hacerlo con PAUSE 0, INKEY$ y PRINT AT
En la página 1 de este hilo tienes más o menos como hacerlo.
En la página 1 de este hilo tienes más o menos como hacerlo.