Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Вниз

Access Violation   Найти похожие ветки 

 
Strate ©   (2007-02-21 17:15) [0]

Здравствуйте. Не подскажете почему вот в таком коде:

constructor TMatrix.Create(FileName : String);
 var
   FSize : byte;
   fleInput : TextFile;
 begin
   AssignFile(fleInput, FileName);
   Reset(fleInput);
   ReadLn(fleInput, FSize);
   ASize := FSize;
 end;


Возникает Acces Violation на строке

ASize := FSize;

Примечение:

ASize - private-поле класса TMatrix. Класс TMatrix - наследник TObject"a

Причём такой код:

constructor TMatrix.Create (Size : byte);
 begin
   ASize := Size;
 end;


работает.

Спасибо за помощь заранее.


 
Strate ©   (2007-02-21 17:16) [1]

ASize Объявлена так:

private
   ASize : byte;


 
Kolan ©   (2007-02-21 17:25) [2]

> ASize := FSize;

Поле назывют с буквы "F" от слова Field а у тя все наоборот.

Код вроде нормальный... Попробуй проверить утечки:
Возьми MemProof
или если у тебя BDS то напиши ReportMemoryLeaksOnShutDown := True;

ЗЫ
 И все жет так загружать из файла плохо. Есть же TFileStream...


 
MBo ©   (2007-02-21 17:26) [3]

> И все жет так загружать из файла плохо
Чем плохо?


 
Kolan ©   (2007-02-21 17:28) [4]

> Чем плохо?

Паскалевский метод остался для совместимости.


 
RASkov   (2007-02-21 18:12) [5]

Ошибка возникает скорее всего на строке - ReadLn(fleInput, FSize);
Что у тебя в файле FileName ?


 
RASkov   (2007-02-21 18:13) [6]

> [5] RASkov   (21.02.07 18:12)

Т.е. не именно эта строка вызывает ошибку, но... Что в файле?


 
Правильный Вася   (2007-02-21 18:31) [7]

чтение в Byte из текстового файла?!


 
MBo ©   (2007-02-21 18:43) [8]

>Паскалевский метод остался для совместимости.
А разве есть встроенная в язык альтернатива для форматного чтения из текстового файла?


 
RASkov   (2007-02-21 18:47) [9]

> [7] Правильный Вася   (21.02.07 18:31)

А в чем проблема? Все должно быть Ок, если существует файл  и первая строка в нем "число" например - 157

constructor TMatrix.Create(FileName : String);
var
  FSize : byte;
  fleInput : TextFile;
begin
  AssignFile(fleInput, FileName);
  try try Reset(fleInput);
   ReadLn(fleInput, FSize);
  finally CloseFile(fleInput); end;
   ASize := FSize;
  except
// Здесь обработать ошибку.
  end;
end;


 
Strate ©   (2007-02-21 20:21) [10]

Простите невнимательного :(

В общем ларчик просто открывался, я создава объект так:

Matrix := Matrix.Create("input.txt");

, а класс объявлялся как TMatrix = class


 
RASkov   (2007-02-21 21:24) [11]

> Matrix := Matrix.Create("input.txt");

Тогда да, именно в момент обращения к полю и возникала ошибка ASize := FSize;
под ASize память была нераспределена.
Невнимательность.....


 
Anatoly Podgoretsky ©   (2007-02-21 21:59) [12]

> Kolan  (21.02.2007 17:28:04)  [4]

Это ты сам решил или тебе кто то сказал?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.059 c
2-1172061997
Аликъ
2007-02-21 15:46
2007.03.11
Listview нумерация строк


2-1171805222
GTR86
2007-02-18 16:27
2007.03.11
Как показать окна программ, запущенных пользователем?


3-1166176488
_Guest_
2006-12-15 12:54
2007.03.11
Ошибка при отсутствии BDE


15-1171326757
Трей
2007-02-13 03:32
2007.03.11
Принципы программирования математического решателя?


15-1171367467
Ega23
2007-02-13 14:51
2007.03.11
статья забавная





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский