ERLEDERITZT :Restore vor erstem read bringt unsinnige Werte

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

ERLEDERITZT :Restore vor erstem read bringt unsinnige Werte

Beitrag von Captn. Jinguji »

Ok, es heisst "REstore", aber dennoch müsste doch möglich sein,
nach z.B. einer Fallunterscheidung - oder eben "plain", wie unten -ein label per

Code: Alles auswählen

restore label 
anzusteuern, ohne dass vor dem restore überhaupt ein ausgeführt werden muss?

Code: Alles auswählen

OpenConsole()
Restore gaga:
For i = 1 To 4
Read a
PrintN(Str(a))
Next
Delay(1000)

gaga:
DataSection 
Data.l 1,2,3,4,6
EndDataSection 
ergibt

4200
2484224
6815744
-402653184

... und zwar zuverlässig....

So GANZ richtig ist das doch nicht, woll ?
Zuletzt geändert von Captn. Jinguji am 04.05.2007 18:01, insgesamt 1-mal geändert.
Ist das Kunst hier, oder kann das weg ?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Liegt aber am falschen Code :wink:

Code: Alles auswählen

OpenConsole()
Restore gaga:
For i = 1 To 4
  Read a
  PrintN(Str(a))
Next
Delay(1000)

DataSection
  gaga:
  Data.l 1,2,3,4,6
EndDataSection
Wenn der Label auf eine Datasection zeigt, gehört er selbstverständlich
dort hinein, der Code der Datasection erscheint ja nicht dort wo er im
Source steht, sondern in einer DataSection.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag von Captn. Jinguji »

Hmmm ja, danke, Thomas.
Habe mich wohl von andren BasicDialects beeinflussen lassen,in denen das anders ist. Werde nächstens die Hilfe akribisch lesen...

Allerdings hätte ich unter den Umständen eher einen "Out of Data" Error erwartet, wenn das label falsch steht.

Naja. unter PB ist es halt so,wie es ist!
Ist das Kunst hier, oder kann das weg ?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Allerdings hätte ich unter den Umständen eher einen "Out of Data" Error erwartet
Was soll das sein, es stehen doch Daten, im gesamtem virtuellem Speicher
Deines Programmes. Solche Meldungen kommt nur von
Interpreter-Sprachen, die keine echten Label verwenden. Auf solche
Einschränkungen kann ich gut verzichten :mrgreen:
Die Labels von PB sind ja für alles Speicherbereiche brauchbar, was bei
Sprachen, die solche Fehlermeldungen rausgeben eben nicht ist.

Einsteigerfreundlichkeit von PB soll ja nicht bedeuten, das es auch
eingeschränkt wird wie eine "Babysprache", was bei einigen anderen
Basic-Dialekten der Fall ist.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten