![]() |
Re: Öffnen einer txt datei funktioniert als Funktion nicht
hmm... du machst aus dem dynamischen integer array nen neuen typ... warum sollte es aufeinmalk damit funktionieren?
|
Re: Öffnen einer txt datei funktioniert als Funktion nicht
Hallo,
weil der var Parameter einen solchen Typen erwartet. Wenn Du nur eine Variable IntArray: Array of Integer übergibst mosert der Compiler. Wenn Du aber eine Variable IntArray: TIntArray übergibst und TIntArray = Array of Integer ist dann mosert der Compiler nicht. Warum dem so ist, kann ich nicht genau erklären. Grüße Klaus |
Re: Öffnen einer txt datei funktioniert als Funktion nicht
Hallo Klaus,
hat dein Compiler sich wirklich beschwert? Verwechselst du das nicht mit Arrays als Funktionstyp? Ich hatte geschrieben, dass es bei mir keine Übersetzungsprobleme gibt. Allerdings ist das Array sd_ton überflüssig:
Delphi-Quellcode:
Freundliche Grüße
procedure oeffnen(
ort: string; var sd_takt, sd_v, sd_ende: Integer; var sd_laenges, sd_hoehes: array of Integer; var test_klick: Boolean ); var sd_schnitt: Textfile; sd_hoehe, sd_laenge: array of Integer; //sd_ton: array of string; sd, n: Integer; begin AssignFile(sd_schnitt, ort); Reset(sd_schnitt); ReadLn(sd_schnitt, sd_takt); ReadLn(sd_schnitt, sd_v); ReadLn(sd_schnitt, sd_ende); //SetLength(sd_ton, sd_ende); SetLength(sd_laenge, sd_ende); SetLength(sd_hoehe, sd_ende); for sd := 0 to sd_ende - 1 do begin ReadLn(sd_schnitt, n {sd_ton[sd]}); sd_hoehe[sd] := n div 10; //StrToInt(Copy(sd_ton[sd], 1, 2)); sd_laenge[sd] := n mod 10; //StrToInt(Copy(sd_ton[sd], 3, 1)); end; CloseFile(sd_schnitt); test_klick := False; end; |
Re: Öffnen einer txt datei funktioniert als Funktion nicht
ich habs ausprobiert.. es funktioniert immer noch nicht :oops: ... jetzt gibnt er mir den fehlr: "Types of actual and formal var parameters must be identical"
|
Re: Öffnen einer txt datei funktioniert als Funktion nicht
Hallo Achim,
Zitat:
Delphi-Quellcode:
Es geht auch so.
type
TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); private { Private declarations } takt,sd,ende: Integer; testArray1,testArray2: Array of Integer; test_klick: Boolean; public { Public declarations } end; Ja ich hatte da etwas im Kopf mit der Paramterübergabe von Array. Da habe ich dann wohl etwas ganz gut durcheinander gebracht. Für heute schweige ich dann mal, ist nicht so ganz mein Tag. Schönen Abend noch. Grüße Klaus |
Re: Öffnen einer txt datei funktioniert als Funktion nicht
Wenn du einen Typ für den array deklarierst hast, musst du diesen auch als Typ bei der Parameterübergabe nehmen
|
Re: Öffnen einer txt datei funktioniert als Funktion nicht
Hi,
bitte verwechsle keine dynamischen Arrays mit Open-Array-Parametern!
Delphi-Quellcode:
Natürlich muss dann auch beim Aufrufen der Typ TIntegerDynArray verwendet werden. Er ist in der Unit Types als "array of Integer" definiert.
procedure oeffnen(ort:string;var sd_takt,sd_v,sd_ende:integer;var sd_laenges,sd_hoehes: TIntegerDynArray{array of integer};var test_klick:boolean);
Steht in der Parameterliste ein array of Integer, so handelt es sich um einen Open-Array-Parameter (d. h., du kannst ein beliebiges array übergeben --> offen für alle Arrays des Typen). Allerdings ist dies dann nicht zwingend ein dynamisches array (es kann auch statisch sein), und SetLength geht dann logischerweise nicht. Mfg FAlter |
Re: Öffnen einer txt datei funktioniert als Funktion nicht
die aktuelle Fehlermeldung sagt aus das du die Funktion mit falschen Parametern aufrufen willst. Zeig doch mal deinen Aufruf und den aktuellen Stand deiner Funktion.
|
Re: Öffnen einer txt datei funktioniert als Funktion nicht
Aber er erkennt diesen Typ nicht... "TintegerDynArray"...
|
Re: Öffnen einer txt datei funktioniert als Funktion nicht
Hast du Types eingebunden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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