Seite 1 von 2

Constanten defines array

Verfasst: 28. Juni 2021, 13:57
von Werner_Bayern
Servus,

Folgendes geht nicht:

Code: Alles auswählen

info(["test1", "test2"][1])
Hätte es mit CONSTANT versucht, geht aber offensichtlich nicht mit arrays? Man muss also in so einem Falle eine Array-Variable definieren?

Re: Constanten defines array

Verfasst: 29. Juni 2021, 11:32
von Herbert
Ich verstehe nichts...

Re: Constanten defines array

Verfasst: 29. Juni 2021, 12:02
von Werner_Bayern
Schon klar, nach der Leistung der Schweizer gestern ;-)
Der Hammer, Respekt!

Zum Thema: Ich bräuchte keine Variable, es würde reichen, die Werte direkt in den Code zu schreiben.

Re: Constanten defines array

Verfasst: 29. Juni 2021, 14:34
von satmax
Ich verstehe als Österreicher auch nicht was du willst... Wäre sicher hilfreich wenn uns du erklären würdest worum es geht.

INFO() erwartet einen String und gibt eine Meldung am Bildschirm aus: Info("Hello" + User_Name, "Welcome!")

Re: Constanten defines array

Verfasst: 29. Juni 2021, 22:59
von Werner_Bayern
ok, hab mich ungenau ausgedrückt: Ich benötige eine Constante - siehe Betreff. Es muss also nicht eine Variable sein, sondern lediglich eine Constante. In Xbase++ würde ich das einfach so schreiben, wie oben beschrieben. In Windev geht das offensichtlich nicht, dafür gäbe es aber die Anweisung "Constant"? Damit geht es aber auch nicht, da ich ein Array benötige - siehe Beispiel oben.
In Xbase++ müsste ich nicht mal ein #define verwenden, sondern könnte es so wie oben gezeigt schreiben. Ist das in Windev auch möglich?

PS: Das Spiel Österreich - Italien war auch der Hammer, Österreich so stark wie nie!

Re: Constanten defines array

Verfasst: 19. Juli 2021, 00:10
von Werner_Bayern
Servus,

also gibts sowas in Windev nicht?

Re: Constanten defines array

Verfasst: 19. Juli 2021, 06:11
von satmax
Also ich habe noch immer keine Ahnung was du willst. Eine genau Anforderung oder ein Beispiel könnte da helfen...

Oder meinst du einfach so was in der Art:

Code: Alles auswählen

{sTable + "." + sField} = {dsMySource + "." + sField} 
oder so:

Code: Alles auswählen

sResControl = EnumControl({sControl}, i)
oder so:

Code: Alles auswählen

IF NOT TmEmpty(sDBField) _AND_ NOT TmEmpty({sResControl + "..DisplayedValue"}) THEN	
	// neu angelegter Eintrag in der Combobox
	{sDBField} = {sResControl + "..DisplayedValue"}
	// Names des Controls sowie das Query im Array merken
	sTemp = sResControl + TAB + {sResControl + ".BrowsedFile"}
	TmAppClass.m_arrCombobox.Add(sTemp)
END

Re: Constanten defines array

Verfasst: 20. Juli 2021, 01:09
von Werner_Bayern
Servus Satmax,

danke. Also nein, Indirektion meine ich hier nicht. Siehe meine Eingangs-Post. Ich bräuchte ein statisches Array, also keine Variable:

["test1", "test2"]

Im Programmcode würde ich dann schreiben:

Code: Alles auswählen

procedure irgendwas(nEintrag)
result ["test1", "test2"][nEintrag]
Es geht hier nicht um Controls!

Re: Constanten defines array

Verfasst: 20. Juli 2021, 08:20
von Herbert
Werner, ich verstehe weiterhin nicht.
Indirection geht auch auf Variablen, Elemente und vieles mehr. Schau da unter der Rubrik Type:
https://help.windev.com/en-US/?1512005& ... l_and_item

Re: Constanten defines array

Verfasst: 26. Juli 2021, 15:56
von Werner_Bayern
Servus Herbert,

danke, aber es geht mir nicht um Indirection - siehe Betreff. Ich möchte eine Constante verwenden, anstatt einer Variable. Die Constante würde ein Array sein, siehe letztes Beispiel und meine 1. Post.

Re: Constanten defines array

Verfasst: 27. Juli 2021, 16:21
von Herbert
Lieber Werner
Es ist für mich nicht möglich, zu entziffern, was du wirklich mit diesen "Konstanten" machen willst. Eine Konstante lässt sich ja wie eine Variable bahandeln. Ich verstand aus deinem Posting, dass du ev. die Indirection nur auf Controls bezogen kennst.
Da ich weiterhin nicht begreife, was genau vorhast, wäre ich um detailliertere Erklärung erefreut.
Gruss Herbert

Re: Constanten defines array

Verfasst: 6. August 2021, 13:48
von Werner_Bayern
Servus Herbert,

ihr versteht mich nicht, weil ihr mir nicht eine so einfache Frage zutraut ;-)

Code: Alles auswählen

info(irgendwas(2))

procedure irgendwas(nEintrag)
result ["test1", "test2"][nEintrag]
Sollte mir einfach das Info-Fenster mit dem Text "test2" ausgeben. Keine Controls, keine Indirection, kein Zugriff auf irgendwas.

Re: Constanten defines array

Verfasst: 12. August 2021, 19:34
von Herbert
Nicht leicht. Also, wenn ich den Titel lese, möchtest du ein Array zurückgeben, ohne dieses vorher definiert zu haben. Warum?
Das nEintrag kommt und geht... nein, ich verstehe wirklich nicht viel.
Anders gefragt: Was machst du mit dem Ergebnis danach weiter? Vielleicht verstehe ich dann so besser deine Gedanken.

Re: Constanten defines array

Verfasst: 16. August 2021, 00:45
von Werner_Bayern
Servus Herbert,

danke, dass Du nicht aufgibtst...

Da gibt es 1000 Beispiele... Z. B. Felddefinitionen eines SQL-Servers:

In Xbase++:

Code: Alles auswählen

#define ARTIKELFELDER {"artnr", "matchcode", "text1", "text", "warengruppe"}

confirmbox(, fieldget(ARTIKELFELDER[3]))

Re: Constanten defines array

Verfasst: 16. August 2021, 09:05
von satmax
Ohne viel nachzudenken könnte man es so machen:

Code: Alles auswählen

garrArtikelfelder is array of string
StringToArray("artnr"+CR+"matchcode"+CR+"text1"+CR+"text"+CR+"warengruppe", garrArtikelfelder)
// Oder alternativ:
// StringToArray("artnr, matchcode, text1, text, warengruppe", garrArtikelfelder,",")

Info(fieldGet(garrArtikelfelder,3))

...

PROCEDURE fieldGet(arrFields is array of strings,i is int)

IF i <= ArrayCount(arrFields) THEN
	RESULT(arrFields[i])
ELSE
	RESULT("")
END
Aber da gibt es sicher auch noch andere Möglichkeiten