![]() |
Typenproblem: Array of Byte...
Ich habe ein Typ:
Delphi-Quellcode:
Dieser Typ wird bei sehr vielen Procedure/Function als Übergabeparameter genutzt...
Type TDataArray = Array Of Byte;
Nun will ich sehr vielen Procedure/Function so einen Array-Typ übergeben, aber immer nur einen Teil davon z.B: [ $03..$23 ], [ $00..$21]... Kann so eine Übergabe irgendwie einfach als diesen Typ übergeben, ohne dauernt neue Teilarrays anlegen und löschen zu müssen? Is ja unnötig dauernt Tausende MB's durch den Speicher zu schauffeln... Bye |
Re: Typenproblem: Array of Byte...
Wieso arbeitest du nicht gleich mit Zeigern? Dann bräuchtest du gar nichts durch den Speicher schaufeln. Oder ist das aufgrund der Programmstruktur nicht möglich?
|
Re: Typenproblem: Array of Byte...
Moin!
Delphi-Quellcode:
MfG
Function NimmArray(Const AArray: TDataArray): Integer;
Var i : Integer; Begin Result := 0; For i := Low(AArray) To High(AArray) Do Inc(Result, AArray[i]); End; Begin ShowMessage(IntToStr( NimmArray( [1, 3, 54, 2, 65, 34, 76] ) )); End. Muetze1 |
Re: Typenproblem: Array of Byte...
Zitat:
Zitat:
---------------------------------- Ich habe diese Funktion:
Delphi-Quellcode:
und will die so in der Art hier anwenden:
Function sumArray( Const Data: TDataArray ): Cardinal;
Var i: Cardinal; Begin Result := 0; For i := low( Data ) To High( Data ) Do Inc( Result, Data[ i ] ); End;
Delphi-Quellcode:
Das das nicht geht ist klar, aber so in der art will ich es anwenden, weiss aber net ob das einfach geht oder net...
Function sumArrayTests( Const Data: TDataArray; Const Start, Ende: Cardinal ): Cardinal;
Begin Result := sumArray( Data[ Start..Ende ] ); End; Bye |
Re: Typenproblem: Array of Byte...
Wie wär's damit?
Delphi-Quellcode:
function sumArray(const Data: TDataArray; low, high: Integer): Cardinal;
var i: Cardinal; begin Result := 0; for i := low to high do inc(Result, Data[i]); end; P.S.: Verdammt nochmal, wie schreibst du eigentlich Code? |
Re: Typenproblem: Array of Byte...
Zitat:
Also nochmal: Mein Problem ist nicht wie ich alles in einem Array zusammenzähl, sondern mit array teilen umgeh... Die
Delphi-Quellcode:
soll nicht summieren, sondern die
Function sumArrayTests( Const Data: TDataArray; Const Start, Ende: Cardinal ): Cardinal;
Delphi-Quellcode:
zum summieren benutzen...
Function sumArray( Const Data: TDataArray ): Cardinal;
Problem, wie übergebe ich dieser Function das Teilarray ohne es irgendwie im Speicher neu zu erstellen... Bye |
Re: Typenproblem: Array of Byte...
[ot][Kommentar]Ich glaube tommie-lie meint die ganzen Leerzeichen überall in deinem Code :mrgreen:[/Kommentar][/ot]
|
Re: Typenproblem: Array of Byte...
Zitat:
Zitat:
Es wird nix Speicher neu erzeugt und es besteht keine Notwendigkeit, das Array zu zerpflücken. Und ob ich nun sumArray(myarray[lowerbound..upperbound]) aufrufe, was ja nicht geht, oder sumArray(myArray, lowerBound, upperBound), ist ja wohl egal. Ansosnten könntest du auch mit ein wenig rumgecaste und Pointern zum Ziel kommen, aber dann müsstest du immer noch die obere Grenze übergeben:
Delphi-Quellcode:
Vorsischt: Unjetestet und from scratch! Syntaktische Fähler nit ausjeschlossen Evtl muss evtl auch PDataArray(@data[lower])^ heißen, ich bin grad zu faul den Compiler dazu zu befragen, was sein Parser sehen möchte.
function sumArray(someArray: TDateArray; maxCount: Integer): Integer;
var i: Integer; begin Result := 0; for i := 0 to maxCount - 1 do Result := Result + someArray[i]; end; function work(data: TDateArray; lower, upper: Integer): Integer; begin Result := sumArray(TDateArray(data[lower]), upper - lower); end; Edit: Da habe ich mich doch tatsächlich beim quotteln der Delphi-Tags entledigt... Zitat:
|
Re: Typenproblem: Array of Byte...
Zitat:
Hmm ich gestallte den Code lesbar :zwinker: Das das Forum dies anders Darstellt als mein Delphi Editor, kann ich ja nix für... :cyclops: Hab das Problem nun so beseitigt, das ich nun doch noch ein StartOffset übergeb :| Bye |
Re: Typenproblem: Array of Byte...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr. |
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