Habe Frage zu 'Struct'

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
gambasso
Foriker
Beiträge: 1115
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Habe Frage zu 'Struct'

Beitrag von gambasso » Do 14. Jan 2021, 18:04

moin, und allen ein gesundes neues Jahr!

Ich möchte mir mit 'Struct' den Aufwand verringern, deshab meine Frage: ist folgendes möglich?

Ein 'Struct' Array möchte ich den 'Feldnamen' beim Auslesen mit einem String bestimmen.

z.B.: gambas code
Public Struct As Adresse
	Name As Variant
	VName As Variant
	Ort As Variant
	Strasse As Variant
End Struct
Public Heim As Adresse[]

Beim Auslesen in einer Sub:
gambas code
Dim hi1, hi2, hi3 As Variant
	hi1 = "VName"
	hi2 = Heim[xx]. < hi1>  '      so, daß der VName kommt  ??
	hi1 = "Ort"
	hi3 = Heim[xx]. < hi1>  '      so, daß der Ort kommt	?? 
Habe ich nicht geschafft. Ist so was irgendwie möglich?
Gruss

Benutzeravatar
cogier
Foriker
Beiträge: 57
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: Habe Frage zu 'Struct'

Beitrag von cogier » Sa 16. Jan 2021, 16:41

Ich schlage vor, dass Sie eine 'Klasse' verwenden. Sehen Sie sich das beigefügte Programm an.
TestNew-0.0.2.tar.gz
(11.84 KiB) 15-mal heruntergeladen

vuott
Foriker
Beiträge: 111
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Habe Frage zu 'Struct'

Beitrag von vuott » So 17. Jan 2021, 01:26

gambasso hat geschrieben:
Do 14. Jan 2021, 18:04
ist folgendes möglich?

Ein 'Struct' Array möchte ich den 'Feldnamen' beim Auslesen mit einem String bestimmen.
Entschuldige, willst du die Namen der Struct-Mitglieder erhalten ?
In praeterita spectando dolenter subfero.

Nachtreiter
Foriker
Beiträge: 5
Registriert: Di 22. Okt 2019, 21:15
Kontaktdaten:

Re: Habe Frage zu 'Struct'

Beitrag von Nachtreiter » Sa 23. Jan 2021, 19:49

Hallo gambasso,

möglicherweise beantwortet dieses Beispiel Deine Frage: gambas code
' Gambas module file

Public Struct Adresse
    Name As Variant
    VName As Variant
    Ort As Variant
    Strasse As Variant
End Struct

Public a As New Adresse

Public Sub Main()

  Dim Feld As String = "Ort"
  
  With a
    .Name = "Mustermann"
    .VName = "Max"
    .Ort = "irgendwo"
    .Strasse = "Hohlweg"
  End With

  Print Eval("Main.a." & Feld)

End
Die Eval()-Funktion ist eine eierlegende Wollmilchsau. 8-)

Viele Grüße
Nachtreiter

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast