assign Fehler ?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

assign Fehler ?

Beitrag von malabarista »

ich habe eine Textdatei mit assign geöffnet.

Bekomme allerdings die Fehlermeldung:
Wrong Number of Parameters specified for call to Assign
found declaration assign(Tpersistent)

Code: Alles auswählen

 
unit druckini;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  Buttons, StdCtrls;
 
type
 
  { TFdruckini }
 
  TFdruckini = class(TForm)
    breite_v: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    kopf_m: TMemo;
    fuss_m: TMemo;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    var_t: TMemo;
    Panel1: TPanel;
    zuruck_b: TSpeedButton;
    procedure zuruck(Sender: TObject);
  private
    { private declarations }
  public
    procedure start;
    { public declarations }
  end;
 
var
  druckini_v: TFdruckini;
 
implementation
 
{$R *.lfm}
 
{ TFdruckini }
 
procedure TFdruckini.start;
 
var
  f:text;
  datei:String;
  breite, il:integer;
  kopf,fuss, erl:TStringlist;
  z,zz:String;
 
begin
datei:='allgem/rechnung.ini';
kopf:=TStringlist.Create;
fuss:=TStringlist.Create;
if fileexists(datei) then
   begin
   assign(f,datei);     //<--fehlerzeile
   reset(f);
   while not eof(f) do
      begin
      readln(f,z);
     ...
     end;
  end;
end;
 
 
An einer anderen Stelle im Programm hat dies ohne Fehlermeldung geklappt:
was ist das Problem ?

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: assign Fehler ?

Beitrag von Michl »

Wenn du Assign in einer Klasse aufrufst, springt der Compiler in diese Methode der Klasse, wenn diese dort vorhanden ist. D.h. Assign(f,datei) entspricht Self.Assign(f,datei).

Folgendes sollte funktionieren:

Code: Alles auswählen

System.Assign(f,datei);
// oder
AssignFile(f,datei);

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: assign Fehler ?

Beitrag von theo »

Und wenn du schon Stringlisten in Betrieb hast, lade doch einfach mit z.B. "kopf.LoadFromFile(datei)";

malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Re: assign Fehler ?

Beitrag von malabarista »

@Michl: funktioniert. danke.

@theo: das habe ich an anderer Stelle auch gemacht. Aber hier hängt die Verarbeitung vom ersten Zeichen im String ab....
trotzdem danke für den Tipp.

Antworten