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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2008, 12:01   #1
SnakeMan
Пользователь
 
Регистрация: 25.10.2007
Сообщений: 41
Печаль Возник вопрос при заполнении массива..

Добрый день!
Пытаюсь прочитать из текстового файла строки в массив, но при исполнении почему то вылетает с сообщением Access Violation.

Вот кусок этого кода:
Код:
...
var
  Form1       : TForm1;
  F, F1,
  Ftemp       : TextFile;
  RGIFileName,
  Cod         : String;
  Ch          : Char;
  Unsisable   : Array of String;
  implementation
...
procedure TForm1.FormShow(Sender: TObject);
var
 i  : Integer;
 St : String;
begin
 AssignFile (F1,'Gin2Geop.ini');
 Reset (F1);
 i:=0;
 repeat
  ReadLn (F1, St);
  if (St<>'')or(St>#13) then
   Unsisable [i]:=St;
  i:=i+1;
 until EOF(F1)or(St[1]='~')and(i>1);
 CloseFile (F1);
end;
Поясните, где тут собака порылась.... плз.
SnakeMan вне форума Ответить с цитированием
Старый 15.01.2008, 12:19   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Access Violation - Нарушение доступа.
Может файл забыл закрыть. Например, если аварийно вышел из программы до выполнения CloseFile.
Sibedir вне форума Ответить с цитированием
Старый 15.01.2008, 12:24   #3
SnakeMan
Пользователь
 
Регистрация: 25.10.2007
Сообщений: 41
По умолчанию

Эта процедура вызывается в самом начале выполнения программы и никакие модули с этим файлом больше не общаются... Ошибка возникает именно на строке

Код:
Unsisable [i]:=St;
SnakeMan вне форума Ответить с цитированием
Старый 15.01.2008, 12:27   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Ага, супер. А кто будет задавать размер массива.
Мож так:
Код:
SetLength (Unsisable, Length (Unsisable) + 1);
Unsisable [i]:=St;
Sibedir вне форума Ответить с цитированием
Старый 15.01.2008, 12:27   #5
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Не назначил размер динамического массива Unsisable

Sorry, не заметил предыдущих постов
_Dmitry вне форума Ответить с цитированием
Старый 15.01.2008, 12:29   #6
SnakeMan
Пользователь
 
Регистрация: 25.10.2007
Сообщений: 41
По умолчанию

Мда... Косяк с моей стороны!

Спасиб!
SnakeMan вне форума Ответить с цитированием
Старый 15.01.2008, 12:29   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если F1:TextFile, т.е. с расширением *.txt, то разве он откроет файл *.ini?
puporev вне форума Ответить с цитированием
Старый 15.01.2008, 12:29   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

А, коры. Разом ответили.
Sibedir вне форума Ответить с цитированием
Старый 15.01.2008, 12:31   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Цитата:
разве он откроет файл *.ini?
Да хоть *.exe.
Sibedir вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10
Сортировка массива...? Roberto Помощь студентам 2 11.04.2008 13:32
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44