Autor Beitrag
ADis
Hält's aus hier
Beiträge: 10

WinXP
D8 Ent
BeitragVerfasst: Do 15.04.04 11:41 
Hi,

Wie vielleicht schon mancher bemerkt hat gelten Pointer im .Net als veraltet(unsafe) und nicht mehr zulässig.
So nun nach der Frage der Alternative :?

Ich liefere hier mal ein D7 Beispiel:

Es sollen für eine 3 Dimensionale Kurvenberechnung einen Dynamischen Speicher pro datensatz reserviert werden. Um Ressourcen zu sparen und die Programmperfomance zu optimieren denke ich dass statische Speicherreservierung unsinnig ist, denn ich weiß nicht unbedingt wieviel Daten mir die Datenbank für eine bestimmte Kurve liefert.

ausblenden Delphi-Quelltext
1:
Pkt                   : array[0..10,0..10of ^real;					

Also hier die Deklarierung eines Kurvenpunktes der aus 11x11 Parameter zusammengesetzt wird.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
{Dynamische Speicherreservierung}
  For i := 1 to AnzahlPunkte_X do
     For j := 1 to AnzahlPunkte_Y do 
         New(Pkt[i,j]);


Hier kommen dann Berechnungen, Kurvenausgabe, bla, bla ....

ausblenden Delphi-Quelltext
1:
2:
3:
4:
{Dynamische Speicherfreigabe}
  For i := 1 to AnzahlPunkte_X do
     For j := 1 to AnzahlPunkte_Y do 
        Dispose(Pkt[i,j]);


Und natürlich muss der Speicher wieder freigegeben werden.


Wie meint Ihr soll nach .Net vorgegangen werden um effizient auf Speicher bzw. Dynamischen Variablen zuzugreifen und zu verarbeiten.

Thx 8)

Moderiert von user profile iconPeter Lustig (15.04.2004, 11:53): Code- durch Delphi-Tags ersetzt


Zuletzt bearbeitet von ADis am Mo 24.05.04 20:17, insgesamt 1-mal bearbeitet
mirage228
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 338

Win 7 Prof.
Delphi 2005 Prof., Delphi 2010 Prof.
BeitragVerfasst: Do 15.04.04 14:49 
ADis hat folgendes geschrieben:
Hi,

Wie vielleicht schon mancher bemerkt hat gelten Pointer im .Net als veraltet(unsafe) und nicht mehr zulässig.
So nun nach der Frage der Alternative :?

Ich liefere hier mal ein D7 Beispiel:

Es sollen für eine 3 Dimensionale Kurvenberechnung einen Dynamischen Speicher pro datensatz reserviert werden. Um Ressourcen zu sparen und die Programmperfomance zu optimieren denke ich dass statische Speicherreservierung unsinnig ist, denn ich weiß nicht unbedingt wieviel Daten mir die Datenbank für eine bestimmte Kurve liefert.

ausblenden Delphi-Quelltext
1:
Pkt                   : array[0..10,0..10of ^real;					

Also hier die Deklarierung eines Kurvenpunktes der aus 11x11 Parameter zusammengesetzt wird.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
{Dynamische Speicherreservierung}
  For i := 1 to AnzahlPunkte_X do
     For j := 1 to AnzahlPunkte_Y do 
         New(Pkt[i,j]);


Hier kommen dann Berechnungen, Kurvenausgabe, bla, bla ....

ausblenden Delphi-Quelltext
1:
2:
3:
4:
{Dynamische Speicherfreigabe}
  For i := 1 to AnzahlPunkte_X do
     For j := 1 to AnzahlPunkte_Y do 
        Dispose(Pkt[i,j]);


Und natürlich muss der Speicher wieder freigegeben werden.


Wie meint Ihr soll nach .Net vorgegangen werden um effizient auf Speicher bzw. Dynamischen Variablen zuzugreifen und zu verarbeiten.

Thx 8)

Moderiert von user profile iconPeter Lustig (15.04.2004, 11:53): Code- durch Delphi-Tags ersetzt


in .NET musst du, soweit ich weiss, sog. "delegate" benutzen. Das sind Pointer mit absoluter Typsicherheit. Ich habe mich selbst noch nicht damit beschäftigt, aber in der Hilfe findest du mit Sicherheit ein Beispiel dafür.

mfG
mirage228

Moderiert von user profile iconDeCodeGuru: Der Moderationstag wurde entfernt. :wink:

_________________
May the source be with you, stranger.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 15.04.04 20:10 
mirage228 hat folgendes geschrieben:
Moderiert von user profile iconmirage228 (15.04.2004, 14:57): Chaosssss :D

Äh, ich habe das auch mal gemacht und einen freundlichen Hinweis bekommen.
Seitdem nutze ich das [size]-Tag (Größe 10) und das bold-Tag für mein eigenes Moderations-Tag:

Moderiert von mir selbst (heute, jetzt): so geht das ohne Ärger mit den echten Mods zu kriegen
ADis Threadstarter
Hält's aus hier
Beiträge: 10

WinXP
D8 Ent
BeitragVerfasst: Fr 16.04.04 08:31 
Titel: AW: Zeiger und .Net
Danke für Eure Postings.

@Mirage228: delegate??? ich erzähl mal was die Hilfe schreibt:

Delegaten: Hierbei handelt es sich um eine Datenstruktur, die auf eine statische Methode oder auf eine Klasseninstanz und eine Instanzenmethode dieser Klasse verweist. Also irgendwie doch kein Pointerersatz oder?


@MathiasSimmack: Mit sowas habe ich noch nie etwas gemacht. Könntest Du paar Code-Schnipsel reinstellen, damit ich da mal rumprobieren kann wie die Performance ist?

Danke :wink:
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.04.04 10:37 
Titel: Re: AW: Zeiger und .Net
ADis hat folgendes geschrieben:
@MathiasSimmack: Mit sowas habe ich noch nie etwas gemacht. Könntest Du paar Code-Schnipsel reinstellen, damit ich da mal rumprobieren kann wie die Performance ist?

Das bezog sich auf etwas, das mirage in seinem Beitrag hatte. Ich hab´ auch erklärt was es war. Mit deiner Frage bzw. dem Thema hier hatte das nichts zu tun. ;)
ADis Threadstarter
Hält's aus hier
Beiträge: 10

WinXP
D8 Ent
BeitragVerfasst: Fr 16.04.04 10:51 
Hi,

@MathiasSimmack: :oops: War ja klar! Fettnäpfchen Nr. 1 für den Forumsgrünschnabel. Hmm ja ich habe mich auch schon gewundert, weil ich noch nie was (im Bezug auf meinThema) davon gehört hatte. Warscheinlich zuviel Quellcode in letzter Zeit gesehen. Ist der Winter schon vorbei????
Also nichts für ungut.

Jedoch habe ich immernoch keinen guten Ansatz gefunden :cry:

Bis denn
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Fr 16.04.04 11:29 
Pointer gibt es in .NET nicht mehr, wie du sicher schon festgestellt hast. Nimm doch statt dessen ganz normale referenzen (var x:TObject;)! IMO sind singles und alles andere in .NET sowieso objekte...viel mehr kann ich momentan auch nicht sagen :roll:

_________________
mfg.
mâximôv
ADis Threadstarter
Hält's aus hier
Beiträge: 10

WinXP
D8 Ent
BeitragVerfasst: Mo 24.05.04 20:15 
Titel: Zeiger und .Net (Problem gelößt)
Wenn es keine Pointer mehr gibt dann geht es eben so...

Dynamische Array's

Deklaration:
ausblenden Delphi-Quelltext
1:
Dyn_Array: array of integer; // hier steht noch nicht fest wie groß das Array ist					


und dann später in Eurem Quelltext:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
SetLength(Dyn_Array,Length(Dyn_Array)+1); //Länge des Array's definieren; hier z.B. eines größer als er vorher war
...
Dyn_Array [High(Dyn_Array)] :=Wert; //Wert z. B. auf der hösten Stelle zuweisen
...
for i:=Low(Dyn_Array) to High(Dyn_Array) do begin //Durchlaufen eines Arrays
bla bla
end;{for}


Das ganze geht natürlich auch mit mehreren Dimensionen. siehe Delphi Hilfe "Multidimensional dynamic arrays".

Viel Spass beim proggen 8)
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 24.05.04 21:10 
[OT]

Zitat:
ausblenden Delphi-Quelltext
1:
//Durchlaufen eines Arrays					


Müsste das nicht Array's heißen? Ich glaube seid anfang diesen Jahres ist dass Standart. :autsch:
ADis Threadstarter
Hält's aus hier
Beiträge: 10

WinXP
D8 Ent
BeitragVerfasst: Mo 24.05.04 22:37 
Servus,

klar ist das "Standart" jedoch wollte ich speziell auf die Low() und High() Funktion aufmerksam machen, weil jeder von uns war mal Grünschnabel :roll: in Delphi. hehe

Keep rocking
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 24.05.04 22:40 
(1) Es war die Rechtschreibung gemeint.
(2) Es ist Standard, wenn wir schon dabei sind. ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
ADis Threadstarter
Hält's aus hier
Beiträge: 10

WinXP
D8 Ent
BeitragVerfasst: Mo 24.05.04 22:49 
Ich Maschbaustudent also nix gut Deutsch. Aber haste recht, den Deutschdebugger sollte mal auf .NET umgestellt werden. :idea:

Aber Papa hast ja recht ich hocke mich jetzt hin und schreib erst mal ein Übungsdiktat.


Grüße aus Bayrischen 8)
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 25.05.04 13:59 
Tut mir leid aber diese ganzen sinnlosen Apostrophe, diesen Jahres, Standart, usw. geht einem mit der Zeit ganz schön auf den Senkel :P