Anmelden

View Full Version : Inhalt Variable Wert zuweisen



Seiten : 1 2 3 4 5 [6]

woodstock99
26-09-08, 09:16
ja aber wenn ich doch die recordaddresse hätte kann ich doch den offset der felder den ich über das api bekomm einfach draufzählen und dann nur einmal inzen.

folgender lösungsvorschlag.

xxxx likerec format


zeiger auf xxxx

inz (xxxx + offset)


ich bekomm doch dadurch die speicher adresse der felder oder versteh ich da was falsch??
wenn das funtioniert wär ich auch kompiler unabhängig...

danach sollen die felder ja sowieso vorbelegt werden..



falls das nicht funktioniert is schicht im schacht :)

Fuerchau
26-09-08, 09:59
Mittels likerec legst du eine DS an.
Hier ist jedoch das Problem, dass eine Variable nur in einer DS vorkommen darf !
Ausnahme: quailified.

Qualified-Strukturen müssen allerdings in den F-Bestimmungen mit Prefix angegeben werden, da sonst die automatische Zuordnung F-Feld zu DS-Feld nicht vorgenommen wird.
M.a.W:
Alle Felder, die über F-Bestimmungen automatisch deklariert werden, sind Single-Felder (S statt DS).
Definierst du eine DS mittels Likerec, übernimmt der Compiler diese Definition und unterläßt die Deklaration der S-Felder.

Ein Ein-/Ausgabebefehl verwendet die Felder, die durch F-Bestimmungen deklariert werden:
a) Single-Felder
b) DS-Felder ohne Qualified
c) Prefix-Felder für DS mit Qualified

Qualified hat halt den Nachteil, dass jedes Feld nur mittels "DsName.FeldName" angesprochen werden kann, was den Tippaufwand nicht unbeträchtlich erhöht und Erstfehler erzeugt.

Desweiteren musst du für deinen Init-Call den Aufruf dann je Satzformat (DS) machen !

Ob das die Programmierung nun erleichtert, wage ich zu bezweifeln.

PS:
Wenn du zusätzlich zu einer DSPF noch Namensgleichheit zu DISK und PRINTER innerhalb eines Programmes hast, verschärft sich das Ganze noch weiter.

woodstock99
26-09-08, 10:17
erst einmal danke dafür das du dich mit mir solange abgekämpft hast.
das mit den qualified usw ist mir bekannt. aber trotzdem danke dafür.

jetzt ist erst mal wochenende. evtl fällt mir ja noch was ein das ich ausprobieren kann :)......

E305GL
12-11-08, 15:00
bin zufällig auf dein problem gestossen: für felxible attributsetzung und/oder feldverarbeitung sind intern beschriebene Bildschirmdateien besser geeignet.
Unterscheide grundsätzlich ob die Attributsetzung für ein oder nur ausgabefelder wirksam sein soll. bei reinen ausgabefeldern kein problem, davor oder anstelle eines blanks den entsprechenden hexwert (z.B. X'20' grün, X'21' weiss, X'13zzss' Cursor). komplett ungebunden ist man mit dem freien 5250-datenstrom, während der ausführung können ohne kompilation sogar neue felder eingefügt oder die attribute wie feldlänge/feldposition verändert werden. E30 arbeitet nach diesem prinzip. Es wäre aber zu komplex über dieses forum diese techniken ausführlich abzuhandeln.