Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array zerlegen (https://www.delphipraxis.net/108305-array-zerlegen.html)

blackmice 11. Feb 2008 11:22

Re: Array zerlegen
 
Ok, jetzt verstehe ich nur noch Bahnhof. Also die Unterscheidung zwischen Dynamischen und Statischen Arrays krieg ich jetzt ja grad noch zusammen, und das mit SetLength für nen dynamischen Array hab ich auch verstanden, aber wie muss ich denn das ganze definieren, damit es keine statische Speicheranforderung ist?

marabu 11. Feb 2008 11:37

Re: Array zerlegen
 
So:

Delphi-Quellcode:
type
  TChannel   = array [0..FPGAMax-1] of Word;
  PChannel   = ^TChannel;
  TCustArr   = array [1..2] of TChannel;
  PCustArr   = ^TCustArr;

var
  FPGAData     : PCustArr;
  AnalogArr    : PChannel;
  DataArr      : PChannel;

begin
  GetMem(DataArr, FPGAMax shl 1); // FPGAMax * SizeOf(Word)
end.

blackmice 11. Feb 2008 11:53

Re: Array zerlegen
 
Könnte ich in deinem Fall auch mit @FPGAData weiterarbeiten? In meinem Aufruf der NI-Karte tue ich das nämlich.
Der sieht im übrigen so aus

Delphi-Quellcode:
DIG_Block_In(iDevice,iPort,@FPGAData[iPort,0],FPGAMax);
Klingt jetzt vielleicht ein bischen dumm, aber ich hab die Teile der Steuerung der NI-Karte aus nem anderen Sourcecode. Den hat mein Vorgänger da gelassen. Meine bisherigen Programmierkenntnisse liegen 1. in anderen Sprachen und 2. hab ich bisher immer nur Datenbankprogramme geschrieben.

marabu 11. Feb 2008 12:30

Re: Array zerlegen
 
An dem von dir gezeigten Statement musst du nichts ändern. Du solltest dir vielleicht ein kleines Testprogramm in Delphi schreiben, um mit den Schreibweisen zu spielen.

Die statische Größe von 10MB aus deinem Beispiel würdest du bei dynamischer Speicheranforderung passender wählen.

Muetze1 11. Feb 2008 14:29

Re: Array zerlegen
 
Ansonsten zur Ausgangsfrage: Delphi-Referenz durchsuchenCopy() und Delphi-Referenz durchsuchenSlice()


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz