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


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

Re: 60 Jahre BASIC

From Sebastian Barthel <naitsabes@freenet.de>
Newsgroups de.alt.folklore.computer
Subject Re: 60 Jahre BASIC
Date 2024-05-09 18:03 +0000
Message-ID <v1j35p$2cf0$3@solani.org> (permalink)
References (2 earlier) <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> <READ-20240509152606@ram.dialup.fu-berlin.de>

Show all headers | View raw


Am Thu, 09 May 2024 14:37:19 +0000 schrieb Stefan Ram:

> 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


OK. Das wird potentiell sogar funktionieren, aber es wird wohl niemand so 
machen. Viele wahrscheinlicher ist doch, daß man dann einfach Files 
anlegt und halt von da aus "einliest".

Das mit den gemischten Datentype in einer DATA Zeile ist aber ein guter 
Punkt und sicherlich auch öfters benutzt worden. Allerdings ist das dann 
genau sowas, wo ein BASIC eben ein BASIC ist und bei Undefiniertheiten 
dann auch mal schnell komische Fehler entstehen, etwa wenn jemand dann in 
den DATA Zeilen irgendwo mal ein Komma vergißt.

Was mir immer nicht so gefallen hat, war das "undefinierte" Ende. Soll 
heißen, es fehlten irgendwie sowas wie ein DATASTOP als Anweisung, die 
man mit in die DATA Zeilen schreibt. So muß man immer irgendwie mitzählen 
oder selbst einen "Endemarker" definieren, der dann auch wieder mal 
Probleme nach sich zieht. (z.B. -1, -1 oder 9999, 9999)

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


Thread

60 Jahre BASIC "F. W." <me@home.invalid> - 2024-05-06 15:14 +0200
  Re: 60 Jahre BASIC Sebastian Barthel <naitsabes@freenet.de> - 2024-05-08 13:10 +0000
    Re: 60 Jahre BASIC "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2024-05-08 21:38 +0200
      Re: 60 Jahre BASIC Arno Welzel <usenet@arnowelzel.de> - 2024-05-09 12:32 +0200
      Re: 60 Jahre BASIC Sebastian Barthel <naitsabes@freenet.de> - 2024-05-09 13:57 +0000
        Re: 60 Jahre BASIC Arno Welzel <usenet@arnowelzel.de> - 2024-05-09 17:45 +0200
          Re: 60 Jahre BASIC Sebastian Barthel <naitsabes@freenet.de> - 2024-05-09 18:06 +0000
        Re: 60 Jahre BASIC Arno Welzel <usenet@arnowelzel.de> - 2024-05-09 17:46 +0200
    Re: 60 Jahre BASIC Wolf gang P u f f e <remail@gmx.com> - 2024-05-09 11:14 +0200
      Re: 60 Jahre BASIC Sebastian Barthel <naitsabes@freenet.de> - 2024-05-09 13:55 +0000
        Re: 60 Jahre BASIC Sebastian Barthel <naitsabes@freenet.de> - 2024-05-09 18:03 +0000
    Re: 60 Jahre BASIC Thomas Koenig <tkoenig@netcologne.de> - 2024-05-09 14:05 +0000
  Re: 60 Jahre BASIC Hermann Riemann <nospam.ng@hermann-riemann.de> - 2024-05-08 16:31 +0200

csiph-web