Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.alt.folklore.computer > #44650
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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