Variabeln automatisch benennen

Anfängerfragen zum Programmieren mit PureBasic.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Variabeln automatisch benennen

Beitrag von Raphi »

Hallo ich möchte variabeln bis zu einem bistimmten wert automatisch benennen.
Ich habe gedach das geht einfach Mit:

Code: Alles auswählen

For x=1 to anzahl
s+Str(x)= d
next
Aber das geht so net.

Gibt es dafür eine Lösung?
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

Nimm ein Array dafür.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

Wäre nett wen mir jemand ein code beispiel geben könnte! :D
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

pb 4.51
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag von Pandorra »

ok,
ich hoffe das hilft dir:

Code: Alles auswählen


anzahl = 10
d = 4

Dim s(anzahl) ; Erschafft ein Array von 0-10

For x=0 To anzahl 
s(x) = d
Next

Debug s(0)
Debug s(1)
Debug s(4)

anzahl+1
ReDim s(anzahl); vergrößert das Array von 0-11

ich hab mal versucht, deine Variablen zu übernehmen.
Wenn du weitere Fragen hast oder es nicht verstehst frag einfach.


Edit: verdammt zu langsamm.
Benutze PB v 4.40 Beta 3
Benutzeravatar
AndyMars
Beiträge: 141
Registriert: 08.09.2004 11:59
Computerausstattung: Win11 Prof 64bit, i5-13500 @ 4.8 GHz, 32GB RAM, Nvidia RTX 4070 TI
Wohnort: Zürich, Schweiz
Kontaktdaten:

Beitrag von AndyMars »

Code: Alles auswählen

Dim Ary.l(10)

For i=0 To 10
	Ary(i)=d
Next
;mehr in der Hilfe unter Arrays, Listen & Strukturen 



;oder als Liste

Global NewList Lst.l()

For i=0 To 10
	AddElement(Lst())
	Lst()=d
Next

;mehr in der Hilfe unter LinkedList
PS: Phhh. Alle schneller wie ich... ^^

PS2: Unter http://www.purearea.net/pb/german/index.htm gibt es von NicTheQuick ein Tutorial (Felder & Linked Lists).
Grüsse von AndyMars
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

gnasen hat geschrieben:Hilfe kaputt?
http://www.purearea.net/pb/german/manua ... e/dim.html
+1
Wäre nett wen mir jemand ein code beispiel geben könnte!
Man Junge... Du machst Dir offenbar nicht mal die Mühe ein klitzekleines, beschissenes, einziges mal in die Hilfe zu gucken nachdem man Dir einen Hinweis gegeben hat, wo man nachgucken sollte. Stattdessen spammst gleich wieder hier rein.
Sorry, aber ist doch echt wahr.

Es gibt zu vielen Themenbereichen ganze, und vor allen Dingen, funktionsfähige Beispiele in der PB Hilfe. Da drückt man einfach F1 in der IDE, tippt dann in der Hilfe unter Index "Array" ein und doppelklickt dann auf den ersten gefundenen Eintrag darunter (der da heißt 'Array').

Und was erscheint dann auf der rechten Seite? Beispiele... so viel, daß man Durchfall davon bekommt. Mann ey!

Code: Alles auswählen

Beispiel: 

  Dim MyArray.l(41)
  MyArray(0) = 1
  MyArray(1) = 2

Beispiel: Mehrdimensionales Array

  Dim MultiArray.b(NbColumns, NbLines)
  MultiArray(10, 20) = 10
  MultiArray(20, 30) = 20

Beispiel: Array als Prozedur-Parameter

  Procedure fill(Array A.l(1), length)  ; die 1 gibt hier die Anzahl der Dimensionen im Array an.
    For i = 0 To length
      A(i) = i
    Next i
  EndProcedure
  
  Dim A.l(10)
  fill(A(), 10)  ; das Array A() wird hier als Parameter übergeben
  
  Debug A(5)
  Debug A(10)


Syntax
ReDim Name.<Typ>(<Ausdruck>, [<Ausdruck>], ...) 

Beschreibung

ReDim wird verwendet, um ein bereits deklariertes Array neu zu dimensionieren (d.h. in der Größe zu verändern, englisch 'resize'), während sein Inhalt erhalten bleibt. Die neue Größe kann kleiner oder größer sein, allerdings kann die Anzahl an Dimensionen nicht verändert werden. 

Wenn ReDim mit einem mehrdimensionalen Array verwendet wird, kann nur die letzte Dimension geändert werden. 
Beispiel: 

  Dim MyArray.l(1) ; Wir haben 2 Elemente
  MyArray(0) = 1
  MyArray(1) = 2
  
  ReDim MyArray(4) ; Jetzt möchten wir 5 Elemente
  MyArray(2) = 3
  
  For k = 0 To 2
    Debug MyArray(k)
  Next


Syntax
ArraySize(Array() [, Dimension]) 

Beschreibung

Gibt die Größe des Arrays zurück, wie diese mit Dim oder ReDim angegeben wurde. Für mehrdimensionale Arrays kann 'Dimension' angegeben werden, um eine bestimmte Dimensions-Größe zu erhalten. Die erste Dimension beginnt bei 1. 
Beispiel: 

  Dim MyArray.l(10)
  Debug ArraySize(MyArray()) ; wird '10' ausgeben

  Dim MultiArray.l(10, 20, 30)
  Debug ArraySize(MultiArray(), 2) ; wird '20' ausgeben
Was ist daran so schwer?
PB hat eine vorzügliche Hilfe, mit der fast alle Fragen geklärt werden können - und diese grundlegenden, trivialen Fragen, die Du stellst, können damit erst recht geklärt werden.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Pandorra hat geschrieben:Wenn du weitere Fragen hast oder es nicht verstehst frag einfach.
Das braucht man Raphi nicht extra zu sagen
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

Kurzer hat geschrieben: PB hat eine vorzügliche Hilfe, mit der fast alle Fragen geklärt werden können - und diese grundlegenden, trivialen Fragen, die Du stellst, können damit erst recht geklärt werden.
Tja aber leider versteh ich das meistens nicht ganz Z.B.

Bei IncludeBinary!

Das krieg ich irgendwie nicht hin

Code: Alles auswählen

DataSection
    IncludeBinary "Animation\SysInternalsBluescreen.scr"
EndDataSection


RunProgram("SysInternalsBluescreen.scr"," /s","C:")
Ich wollt ja die datei in die Exe packen so das sie von da abgefragt wird, aber RunProgram findet die Datei einfach nicht?

Aber auf jedenfall Danke für die Codes :allright:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Bild

es würde mich jetzt wirklich mal interessieren, wie alt du bist.
wenn das unter Welpenfreiheit fällt, wird es erträglicher.


zum aktuellen Punkt:
wenn du dir die Help zu RunProgram durchliest, steht da eindeutig, dass es um externe Programme geht,
dass ein Pfad/Verzeichnis angegeben werden muss, etc.
daraus kann man messerscharf schließen, dass sich das Programm auf der Platte befinden muss.


ich sage sowas ungern, und es wird auch oft als feindselig empfunden...
aber bist du dir sicher, dass du Programmieren willst?
willst du dir nicht lieber ein Hobby suchen, das wenigstens annähernd kompatibel mit deinem Weltbild ist?
Zuletzt geändert von Kaeru Gaman am 28.08.2009 17:20, insgesamt 2-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten