write и writeln выводят в консоль. Вы пишите консольное приложение?
Нет. Мне нужен вывод данных в файл. Насколько я помню, в fpc этот оператор работал.
Вот код главного окна приложения:
unit fast_m;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, Grids, StdCtrls, Menus, Buttons, about;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
MainMenu1: TMainMenu;
Memo1: TMemo;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
OpenDialog1: TOpenDialog;
sd1: TSaveDialog;
Shape1: TShape;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure MenuItem5Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
if Label3.caption='' then
Button1.visible:=false;
Button4.visible:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
procedure TForm1.Button2Click(Sender: TObject);
var
a:textfile;
b:string;
c:integer;
begin
if OpenDialog1.Execute=true then
Label1.Caption:=OpenDialog1.FileName;
assignFile (a, Label1.Caption);
reset (a);
readln (a, b);
readln (a, c);
Label2.Caption:=b;
Label3.Caption:=inttostr(c);
Button1.visible:=true;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.visible:=true;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Button1.visible:=false;
Button2.visible:=false;
Button3.visible:=false;
Button4.visible:=false;
Button5.visible:=true;
Memo1.visible:=true;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if sd1.execute=true then
Memo1.Lines.SaveToFile(sd1.FileName);
Button1.visible:=true;
Button2.visible:=true;
Button3.visible:=true;
Button4.visible:=false;
Button5.visible:=false;
Memo1.visible:=false;
end;
procedure TForm1.MenuItem5Click(Sender: TObject);
begin
close;
end;
initialization
{$I fast_m.lrs}
end.
Пользователь решил продолжить мысль 20 Августа 2012, 11:57:47:
Операторы read и readln работают. Мне это нужно для небольшой игры. writeln нужен для сохранения игры и вывода данных в файл. Есть ли для этого другие операторы?