![]() |
|
#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; Делаем'c разные игры. Искать на glscene.ru |
#10
|
||||
|
||||
![]() Напрямую к типу так нельзя. Сначала создайте перменную типа TdContact, а уже потом к ее свойствам обращайтесь.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |