Motor de texto en basic.

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Avatar de Usuario
derdhal77
Aspirante a demonio
Aspirante a demonio
Mensajes: 216
Registrado: 22 Nov 2015, 05:54

Re: limitar espacio de escritura de caracteres

Mensaje por derdhal77 »

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
elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1825
Registrado: 01 Abr 2013, 22:00
Been thanked: 25 times

Re: limitar espacio de escritura de caracteres

Mensaje por elfoscuro »

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
jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1755
Registrado: 06 Sep 2013, 02:17
Has thanked: 3 times
Been thanked: 17 times
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan »

probablemente sea eso. como aumento el limite ?
Avatar de Usuario
jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1755
Registrado: 06 Sep 2013, 02:17
Has thanked: 3 times
Been thanked: 17 times
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan »

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
elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1825
Registrado: 01 Abr 2013, 22:00
Been thanked: 25 times

Re: Motor de texto en basic.

Mensaje por elfoscuro »

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
jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1755
Registrado: 06 Sep 2013, 02:17
Has thanked: 3 times
Been thanked: 17 times
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan »

aqui te dejo el codigo:
Imagen
Avatar de Usuario
elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1825
Registrado: 01 Abr 2013, 22:00
Been thanked: 25 times

Re: Motor de texto en basic.

Mensaje por elfoscuro »

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
javu61 !Sinclair QL
Fundador
Fundador
Mensajes: 2175
Registrado: 30 Mar 2013, 11:58
Ubicación: Valencia
Been thanked: 76 times
Contactar:

Re: Motor de texto en basic.

Mensaje por javu61 »

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
jordigahan
Demonio segundo orden
Demonio segundo orden
Mensajes: 1755
Registrado: 06 Sep 2013, 02:17
Has thanked: 3 times
Been thanked: 17 times
Contactar:

Re: Motor de texto en basic.

Mensaje por jordigahan »

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
javu61 !Sinclair QL
Fundador
Fundador
Mensajes: 2175
Registrado: 30 Mar 2013, 11:58
Ubicación: Valencia
Been thanked: 76 times
Contactar:

Re: Motor de texto en basic.

Mensaje por javu61 »

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

Volver a “Proyectos de software abiertos”