Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2009, 18:43   #1
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию ошибка при работе с файлом

написал прогу, код:
Код:
unit rpg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

type kletka=record
            x:integer;
            y:integer;
            st:string;
            end;

     dat=text;

var kletkarr:array[1..5,1..5] of kletka;
    pole:array[1..5,1..5] of tbitmap;
    s:string;

procedure TForm1.FormCreate(Sender: TObject);
var f:dat;
    i,j,m,n:integer;

begin
for i:=1 to 5
do for j:=1 to 5
   do begin
      pole[i][j].Create;
      end;
///
assign(f,'data.txt');     ///здесь выделяет строку
reset(f);
for i:=1 to 5
do for j:=1 to 5
   do begin
      read(f,m,n);
      kletkarr[i][j].x:=n;
      kletkarr[i][j].y:=m;
      readln(f,s);
      kletkarr[i][j].st:=s;
      end;
end;

end.
смысл - заполнить из файла матрицы значениями.

ошибка - incompatible types 'TPersistent' and 'Text'
что неправильно?
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 11.04.2009, 18:45   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вместо assign(f,'data.txt');, надо assignfile(f,'data.txt');
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.04.2009, 20:11   #3
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

ок, проблема решена, теперь следующая - выделяет строчку
Код:
pole[i][j].Create;
пишет - Access Violation in adress 0044CE55. Но потом нажимаю ок, еще раз F9 и все работает. .ехе тоже выдает ошибку, ноработает. в чем дело?
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 11.04.2009, 21:37   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

pole[i][j].Create; замени на pole[i][j]:=TBitMap.Create
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при работе с потоками vitalik007 Общие вопросы Delphi 6 09.03.2008 09:25
Крюкозябра при работе с файлом dbf в Delphi sergey113 Помощь студентам 9 13.12.2007 01:51
Ошибка при работе с файлом LeoN Общие вопросы Delphi 1 07.12.2007 15:21
Ошибка при работе с БД malevich БД в Delphi 8 25.11.2007 15:10