Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.alt.folklore.computer > #44632

Re: 60 Jahre BASIC

From ram@zedat.fu-berlin.de (Stefan Ram)
Newsgroups de.alt.folklore.computer
Subject Re: 60 Jahre BASIC
Date 2024-05-09 14:37 +0000
Organization Stefan Ram
Message-ID <READ-20240509152606@ram.dialup.fu-berlin.de> (permalink)
References (1 earlier) <v1ftkc$pc2$1@solani.org> <BASIC-20240508142441@ram.dialup.fu-berlin.de> <BASIC-20240508150340@ram.dialup.fu-berlin.de> <v1i460$iorb$1@dont-email.me> <v1ikjn$2cf0$1@solani.org>

Show all headers | View raw


Sebastian Barthel <naitsabes@freenet.de> schrieb oder zitierte:
>Das mit den DATA Zeilen geht prinzipiell aber auch woanders so ähnlich. 
>In C lassen sich Variablen, auch Arrays, direkt vorbelegen. Das ist so 
>von der Benutzung her ziemlich nahe an den BASIC DATA-READ Statements, 
>wie so meistens benutzt worden sind. Was damit nur bedingt geht, ist das 
>umbelegen mit RESTORE.

  Allerdings kann man in BASIC verschiedene Datentypen in einer
  "DATA"-Anweisung mischen. Selbst in Python kann man nicht alle
  Eigenschaften von DATA, READ und RESTORE genau nachbilden, aber
  hier ein Versuch, wenigstens einige Eigenschaften nachzubilden:

  main.py

class OUT_OF_DATA( StopIteration ):
    pass

def INIT():
    global _data_list
    global _data_pos
    try:
        _data_list
    except NameError:
        _data_list = []
    try:
        _data_pos
    except NameError:
        _data_pos = iter( _data_list )

def RESTORE():
    global _data_pos
    INIT()
    _data_pos = iter( _data_list )

def DATA( *args ):
    global _data_list
    INIT()
    _data_list += args
    RESTORE()

def READ():
    INIT()
    try:
        return next( _data_pos )
    except StopIteration:
        pass
    raise OUT_OF_DATA

DATA( 10, "OK" )
DATA( 2.5 )

print( READ() )
print( READ() )
RESTORE()
print( READ() )
print( READ() )
print( READ() )
print( READ() )

  Ausgabe (Fehlermeldung gekürzt)

10
OK
10
OK
2.5
OUT_OF_DATA

Back to de.alt.folklore.computer | Previous | Next | Find similar | Unroll thread


csiph-web