Форум: "Начинающим";
Текущий архив: 2014.07.13;
Скачать: [xml.tar.bz2];
ВнизДинамический массив Найти похожие ветки
← →
leshka (2013-09-10 14:35) [0]ПриВЕт!
Есть код
procedure TfmBak.FormCreate(Sender: TObject);
var n:Integer;
short_name_diagnos: array of string[30];
begin
fmVsp:=TfmVsp.Create(Application);
fmVsp.mmo2.Lines.LoadFromFile("Analiz\Short_diagnost.dat");
SetLength(short_name_diagnos,fmVsp.mmo2.Lines.Count-1);
for n:=0 to fmVsp.mmo2.Lines.Count-1 do
begin
short_name_diagnos[n]:=fmVsp.mmo2.Lines[n];
end;
выдает ошибку при запуске "Access violation at ..."
подскажите что не так
Спасибо!
← →
Сергей М. © (2013-09-10 15:28) [1]SetLength(short_name_diagnos,fmVsp.mmo2.Lines.Count-1); // как минимум вот это не так
← →
Sha © (2013-09-10 20:11) [2]Загрузка текстового файла в массив строк через TMemo на вспомогательной форме )
Круть !
← →
brother © (2013-09-11 03:44) [3]медики... им можно... )
← →
leshka (2013-09-11 10:02) [4]Парни, возникла еще небольшая проблемка:
При завершении работы программы вылезает ошибка runtime error 217 at 00402700
почитал в инете что это связано с динамическими массивами, но что именно я не понял. Подскажите пожалуйста
← →
Плохиш © (2013-09-11 10:47) [5]Ошибка в 17й строке.
PS. Вот интересно, нафига разработчики среды время на создание отладчика тратили? Всё-равно уборщицы им не пользуются.
← →
leshka (2013-09-11 11:03) [6]В 17-й строке написано
Label1: TLabel;
Что тут может быть не так!!!???
← →
stas © (2013-09-11 11:10) [7]leshka (11.09.13 11:03) [6]
...убил )
← →
stas © (2013-09-11 11:15) [8]leshka (11.09.13 11:03) [6]
надо еще и вычистить память после того как заняли динамическим массивом.
Лучше использовать готовые объекты для этих целей, TStringList например.
А по поводу 17-й строки, так говорят, когда кода полностью не видели. Как можно дать ответ не зная что вы там написали.
← →
stas © (2013-09-11 11:26) [9]
procedure TfmBak.FormCreate(Sender: TObject);
var n:Integer;
List:TStringList; //short_name_diagnos: array of string[30];
begin
...
List:=TStringList.Create(); //создаем экземпляр класса
try
List.LoadFromFile (GetFilePath(ParamStr(0))+"Analiz\Short_diagnost.dat"); // загружаем файл по пути, GetFilePath(ParamStr(0)) - определяем путь к программе
{
обратится к строке в List - List[i], где i порядковый номер строки
}
finally
List.free // освобождаем память
end;
end;
как-то так
← →
sniknik © (2013-09-11 11:28) [10]это не связано с массивами, не нужно по единственно найденному/прочтенному случаю делать глобальные выводы.
это любая ошибка, твоя/твоей программы, произошедшая либо до инициализации ексептов (в SysUtils) либо после из "разинициализации".
"там"/прочитанном тобой случае причина в них. у тебя... в 17й строке.
> В 17-й строке написано
17я строка это мем, значит любую строку видимую тобой, но не видимую отвечающим.
> Что тут может быть не так!!!???
вообще, много чего, от контекста зависит. ну например (1 из кучи вариантов) это прописано у тебя в рекорде/модуле глобальной переменной, создается от формы, освобождается в finallize своего модуля когда формы уже нет, после финализации SysUtils. вуаля - runtime error 217
← →
[ВладОшин] © (2013-09-11 11:31) [11]
> leshka
Юзайте отладку, пригодится
если надо сдать и забыть
на вскидку:
procedure TfmBak.FormCreate(Sender: TObject);
short_name_diagnos: array of string[30];
попробуйте отсюда вынести массив в форму
type
TForm1 = class(TForm)
public
{ Public declarations }
short_name_diagnos: array of string[30];
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.07.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c