Vergeleich TextFile (gelöst)

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
jan_
Beiträge: 5
Registriert: Fr 18. Mär 2022, 14:13

Vergeleich TextFile (gelöst)

Beitrag von jan_ »

Hallo,

ich kann 2 Textfiles nicht miteinander vergleichen. (Direkt das Datei Handle, nicht den Inhalt) Den Dateinamen zu vergleichen geht leider nicht, da ich einen Haufen von 800 Projekten etwas umstellen will.

Es kommt immer der Fehler:
unit6.pas(27,6) Error: Incompatible types: got "Text" expected "Int64"
Beispiel:

Code: Alles auswählen

unit unit6;

{$mode objfpc}{$H+}
interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type
  { TForm1 }
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
  t1:textfile;
  t2:textfile;
begin
  t1 := t2;      
  if t1=t2 then
    showmessage('gleich');
end;

end.
Zuletzt geändert von jan_ am Mi 24. Aug 2022, 09:28, insgesamt 1-mal geändert.

PascalDragon
Beiträge: 830
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Vergeleich TextFile

Beitrag von PascalDragon »

Du musst das TextFile in ein TextRec umwandeln, dann kannst du auf das Handle zugreifen.
Wobei du vielleicht auch noch vergleichen solltest, ob openfunc, inoutfunc, flushfunc und closefunc gleich sind, da rein theoretisch ein komplett unterschiedliches I/O System gleiche Handles haben könnte (zum Beispiel sind die File Deskriptoren unter *nix normal recht klein vom numerischen Wert her, wenn du nun also andere I/O Funktionen hast, die kleine Werte als Handle nutzen, dann könntest du da Probleme bekommen).

Code: Alles auswählen

if TextRec(t1).Handle = TextRec(t2).Handle then
  Writeln('Foobar');
Anmerkung: für file [of TYPE] ist es analog FileRec.
FPC Compiler Entwickler

jan_
Beiträge: 5
Registriert: Fr 18. Mär 2022, 14:13

Re: Vergeleich TextFile

Beitrag von jan_ »

Vielen Dank.

Antworten