Einzelnen Beitrag anzeigen

Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#10

Re: Werte an Array übergeben?

  Alt 31. Okt 2005, 10:39
Hmm wenn man von vorne her ungefär weiß wie groß, der größte Typ sein wird den man ins array legen will mach ich mir das nicht groß umstandlich.

Nehmen wir mal an dein größter Typ ist 30 kb groß.Ich weiß es ist nicht elegant aber zur übung
reichts.
Übergabe Erfolgt Typenlos, also egal was für Typen du hast.

Wichtig bei Strings diese immer mit blabla:String[größe] begrenzen sonst gibs Datensalat.

ungetestet

Delphi-Quellcode:

const Maxsize = 30720;

type
TADummy= array[0..Maxsize] of Byte;

type TDaten = record
     Size: Longword;
     Daten: TADummy;
     end;

var

Dynarray: array of TDaten;

AnzDatensatz: integer;


// Wenn es einen neuen Pointerinhalt zu verschieben gibt dann diese Proc aufrufen
//
// Beispiel Addpointer(meinpointer^,sizeof(Deintyp);


Procedure AddPointer(var:Pointerinhalt,DatenSize:Longword);
begin

AnzDatensatz := High(Dynarray) + 1; //Wieviele Datensätze sind vorhanden

SetLength(Dynarray,AnzDatensatz + 1); //Erhöhe die Anzahl der Datensetze um eins

AnzDatensatz := High(Dynarray) + 1; //Aktuelle Anzahl der Datensätze


        with Dynarray[AnzDatensatz - 1] do //
    begin
         Size := DatenSize;
         Daten := Pointerinhalt
    end;

end;


//.... der rest bleibt dir überlassen ;)
So kann man elegant seine Dynamischen Array anlegen ohne Schleifen.

Index freigeben nicht vergessen wenn man wieder seine Daten aus Dynarray ließt.

Hoffe konnte bisschen helfen.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat