Seite 1 von 1

Structure in Procedure übergeben

Verfasst: 11.06.2012 18:51
von Joshua314
Hallo

ich versuche die Structure Twinkel bei der Procedure mit zu übergeben.
Ich bekomme da immer einen Fehler.
Was mache ich falsch ????

Gruß Thomas

Code: Alles auswählen



; 
;   
; ( Umrechnung von Geographischen Koordinaten in Gauss-Krueger-Koordinaten	)
; ( Formel: Grossmann.W., Geodätische Abbildungen. 1964, Seite 151	)
; { Parameter: geo.Breite (Grad.Min.Sek) in Altgrad : Twinkel	}
;   Geo.Laenge (Grad.Min.Sek) in Altgrad : Twinkel	)
;  Zielsystenummmer (Meridiankennziffer) : longint	)
;  Rechtswert (X) im Zielsystem	: double
;  Hochwert (Y) im Zielsystem	: double

Structure Twinkel
  grad.i
  min.i
  sek.i
EndStructure

eingabe.twinkel


Procedure GeoCk(br.Twinkel,la.Twinkel,sy.l,x.d,y.d)

#rho = 180 / #PI

Protected brDezimal.d,laDezimal.d,rin.d,e2.d,c.d,bf.d,g.d,co.d,g2.d,g1.d,t.d,dl.d,fa.d,grad.d,mi.d,sek.d 


e2 = 0.0067192188
c  = 6398786.849 
; {in Dezimal)
; (Breite)
brDezimal = br\grad + br\min / 60 + br\sek / 3600
;(Laenge)
laDezimal = la\grad + la\min /60 + la\sek / 3600;
bf = brDezimal / rho
g = 111120.61962 * brDezimal -15988.63853 * Sin(Radian(2*bf)) +16.72995 * Sin(Radian(4*bf)) -0.02178 * Sin(Radian(6*bf)) +0.00003 * Sin(Radian(8*bf))
co = Cos(Radian(bF))
g2 = e2 * (co * co)
gl = c / sqrt(l+g2)
t = Sin(Radian(bf))/ Cos(Radian(b1)); =Tan(t)
dl = laDezimal - sy * 3
fa = co * dl / rho
y=g+(fa^2*t*g1 /2) +(fa^4*t*g1*(5 -t*t+9*g2)/ 24)
rm = (fa * g1) + (fa^3 * g1 * (1 - t * t + g2) / 6) + (fa^5 * g1 * (5 - 18 * t^6) / 120)
x = rm + (sy * 1000000) + 500000
EndProcedure


Re: Wo ist der Fehler

Verfasst: 11.06.2012 19:07
von ts-soft
Structure kann nur als pointer übergeben werden:

Code: Alles auswählen


;
;   
; ( Umrechnung von Geographischen Koordinaten in Gauss-Krueger-Koordinaten   )
; ( Formel: Grossmann.W., Geodätische Abbildungen. 1964, Seite 151   )
; { Parameter: geo.Breite (Grad.Min.Sek) in Altgrad : Twinkel   }
;   Geo.Laenge (Grad.Min.Sek) in Altgrad : Twinkel   )
;  Zielsystenummmer (Meridiankennziffer) : longint   )
;  Rechtswert (X) im Zielsystem   : double
;  Hochwert (Y) im Zielsystem   : double

Structure Twinkel
  grad.i
  min.i
  sek.i
EndStructure

eingabe.twinkel


Procedure GeoCk(*br.Twinkel, *la.Twinkel,sy.l,x.d,y.d)

#rho = 180 / #PI

Protected brDezimal.d,laDezimal.d,rin.d,e2.d,c.d,bf.d,g.d,co.d,g2.d,g1.d,t.d,dl.d,fa.d,grad.d,mi.d,sek.d


e2 = 0.0067192188
c  = 6398786.849
; {in Dezimal)
; (Breite)
brDezimal = *br\grad + *br\min / 60 + *br\sek / 3600
;(Laenge)
laDezimal = *la\grad + *la\min /60 + *la\sek / 3600;
bf = brDezimal / rho
g = 111120.61962 * brDezimal -15988.63853 * Sin(Radian(2*bf)) +16.72995 * Sin(Radian(4*bf)) -0.02178 * Sin(Radian(6*bf)) +0.00003 * Sin(Radian(8*bf))
co = Cos(Radian(bF))
g2 = e2 * (co * co)
gl = c / sqrt(l+g2)
t = Sin(Radian(bf))/ Cos(Radian(b1)); =Tan(t)
dl = laDezimal - sy * 3
fa = co * dl / rho
y=g+(fa^2*t*g1 /2) +(fa^4*t*g1*(5 -t*t+9*g2)/ 24)
rm = (fa * g1) + (fa^3 * g1 * (1 - t * t + g2) / 6) + (fa^5 * g1 * (5 - 18 * t^6) / 120)
x = rm + (sy * 1000000) + 500000
EndProcedure

Es sind noch mehr Fehler vorhanden, aber die Überlasse ich Dir, weil solchen Code ohne EnableExplicit rühre ich
eigentlich niemals an :wink:

Gruß
Thomas

Re: Wo ist der Fehler

Verfasst: 11.06.2012 19:11
von Joshua314
ts-soft hat geschrieben:Structure kann nur als pointer übergeben werden:
Es sind noch mehr Fehler vorhanden, aber die Überlasse ich Dir, weil solchen Code ohne EnableExplicit rühre ich
eigentlich niemals an :wink:

Gruß
Thomas


Dank dir Thomas ....
Wollte eben nur den Fehler wissen .,....

den Rest mach ich jetzt fertig....

Gruß Thomas