Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Reading DATA
#4
baltasarq Wrote:Hola,
> Sí se pueden leer cadenas con READ y DATA.
> Qué versión del compilador tienes? Este programa no debería compilarte. La instrución INPUT a, no está soportada como tal.
> Si quieres hacer una pausa usa PAUSE 0.
Pues funciona como uno se esperaría... pero vale, lo cambio por un pause 0.
Code:
$ ./zxbc.sh --version

zxbc.py 1.17.3

La versión es la última que encontré en Github...

> Igualmente en las nuevas versiones, los DATA han de definirse fuera de las funciones y SUBs.
Oh, con lo recogidito que queda así... :-P
Me descargo la beta, y te cuento.
Gracias,

Hola,
Me salen muchos warnings de funciones que no se usan de la librería estándar. ¿Esto es normal?
-- Baltasar

Vale, probada la nueva versión.
Code:
$ ./zxbc.sh --version
zxbc.py v1.18.0-beta4
Hasta donde veo, fuciona bien, pero... ahora se me queda atascado tras leer el cuarto byte de las conexiones, las salidas, de la primera loc.
He cambiado el código fuente:
Code:
' Locs
' (c) 2022/25 Reveni Baltasar MIT License <baltasarq@gmail.com>
const NumLocs as ubyte = 2
'enum Exits
    const ExitNorth as ubyte = 0
    const ExitSouth as ubyte = 1
    const ExitEast as ubyte = 2
    const ExitWest as ubyte = 3
    const ExitUp as ubyte = 4
    const ExitDown as ubyte = 5
    const NumExits as ubyte = 6
'end enum
dim locDescs(NumLocs) as string
dim locExits(NumLocs, NumExits) as integer
sub init_locs()
    'locDescs( 0 ) = "El lugar del alunizaje. La vaina abierta y sin  " _
    '   + "contenido parece una triste parodia de ella misma. " _
    '   + "Un valle natural conduce al sur."
    'locDescs( 1 ) = "El lugar del alunizaje. La vaina abierta y sin  " _
    '   + "contenido parece una triste parodia de ella misma. " _
    '   + "Un valle natural conduce al sur."
   
    restore LocData
   
    for i = 0 to NumLocs - 1
        print "numloc i:", i
       
        ' Read the desc
        read locDescs( i )
        print "read numloc i: "; i; locDescs( i )
               
        ' Read the exits
        for j = 0 to NumExits - 1
            print "numloc i:"; i; " exit "; j
            read locExits(i, j)
            print "numloc i:"; i; " exit "; j; " = "; locExits(i, j)
            pause 0
        next
    next
end sub
LocData:
    ' Loc 0 - Landing
    data "El lugar del alunizaje. La vaina abierta y sin  " _
      + "contenido parece una triste parodia de ella misma. " _
      + "Un valle natural conduce al sur."
    data -1, 1, -1, -1, -1, -1
   
    ' Loc 1 - Valley
    data "El lugar del alunizaje. La vaina abierta y sin  " _
      + "contenido parece una triste parodia de ella misma. " _
      + "Un valle natural conduce al sur."
    data 0, -1, -1, -1, -1, -1

¿Me he metido en un jardín con lo de los DATA? ¿Es mejor asignarlos "normal", y punto?
¿Es posible inicializar a -1 un vector con locExits, sin recorrer a un bucle for?
Gracias,

No, está bien Smile
Es simplemente que el DATA del BASIC de ZX Spectrum es muy potente (permite incluso expresiones como DATA x * x + SQRT(x ^3), y cosas así.
Todo eso está soportado, solo que no está muy probado y por eso ahora eres el primer tester que lo prueba a fondo. :-)

Si es inicializar un vector o matriz numérico, se puede hacer directamente, pero recuerda que aquí el DIM es una declaración, no una "instanciación". Es decir, DIM, independientemente de la posición donde se ponga, se hace al principio de la ejecución del programa una sola vez.

Para crear un array numérico inicializado (no funciona con cadenas por el momento), es con la sintaxis:
Code:
DIM a(5) as Uinteger => {0, 1, 2, 3, 4, 5}

Admite múltiples dimensiones, anidando llaves. Aquí tienes más información (al final de la página): https://zxbasic.readthedocs.io/en/docs/d...clarations

Y lo dicho, los arrays inicializados se inicializan una vez. Si necesitas inicializarlos repetidamente, has de usar READ y DATA :-)
---
Boriel
Reply


Messages In This Thread
Reading DATA - by baltasarq - 11-20-2024, 08:25 PM
RE: Reading DATA - by boriel - 11-20-2024, 09:53 PM
RE: Reading DATA - by baltasarq - 11-21-2024, 07:25 AM
RE: Reading DATA - by boriel - 11-21-2024, 10:49 AM
RE: Reading DATA - by boriel - 11-22-2024, 09:36 PM

Forum Jump:


Users browsing this thread: 2 Guest(s)