![]() |
|
|
#1
|
|||
|
|||
|
Проблема в коде или голове, подскажите выдает ошибку: [Error] Unit1.pas(69): Illegal type in Write/Writeln statement
САМ КОД: Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Button3: TButton;
{TStation = Record
StationNumber: Integer;
StationAdress: String;
end;}
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
//Station: TStation;
Form1: TForm1;
File1: File of Byte;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := '№ станции';
StringGrid1.Cells[1,0] := 'Адресс';
end;
procedure TForm1.Button3Click(Sender: TObject);
type
TStation = Record
StationNumber: String[6];
StationAdress: String[40];
end;
Var
Station: TStation;
Config: File of TStation;
begin
//Station.StationNumber := Edit1.Text;
//Station.StationAdress := Edit2.Text;
AssignFile(Config,'Config.rgv');
ReWrite(Config);
try
With Station do
begin
StationNumber := Edit1.Text;
StationAdress := Edit2.Text;
end;
WriteLn(Config, Station);
finally
CloseFile(Config);
end;
end;
end.Последний раз редактировалось Admin, 30.10.2009 в 17:07. |
|
#2
|
|||
|
|||
|
1. Для типизированных файлов надо использовать только Write
2. В типе данных надо использовать паскалевскую строку (задавать как String[размер <= 255]). |
|
#3
|
|||
|
|||
|
Цитата:
За первый пункт спасибо, принял к сведению. Второй пункт, я вроде как выполнил сразу, или я что-то не понимаю? |
|
#4
|
|||
|
|||
|
Вылезла еще одна штука, прога пускается ошибок не выдает, но и не создает файл и не пишет в файл если самому создать
![]() |
|
#5
|
||||
|
||||
|
Вот хороший рабочий пример создания/открытия файла
Код:
begin
AssignFile (File, FileName);//Связать переменныю и файл
{$I-}
try
Reset (File);//открыть для чтения, append(File) если текстовый файл
...
{$I+}
if IOResult <> 0 then//если нет файла
Rewrite (File);//создать файл
...
finally
Close (File);
end;
end; |
|
#6
|
||||
|
||||
|
А нафига 2 секции обработки ошибок?
И одной достаточно. Код:
{$I-} Reset (File); {$I+} |
|
#7
|
||||
|
||||
|
Цитата:
|
|
#8
|
||||
|
||||
|
Код:
{$I-} Reset (File); {$I+}Код:
{$I-}Просто в одной проге экспериментировал с этим, пришел к такому решению...это всего лишь имхо... Подобный алгоритм можно реализовать по разному... |
|
#9
|
|||
|
|||
|
[поднимаю старую тему для своего вопроса]
Вопрос: почему не могу обратится к записи: Код:
TdContact = record
surface : TdSurfaceParameters;
geom : TdContactGeom;
fdir1 : TdVector3;
end; |
|
#10
|
||||
|
||||
|
Напрямую к типу так нельзя. Сначала создайте перменную типа TdContact, а уже потом к ее свойствам обращайтесь.
|