Motor de texto en basic.

Moderador: Fundadores

Avatar de Usuario
derdhal77
El infierno es su lugar
El infierno es su lugar
Mensajes: 184
Registrado: 22 Nov 2015, 05:54
Agradecimiento recibido: 3 veces
Contactar:

Re: limitar espacio de escritura de caracteres

Mensaje por derdhal77 » 08 Mar 2019, 05:36

javu61 escribió:
07 Mar 2019, 14:20

Yo os gano, usaba Cobol a finales de los 70 en un Mainframe Univac 1100, en terminales con un editor de textos muy espartano en los que contabas espacios para empezar a escribir, pero mejoraba usando tarjetas perforadas ya que podías establecer las paradas de tabulación. También hice cositas en Fortan y en ALGOL en aquella máquina. Luego pasé a los minis con Basic, variables con una letra o una letra y un número únicamente, había que ser muy ordenado para no perderse con las variables y era demasiado sencillo hacer código espagueti si no eras cuidadoso, y siempre contando el ahorro de cada bit pues la memoria era muy limitada, 64Kb para el sistema operativo, un puesto de trabajo en batch y dos terminales en demanda, con un disco de 5Mb en una máquina que costaba 25.000.000 de pesetas de hace 40 años, lo mejor es que funcionaba muy bien y trabajaba rápido, no como ahora que necesitas un procesador de la leche para escribir un hola mundo y que luego tarde 1 minuto entre que arranca, carga librería y cosas de esas.
Ostras, FORTRAN, yo también lo use cuando estudiaba también use lenguaje ensamblador, PASCAL y QBASIC... que tiempos aquellos, el trabajo de fin de curso de QBASIC fue un arkanoid y el de PASCAL fue el juego de cartas de la escoba

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

Re: limitar espacio de escritura de caracteres

Mensaje por elfoscuro » 08 Mar 2019, 22:30

derdhal77 escribió:
08 Mar 2019, 05:36
javu61 escribió:
07 Mar 2019, 14:20

Yo os gano, usaba Cobol a finales de los 70 en un Mainframe Univac 1100, en terminales con un editor de textos muy espartano en los que contabas espacios para empezar a escribir, pero mejoraba usando tarjetas perforadas ya que podías establecer las paradas de tabulación. También hice cositas en Fortan y en ALGOL en aquella máquina. Luego pasé a los minis con Basic, variables con una letra o una letra y un número únicamente, había que ser muy ordenado para no perderse con las variables y era demasiado sencillo hacer código espagueti si no eras cuidadoso, y siempre contando el ahorro de cada bit pues la memoria era muy limitada, 64Kb para el sistema operativo, un puesto de trabajo en batch y dos terminales en demanda, con un disco de 5Mb en una máquina que costaba 25.000.000 de pesetas de hace 40 años, lo mejor es que funcionaba muy bien y trabajaba rápido, no como ahora que necesitas un procesador de la leche para escribir un hola mundo y que luego tarde 1 minuto entre que arranca, carga librería y cosas de esas.
Ostras, FORTRAN, yo también lo use cuando estudiaba también use lenguaje ensamblador, PASCAL y QBASIC... que tiempos aquellos, el trabajo de fin de curso de QBASIC fue un arkanoid y el de PASCAL fue el juego de cartas de la escoba
Javu, es que tú ya está casi jubilado abuelete ;-)

Fortran no lo he tocado, la verdad. COBOL y Pascal era lo mio. Pascal siempre me encantó y luego Delphi también. Eso si... los objetos se me atragantaron al principio. Menudo cambio de visión fue aquello.

@Jordi, creo que tienes algún problema con los bucles. Debes estar intentando llegar más allá del final de la cadena de texto (LEN a$).

Un saludo.
Fin de impresión

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

Re: Motor de texto en basic.

Mensaje por jordigahan » 09 Mar 2019, 17:00

probablemente sea eso. como aumento el limite ?

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

Re: Motor de texto en basic.

Mensaje por jordigahan » 10 Mar 2019, 03:21

he encontrado este codigo que tambien parece hacer lo mismo, pero no se cmo hacerlo para que me respete los limites.
10 GOTO 1000
20 REM las rutinas que llames mucho van más rápido si las pones al principio
30 FOR I = 1 TO LEN(A$):PRINT A$(I);:PAUSE 10:NEXT I:PRINT:RETURN
1000 LET A$="ESTE MENSAJE APARECERA LETRA POR LETRA":GOSUB 30
1010 LET A$="ESTE MENSAJE TAMBIEN APARECERA LETRA POR LETRA":GOSUB 30
1020 LET A$="HOLA MAMAAAA":GOSUB 30

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

Re: Motor de texto en basic.

Mensaje por elfoscuro » 10 Mar 2019, 10:02

jordigahan escribió:
09 Mar 2019, 17:00
probablemente sea eso. como aumento el limite ?
No tienes que aumentar el límite, si no calcularlo bien. Supongo que con poner un "-1" en después del valor del TO en uno de los FOR, lo resolverás. Sin ver el código que tienes, no te puedo decir mucho más. Pero el problema es que si tu cadena tiene 10 caracteres, tu rutina piensa que tiene 11.

En cuanto al código que has puesto, si, imprime letra a letra, pero en toda la pantalla, y eso no es lo que quieres.

Un saludo.
Fin de impresión

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

Re: Motor de texto en basic.

Mensaje por jordigahan » 10 Mar 2019, 21:00

aqui te dejo el codigo:
Imagen

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

Re: Motor de texto en basic.

Mensaje por elfoscuro » 10 Mar 2019, 22:48

Así, a bote pronto, la 1520 está mal. Estás asumiendo que al menos habrá 23 caracteres (si a=0, entonces quedaría FOR c=1 to 23, y si a$<23 entonces dará error).

Revisa esa parte. Ahí ya tienes un buen problema a resolver.

Un saludo.
Fin de impresión

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

Re: Motor de texto en basic.

Mensaje por javu61 » 12 Mar 2019, 00:37

Este programa hace lo que quieres, no está muy optimizado pero funciona bien, y hace un pequeño efecto para borrar la zona de la pantalla donde se imprime si ocupa mas de lo que cabe en la zona definida para presentar el texto.
► Mostrar Spoiler
Larga vida y prosperidad \\//_

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

Re: Motor de texto en basic.

Mensaje por jordigahan » 13 Mar 2019, 01:59

gracias por el aporte javu, pero tu codigo es extremadamente largo !!!!
he encontrado estoq ue parece que hace lo mismo, solo faltaria añadir lo de que cambien de linea automaticamente si no cabe la palabra.

Imagen

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

Re: Motor de texto en basic.

Mensaje por javu61 » 13 Mar 2019, 13:02

Ese trozo comienza e imprimir donde esté el cursor, y cuando llega al final de la línea salta a la siguiente siempre, si llegas la final de la pantalla se produce un scrool y sigue imprimiendo.

La diferencia es que mi código imprime un recuadro donde ubicar el texto, y luego imrpime una cadena que se le pase en a$, en una zona de pantalla definida entre las líneas L1 y L2, y las columnas C1 y C2, imprime el texto letra a letra pero cuando llega a la última columna que le indiques y pasa a la siguiente línea, corta el texto por palabras completas y no parte palabras entre líneas. Cuando llena todas las líneas que le has dicho espera una tecla y luego borra la zona y sigue escribiendo desde el inicio de la zona indicada.

Puedo hacerlo mas sencillo si no imprime el reborde alrededor del texto, puedo simplificar el borrado, pero poco mas si quieres imprimir textos de longitud variable correctamente, te lo voy a simplificar al máximo en cuanto tenga un rato, pero le deberás pasar al menos 5 parámetros: L1, L2, C1, C2, a$ que son respectivamente la primera y última línea en que quieres que se imprima, la primera y última columna de la pantalla donde queires que se imprima, y el texto a imprimir.
Larga vida y prosperidad \\//_

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados