Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюки при работе с TIniFile 
V
    Опции темы
kali
Дата 28.4.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.11.2006
Где: Минск

Репутация: нет
Всего: 20



При выполнении следующего кода

Код

procedure TForm1.FormCreate(Sender: TObject);
var ss:TStrings;
  fini: TIniFile;
begin
  fini:=TIniFile.Create('config.ini');
  fini.ReadSection('Materials',ss);
  ComboBox1.Items.AddStrings(ss);
  fini.free;
end;


Выкидывает Access Violation. Как я понял, не создается экземпляр класса TIniFile.
Подскажите пожалуйста, в чем может быть глюк? smile 

--------------------
Работая над решением задачи, всегда полезно знать ответ.
PM MAIL Skype   Вверх
Exai1e
Дата 28.4.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 2
Всего: 30



deleted

Это сообщение отредактировал(а) Exai1e - 28.4.2008, 16:51


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Qu1nt
Дата 28.4.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 18
Всего: 50



Код

procedure TForm1.FormCreate(Sender: TObject);
var
  List : TStrings;
  Ini  : TIniFile;
begin
  Ini := TIniFile.Create('config.ini');
  List := TStringList.Create;
  Ini.ReadSection('Materials', List);
  ComboBox1.Items.AddStrings(List);
  List.Free;
  Ini.Free;
end;

Ы?
PM MAIL   Вверх
Exai1e
Дата 28.4.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 2
Всего: 30



а почему бы сразу не писать результат в комбобокс ?

Код

  fini:=TIniFile.Create('C:\config.ini');
  fini.ReadSection('Materials',ComboBox1.Items);
  fini.free;



--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
kali
Дата 28.4.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.11.2006
Где: Минск

Репутация: нет
Всего: 20



Qu1nt,  Спасибо, Ошибку выкидывать перестало, но из файла ничего не читает.
--------------------
Работая над решением задачи, всегда полезно знать ответ.
PM MAIL Skype   Вверх
Exai1e
Дата 28.4.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 2
Всего: 30



хм, у мя читает, используя код Qu1nt'a. Укажи путь к файлу "жестко" ну тоесть C:\config.ini к примеру, должно работать smile

фаил у меня такого содержания
Код

[Materials]
mat=lalala 



--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
kali
Дата 28.4.2008, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.11.2006
Где: Минск

Репутация: нет
Всего: 20



Exai1e, заработало, Спасибо.
--------------------
Работая над решением задачи, всегда полезно знать ответ.
PM MAIL Skype   Вверх
Exai1e
Дата 28.4.2008, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 2
Всего: 30



а что бы не указывать его так жестко используй Paramstr(0)

Добавлено через 3 минуты и 22 секунды
Код

program Project1;

uses
  Forms,
  SysUtils,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  exe_dir := ExtractFilePath(ParamStr(0));
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.


...

Код

  fini:=TIniFile.Create(exe_dir + '\config.ini');



--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.