Dateizugriff: Fehler bei "Assign"
Dateizugriff: Fehler bei "Assign"
Hallo,
ich bin neu auf dem Gebiet. Jetzt wollte ich einen Dateizugriff programmieren. Das Problem ist, dass es eine Fehlermeldung gibt, die ich nicht verstehe:
Codezeile: Assign(Datei,'Liste.sco');
Fehlermeldung: Fatal: Syntax error, ":" expected but "(" found
Laut meinen Recherchen müsste dort aber eine Klammer stehen.
Was hab ich falsch gemacht?
Tom
ich bin neu auf dem Gebiet. Jetzt wollte ich einen Dateizugriff programmieren. Das Problem ist, dass es eine Fehlermeldung gibt, die ich nicht verstehe:
Codezeile: Assign(Datei,'Liste.sco');
Fehlermeldung: Fatal: Syntax error, ":" expected but "(" found
Laut meinen Recherchen müsste dort aber eine Klammer stehen.
Was hab ich falsch gemacht?
Tom
Re: Dateizugriff: Fehler bei "Assign"
Der meint wahrsch. das Assign von TPersistent.
Probier mal mit
AssignFile(...
bzw.
System.Assign(...
Probier mal mit
AssignFile(...
bzw.
System.Assign(...
Re: Dateizugriff: Fehler bei "Assign"
Bei Assignfile kommt die gleiche Meldung, bei System.Assign meckert er außerdem noch über "System" und den Punkt.
Tom
Tom
Re: Dateizugriff: Fehler bei "Assign"
Dann liegt der Fehler wahrsch. nicht in dieser Zeile.
Zeig mal mehr.
Zeig mal mehr.
Re: Dateizugriff: Fehler bei "Assign"
Code: Alles auswählen
unit App_002;
{$mode objfpc}{$H+}
interface
Type Struktur = record;
Spielername : string[100];
Punktzahl : integer;
end;
Var Datei : File of Sruktur;
Var Satz : Struktur;
Assign(Datei, 'Liste.sco');
Rewrite(Datei);
uses
Classes, SysUtils;
implementation
end.
Re: Dateizugriff: Fehler bei "Assign"
Du kannst nicht im interface Teil einer Unit irgendwelchen Code ausführen.
Lerne mal die Grundlagen der Pascal Programmierung.
Z.B.
http://www.delphi-treff.de/tutorials/
Oder Suche im Forum nach mehr Tutorials http://www.lazarusforum.de/viewtopic.php?f=21&t=79
Lerne mal die Grundlagen der Pascal Programmierung.
Z.B.
http://www.delphi-treff.de/tutorials/
Oder Suche im Forum nach mehr Tutorials http://www.lazarusforum.de/viewtopic.php?f=21&t=79
-
- Beiträge: 25
- Registriert: Mi 14. Nov 2012, 14:36
- OS, Lazarus, FPC: Linux Kernel 6.6 (L 3.0 FPC 3.2.2)
- CPU-Target: x86_64 Linux gtk2
Re: Dateizugriff: Fehler bei "Assign"
Du kannst NACH implementation Teil in der Unit noch eine INITIALIZATION Sektion schreiben, da kann Code rein, der direkt ausgeführt wird.Du kannst nicht im interface Teil einer Unit irgendwelchen Code ausführen.
Die Frage ist, wie sinnvoll ist das. Vielleicht besser so was in das Ereignis FormCreate rein, wäre mein Vorschlag
Re: Dateizugriff: Fehler bei "Assign"
Also muss ich den Teil ab dem Assign z.B. nach Druck auf einen Button ausführen?
Re: Dateizugriff: Fehler bei "Assign"
Kann sein, aber das kann man so direkt nicht sagen.moTTom hat geschrieben:Also muss ich den Teil ab dem Assign z.B. nach Druck auf einen Button ausführen?
Was willst du den eigentlich machen? Ein Konsolenprogramm oder ein "Windows-Programm"?
Was soll das werden?
Re: Dateizugriff: Fehler bei "Assign"
Im Prinzip ein Windows Programm mit GUI und so.
Ich müsste halt erstmal wissen, wie der ganze Code aussieht, nur um die Datei zu erstellen. Dann könnte ich damit was anfangen, hab halt noch keinen Vollständigen Code gesehen, und mit solchen Themen beschäftigen sich auch die Einsteiger Tutorials nicht.
Tom
Ich müsste halt erstmal wissen, wie der ganze Code aussieht, nur um die Datei zu erstellen. Dann könnte ich damit was anfangen, hab halt noch keinen Vollständigen Code gesehen, und mit solchen Themen beschäftigen sich auch die Einsteiger Tutorials nicht.
Tom
Re: Dateizugriff: Fehler bei "Assign"
Also ganz einfach gesagt:
Erstelle ein neues Projekt (Anwendung).
Platziere einen Button auf dem Formular.
Doppelklicke auf den Button, dann erhältst du ein Prozedurgerüst (TForm1.Button1Click) dort kannst du deinen Code unterbringen.
Der wird dann beim klicken auf den Button abgearbeitet.
Erstelle ein neues Projekt (Anwendung).
Platziere einen Button auf dem Formular.
Doppelklicke auf den Button, dann erhältst du ein Prozedurgerüst (TForm1.Button1Click) dort kannst du deinen Code unterbringen.
Der wird dann beim klicken auf den Button abgearbeitet.
Re: Dateizugriff: Fehler bei "Assign"
Das ist mir klar, ein paar Codes krieg ich auch hin, nur wie speicher ich das jetzt in einer Datei?
Die Variablen würde ich dann wie jede andere auch deklarieren, von dem type Struktur = record ... hab ich keine Ahnung. Das Assign sollte dann z.B. nach einem buttonclick ausgeführt werden.
Das Beispiel hab ich übrigens von: http://www.hadels.com/programmit/TP6.html
Tom
Die Variablen würde ich dann wie jede andere auch deklarieren, von dem type Struktur = record ... hab ich keine Ahnung. Das Assign sollte dann z.B. nach einem buttonclick ausgeführt werden.
Das Beispiel hab ich übrigens von: http://www.hadels.com/programmit/TP6.html
Tom
Re: Dateizugriff: Fehler bei "Assign"
Wie gesagt, lerne Pascal! Ein paar Links habe ich dir oben gegeben.moTTom hat geschrieben:nur wie speicher ich das jetzt in einer Datei?
Dieses Forum ist kein Einsteigerkurs.
Wenn du wirklich nicht weiterkommst, kannst du natürlich hier Fragen.
Re: Dateizugriff: Fehler bei "Assign"
Ich verzweifle:
Also als Konsolenanwendung funktioniert das:
Aber wenn ich versuche, das in eine Unit mit Fenster umzusetzten, funktioniert es nicht:
gibt es folgende Fehlermeldungen:
fenster_1.pas(35,33) Error: Wrong number of parameters specified for call to "Assign"
fenster_1.pas(40) Fatal: There were 1 errors compiling module, stopping
Was mache ich denn nun falsch, wo muss die assign-Zeile hin? was sollte Assign denn sonst noch erwarten?
Tom
PS:Wenn ich die assign-Zeile weglasse, treten keine Fehler auf.
Also als Konsolenanwendung funktioniert das:
Code: Alles auswählen
program schreibeIntegerDatei;
uses crt;
var datei:file of integer;
begin
assign(datei,'text.dat');
Rewrite(datei);
Close(datei);
end.
Code: Alles auswählen
unit Fenster_1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
var datei:file of integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
assign(datei, 'text.dat');
end;
end.
fenster_1.pas(35,33) Error: Wrong number of parameters specified for call to "Assign"
fenster_1.pas(40) Fatal: There were 1 errors compiling module, stopping
Was mache ich denn nun falsch, wo muss die assign-Zeile hin? was sollte Assign denn sonst noch erwarten?
Tom
PS:Wenn ich die assign-Zeile weglasse, treten keine Fehler auf.
Re: Dateizugriff: Fehler bei "Assign"
Jetzt drehen wir uns im Kreis.
Die Antwort steht in meinem ersten Beitrag dieses Threads.
Die Antwort steht in meinem ersten Beitrag dieses Threads.