![]() |
Rückgabe Array über Funktion
Guten Morgen!
Ich möchte eine Funktion haben, die mir ein Array of integer zurückgibt. Wenn ich das normal hinschreibe, fibt Delphi folgende Fehlermeldung zurück: "Bezeichner erwartet, aber ARRAY gefunden." -->
Delphi-Quellcode:
Wenn ich einen neuen Typ deklariere, meckert er auch rum.
function ableiten_koeff(gesamte:array of string;koff:array of integer;var ableit_fkt:array of string):array of integer;
Delphi-Quellcode:
Er compiliert zwar das Programm, aber er gibt einen Zugriffsfehler aus.
function ableiten_koeff(gesamte:array of string;koff:array of integer;var ableit_fkt:array of string):array of integer;
var abl_koeff,i,exp:integer; begin for i:=1 to length(koff)-1 do begin exp:=exponent(gesamte[i]); abl_koeff:=exp*koff[i]; if exp > 2 then ableit_fkt[i]:=inttostr(abl_koeff)+'x^'+inttostr(exp-1) else ableit_fkt[i]:=inttostr(abl_koeff); [u][b] ableiten_koeff[i]:=abl_koeff;[/b][/u] end; end; Wie kann ich das Problem beheben? MfG punkerlili |
Re: Rückgabe Array über Funktion
Guten Morgen
Zitat:
Delphi-Quellcode:
Grüße, Matze
type
TMyArrayI: array of Integer; TMyArrayS: array of string; var MyArrayI: TMyArrayI; MyArrayS: TMyArrayS; // ... function ableiten_koeff(gesamte: TMyArrayS; koff: TMyArrayI; var ableit_fkt: TMyArrayS): TMyArrayI; |
Re: Rückgabe Array über Funktion
Hallo,
Und es gibt auch bereits fertige deklarationen für diese dynamischen Arrays in der Unit Types
Delphi-Quellcode:
Dadurch kann man sich die Deklaration sparen und verwendet über versch. Projekte hinweg die selben Typen. Allerdings weiß ich nicht seit welcher Delphiversion es diese Typen gibt.
TIntegerDynArray = array of Integer;
{$EXTERNALSYM TIntegerDynArray} //... TStringDynArray = array of string; {$EXTERNALSYM TStringDynArray} Gruß, Chris |
Re: Rückgabe Array über Funktion
Hallo punkerlili,
du kannst die Zugriffsverletzung verhindern, indem du das dynamische Rückgabe-Array geeignet dimensionierst:
Delphi-Quellcode:
Gruß Hawkeye
begin
SetLength (Result, Length(koeff)); [...] end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 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