Entwickler-Ecke
Dateizugriff - Übergeben von Dateien an eine Prozedur
k.kuh - So 22.01.06 18:48
Titel: Übergeben von Dateien an eine Prozedur
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:
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
von
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
UGrohne: Topic aus Datenbanken verschoben am Mo 23.01.2006 um 21:22
Lemmy - 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:
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 - 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 - 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.
F34r0fTh3D4rk - 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 - 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:
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 - Mo 23.01.06 22:13
k.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:
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 - Mo 23.01.06 22:24
F34r0fTh3D4rk 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:
Delphi-Quelltext
1: 2: 3: 4:
| procedure Inizialisieren(var X: DateiTyp = nil; var Y: DateiTyp2 = nil); begin if x <> nil then else |
so brauchst du keinen der parameter zwingend zu übergeben.
k.kuh - Mo 23.01.06 22:27
Ah! sehr gut! das zweite hab ich verstanden. Nun such ich mal nach overload! Danke!!!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!