Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#8

Re: Typenproblem: Array of Byte...

  Alt 16. Feb 2005, 18:33
Zitat von Kedariodakon:
da scheinbar die Leute mein Problem falsch interpretieren, so wie du gerade eben...
Bitte nochmal lesen, was ich schrob:
Zitat:
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;
SumArray kriegt das Array und die Werte von wo bis wo es zusammenzählen soll, es wird also ein Ausschnitt aus dem Array zusammengezählt.
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:
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;
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.


Edit: Da habe ich mich doch tatsächlich beim quotteln der Delphi-Tags entledigt...


Zitat von Neutral General:
Ich glaube tommie-lie meint die ganzen Leerzeichen überall in deinem Code
Nein, eben das Fehlen solchiger und das Vorhandensein von Tab-Characters, sowie die eigensinnige Verwendung von Linebreaks
  Mit Zitat antworten Zitat