Globales Array

Anfängerfragen zum Programmieren mit PureBasic.
Rossi64
Beiträge: 9
Registriert: 01.12.2008 21:17

Globales Array

Beitrag von Rossi64 »

Moin Leute,
ich komme mit einer an sich einfachen Sache nicht klar. Folgendes lässt sich nicht übersetzen:

Code: Alles auswählen

EnableExplicit
Dim test.s(3)

Procedure Hallo()
  Shared test
  test(0) = "bla"
EndProcedure

Purebasic hat Version 4.31
Die Meldung lautet "Bei EnableExplicit müssen Variablen deklariert werden: test"

Natürlich habe ich schon einige Variationen versucht, auch mit "Global", es hilft aber nichts. Ein entsprechendes Beispiel aus dem Handbuch lässt sich ebenso nicht übersetzen - sonderbar. Ohne Array geht's
Kennt jemand den Kniff?

Uli
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Globales Array

Beitrag von Kiffi »

PB-Hilfe hat geschrieben:

Code: Alles auswählen

 Global Dim Array(2)
  
  Procedure Change()
    Debug Array(0)  ; wird 10 sein, da das Array global ist
  EndProcedure
  
  Array(0) = 10
  Change()
Grüße ... Kiffi
a²+b²=mc²
Rossi64
Beiträge: 9
Registriert: 01.12.2008 21:17

Beitrag von Rossi64 »

Danke, das funktioniert!

D.h. "Shared" kann nicht mit Arrays benutzt werden. Hier muss "Global" her.
Wozu gibt es dann überhaupt "Shared", wenn es nicht für alle Datentypen anwendbar ist?
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Bin mir jetzt nicht sicher, aber hätte man dann nicht "Shared test()" schreiben müssen.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

NicTheQuick hat geschrieben:Bin mir jetzt nicht sicher, aber hätte man dann nicht "Shared test()" schreiben müssen.
japp. Das hat RSBasic auch in dem nun gelöschten Posting vor meinem
geschrieben.

Grüße ... Kiffi
a²+b²=mc²
Rossi64
Beiträge: 9
Registriert: 01.12.2008 21:17

Beitrag von Rossi64 »

In der Tat!
Mit Shared test() geht es auch.
Danke vielmals!
Antworten