AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Öffnen einer txt datei funktioniert als Funktion nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Öffnen einer txt datei funktioniert als Funktion nicht

Ein Thema von punker-lili · begonnen am 13. Jun 2008 · letzter Beitrag vom 13. Jun 2008
Antwort Antwort
Seite 2 von 3     12 3      
punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#11

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 18:26
hmm... du machst aus dem dynamischen integer array nen neuen typ... warum sollte es aufeinmalk damit funktionieren?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 18:36
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
Klaus
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 18:45
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:
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;
Freundliche Grüße
  Mit Zitat antworten Zitat
punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#14

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 18:50
ich habs ausprobiert.. es funktioniert immer noch nicht ... jetzt gibnt er mir den fehlr: "Types of actual and formal var parameters must be identical"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 19:00
Hallo Achim,
Zitat von marabu:
hat dein Compiler sich wirklich beschwert? Verwechselst du das nicht mit Arrays als Funktionstyp?
Ich habe es nicht so ausprobiert:
Delphi-Quellcode:
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;
Es geht auch so.
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
Klaus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 19:02
Wenn du einen Typ für den array deklarierst hast, musst du diesen auch als Typ bei der Parameterübergabe nehmen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#17

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 19:05
Hi,

bitte verwechsle keine dynamischen Arrays mit Open-Array-Parametern!

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); Natürlich muss dann auch beim Aufrufen der Typ TIntegerDynArray verwendet werden. Er ist in der Unit Types als "array of Integer" definiert.

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
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 19:12
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#19

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 19:16
Aber er erkennt diesen Typ nicht... "TintegerDynArray"...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Öffnen einer txt datei funktioniert als Funktion nicht

  Alt 13. Jun 2008, 19:17
Hast du Types eingebunden?
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz