Autor Beitrag
k.kuh
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
Delphi 6
BeitragVerfasst: So 22.01.06 18:48 
Hi! seit fast 2 Jahren hat mir dieses Forum immer sehr geholfen, wenn ich mit Delphi mal nicht weiter wusste. Nun denke ich, habe ich genug erfahrung gesammelt, um mich auch einmal an diese tolle community zu wenden, ohne eure zeit sinnlos zu vergeuden.

Zu meinem Problem:

ich wuerde gerne verschiedene files mit jeweils identischer Datenstruktur mit jeweils nur einer prozedur iniziallisieren, daraus lesen, darin speichern und eintraege daraus loeschen. Dazu moechte ich die global deklarierte variable fuer die datei an die Prozedur übergeben.
Delphi moechte aber nun nicht, dass ich wie volgt vorgehe:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Procedure TForm1.Inizialisieren(var X: file of recordtemp);
begin
  assignFile(X,URL + 'KN.dat');
  if not fileexists(URL + 'KN.dat')then
    rewrite(X);
  reset(X);
  closefile(X);
end;


Beim kompilieren erwartet delphi in der prozedurendeklaration eine geschlossene Klammer hinter
Zitat:
file
von

ausblenden Delphi-Quelltext
1:
    Procedure Inizialisieren(var X: file of recordtemp);					


so kann ich ja aber nicht angeben, um welche dateistruktur es sich handelt!

Ich wende mich nun also voller Hoffnung an euch, die ihr mir alle noch sooo viel voraus habt!

[edit] habe gerade festgestellt, dass dieses thema wohl eher in den bereich "Dateizugriff" gehoert, wie verschiebe ich meinen Beitrag?[/edit]


Moderiert von user profile iconUGrohne: Topic aus Datenbanken verschoben am Mo 23.01.2006 um 21:22
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 23.01.06 15:35 
Hi,

Delphi erwartet als Parameter einfache Typen, d.h. Du musst lediglich einen Typ deklarieren, dann sollte es gehen:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
type DateiTyp=file of recordtemp;

procedure Inizialisieren(var X:DateiTyp);
begin

end;



Grüße
Lemmy
k.kuh Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
Delphi 6
BeitragVerfasst: Mo 23.01.06 20:30 
Vielen, vielen Dank! Das Problem hat mich Tage lang beschaeftigt und ich wusste einfach nicht, wonach ich suchen sollte.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mo 23.01.06 21:17 
Noch eine kleine Idee: Entwickle deine Prozedur für einen TStream, dann ist das erstens zeitgemäßer und zweitens etwas allgemeingültiger.

_________________
Na denn, dann. Bis dann, denn.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 23.01.06 21:35 
das ist das gleiche problem wie mit den arrays, ich finds auch nicht gut, aber was soll man machen ;)
k.kuh Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
Delphi 6
BeitragVerfasst: Mo 23.01.06 22:07 
Also mit TStreams habe ich mich noch nicht beschaeftigt.... :oops:
Dann werde ich mich da mal reinlesen....
Eine frage haett ich dann aber doch noch:
Ist es moeglich, mehrere Typenbeschreibungen anzugeben? Soll heissen geht etwas in der art:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type 
  DateiTyp=file of recordtemp;  
  DateiTyp2=file of recordtemp2;  

 
procedure Inizialisieren(var X: DateiTyp or DateiTyp2);  
begin  

 
end;


Sehr primitiv dargestellt, ich weiss, aber ich wusste nicht, wie ich es sonst verstaendlich ausdruecken haette koennen.

Danke schoneinmal im vorraus!
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 23.01.06 22:13 
user profile iconk.kuh hat folgendes geschrieben:
Also mit TStreams habe ich mich noch nicht beschaeftigt.... :oops:
Dann werde ich mich da mal reinlesen....
Eine frage haett ich dann aber doch noch:
Ist es moeglich, mehrere Typenbeschreibungen anzugeben? Soll heissen geht etwas in der art:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type 
  DateiTyp=file of recordtemp;  
  DateiTyp2=file of recordtemp2;  

 
procedure Inizialisieren(var X: DateiTyp or DateiTyp2);  
begin  

 
end;


Sehr primitiv dargestellt, ich weiss, aber ich wusste nicht, wie ich es sonst verstaendlich ausdruecken haette koennen.

Danke schoneinmal im vorraus!

machst du einfach ne weitere ableitung, oder du überschreibst.
0xCC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 150



BeitragVerfasst: Mo 23.01.06 22:24 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
machst du einfach ne weitere ableitung, oder du überschreibst.

soll wohl heissen dass du mal nach overload in der delphi-hilfe schaust
ansonsten hilft vielleicht sowas:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure Inizialisieren(var X: DateiTyp = nilvar Y: DateiTyp2 = nil);
begin
  if x <> nil then
  else

so brauchst du keinen der parameter zwingend zu übergeben.
k.kuh Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
Delphi 6
BeitragVerfasst: Mo 23.01.06 22:27 
Ah! sehr gut! das zweite hab ich verstanden. Nun such ich mal nach overload! Danke!!!!