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 escobajavu61 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.
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
- derdhal77
- Aspirante a demonio
- Mensajes: 216
- Registrado: 22 Nov 2015, 05:54
Re: limitar espacio de escritura de caracteres
- elfoscuro
- Demonio segundo orden
- Mensajes: 1831
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: limitar espacio de escritura de caracteres
Javu, es que tú ya está casi jubilado abueletederdhal77 escribió: ↑08 Mar 2019, 05:36Ostras, 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 escobajavu61 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.
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
- jordigahan
- Demonio segundo orden
- Mensajes: 1759
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
- 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.
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
- elfoscuro
- Demonio segundo orden
- Mensajes: 1831
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: Motor de texto en basic.
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
- jordigahan
- Demonio segundo orden
- Mensajes: 1759
- Registrado: 06 Sep 2013, 02:17
- Has thanked: 3 times
- Been thanked: 17 times
- Contactar:
- elfoscuro
- Demonio segundo orden
- Mensajes: 1831
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: Motor de texto en basic.
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.
Revisa esa parte. Ahí ya tienes un buen problema a resolver.
Un saludo.
Fin de impresión
- javu61
- Fundador
- Mensajes: 2175
- Registrado: 30 Mar 2013, 11:58
- Ubicación: Valencia
- Been thanked: 76 times
- Contactar:
Re: Motor de texto en basic.
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 \\//_
- 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.
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.
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.
- javu61
- Fundador
- Mensajes: 2175
- Registrado: 30 Mar 2013, 11:58
- Ubicación: Valencia
- Been thanked: 76 times
- Contactar:
Re: Motor de texto en basic.
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.
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 \\//_