nummerierte Variablen erzeugen [erledigt]

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

nummerierte Variablen erzeugen [erledigt]

Beitrag von clag »

Hallo Leutz,

in einer Schleife möchte ich pro Durchgang eine neue Variable erzeugen mit der Zahl des Zählers als Namensteil
zB so

Code: Alles auswählen

  
 For i = 0 to oDocGraphics.count - 1
		gfkurl_ & i = oDocGraphics.GetbyIndex(i).GraphicURL
   Next

msgbox _
gfkurl_1 & chr(13) & _
gfkurl_2 & chr(13) & _
gfkurl_3 & chr(13) & _
gfkurl_4 & chr(13) & _
gfkurl_5 & chr(13) & _
gfkurl_6 & chr(13) & _
gfkurl_7 & chr(13) & _
gfkurl_8 & chr(13) & _
"ende "
um anschließend alle Werte auf einmal auszugeben

allerdings nimmt mir Basic diesen

Code: Alles auswählen

gfk_url_ & i
Versuch übel und meckert über "unerwartetes Zeichen"

wie könnte ich sonst durchnummerierte Variablen erzeugen ?
Zuletzt geändert von clag am Mo, 13.09.2010 08:27, insgesamt 1-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: nummerierte Variablen erzeugen

Beitrag von Karolus »

Hallo
Man kann keine Variablennamen per Verkettung erzeugen, auch nicht in anderen Programmiersprachen.

Du möchtest:

Code: Alles auswählen

dim aMessage( oDocGraphics.count )

For i = 0 to oDocGraphics.count - 1
      aMessage( i ) = oDocGraphics.GetbyIndex( i ).GraphicURL
Next

aMessage( oDocGraphics.count ) = "Ende"

msgbox join( aMessage() , chr(13))
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: nummerierte Variablen erzeugen

Beitrag von clag »

Hallo Karo,

ja wenn das so ist, dann eben nicht :(

für die reine Anzeige bzw das auflisten hatte ich mir schon so etwas ähnliches wie du es vorschlägst
zusammen gebastelt und in die Schleife eingebaut

Code: Alles auswählen

For i = 0 to oDocGraphics.count - 1
  grfk_url = oDocGraphics.GetbyIndex(i).GraphicURL
  namelist = namelist & "Grafik " & i & " = " & grfk_url & "  <" & chr(13)
next
MsgBox namelist
was dann nach ende der Schleife alles gemeinsam angezeigt

troztdem Danke
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: nummerierte Variablen erzeugen [erledigt]

Beitrag von Stephan »

Hinweis:
Man kann keine Variablennamen per Verkettung erzeugen
Naja, man würde es wohl nicht tun, weil es nicht besonders sinnvoll ist, gehen ansich sollte es mit etwas Umweg hingegen schon, da man zur Laufzeit eines Makros auch neue Module/Makros erstellen und starten kann und innerhalb dieser auch Variablen initialisieren.
Es ist einfach nur nötig zur Laufzeit ein neues Makro uzu erzeugen und innerhalb dessen Code die vorher erzeugten Variablennamen einzubauen, und diese Makros anschließend gleich zu starten. Bei Michael gibts Hinweise dazu wie man Makros zur Laufzeit erzeugt:
http://www.starbasicfaq.de/WiekannmanMo ... chen..html

In anderen Programmiersprachen ist sowas ebenfalls möglich da man beispielsweise Dateien mit Code zur Laufzeit einbinden kann und anschließend ausführen, bei z.B. Webprogrammierung und Inline-Skripten ist das weit verbreitet, geht aber auch bei eher 'klassischen' Programmiersprachen (wobei ich ein Beispiel hier einmal schuldig bleibe, denn ich müßte erst einmal suchen, da man solche Art der Programmmierung ja nicht jeden Tag macht).




Gruß
Stephan
Antworten