Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Проблема с INI файлами   Найти похожие ветки 

 
Doctor_Y   (2004-04-06 12:58) [0]

Проблема вот ва чем: при создании ini файла в FormCreate

ini:=TINIFiles.Create("ok.ini");
s:=ini.ReadString("Global","path",""); <- вот сдесь
...

выдается ошибка памяти, и невкакую дальше.
ini файл я создаю и все нормально в другой форме проекта, а этой нет. В чем проблема?


 
Ozone ©   (2004-04-06 13:00) [1]

ini:=TINIFiles.Create("ok.ini")ж

Здесь нужно указывать полный путь к INI файлу.


 
Anatoly Podgoretsky ©   (2004-04-06 13:02) [2]

Doctor_Y   (06.04.04 12:58)  
Так и выдает "ошибка памяти"?

Ozone ©   (06.04.04 13:00) [1]
Не обязательно и полный путь к файлу не является гарантией!


 
KapitanSerg ©   (2004-04-06 13:03) [3]

>ini файл я создаю и все нормально в другой форме проекта
1.А ini.Free в этой другой форме ты вызвать не забыл?
2.Проверь пути к ok.ini
3.Проверь тип переменной ini.
А вообще все это оччччень странно!


 
Ozone ©   (2004-04-06 13:05) [4]

TO Anatoly Podgoretsky ©[2]

Но, как мне кажется, является обязательным условием.


 
KapitanSerg ©   (2004-04-06 13:07) [5]

>Ozone ©   (06.04.04 13:05) [4]
По умолчанию ini файл ищется в директории с программой и в <WinDir>.


 
Anatoly Podgoretsky ©   (2004-04-06 13:09) [6]

Ozone ©   (06.04.04 13:05) [4]
Предположение неверное, при том можно сказать в корне, например я хочу чтобы файл создавался в месте по умолчанию и ничего не хочу знать про это место.


 
Ozone ©   (2004-04-06 13:14) [7]

TO KapitanSerg ©[4], Anatoly Podgoretsky ©[5]

По крайней мере, когда у меня ini лежит в корне программы и я питыюсь сделать просто TIniFile("my.ini"), то появляется ошибка...


 
Ega23 ©   (2004-04-06 13:16) [8]

Anatoly Podgoretsky ©   (06.04.04 13:09) [6]

Он должен искаться в текущей директории, только почему-то не всегда находится :о)
Я уже давно пишу ini.create(ExtractFilePath(ParamStr(0))+"Ini.ini")


 
KapitanSerg ©   (2004-04-06 13:21) [9]

>Ozone ©   (06.04.04 13:14) [7]
В любом случае это будет не ошибка чтения памяти! А вопрос звучал именно так.


 
Anatoly Podgoretsky ©   (2004-04-06 13:24) [10]

Ozone ©   (06.04.04 13:14) [7]
У тебя ошибка в программе, нет прав и т.д.

Ega23 ©   (06.04.04 13:16) [8]
Это тоже не верно, где ищется хорошо документировано в справке и это сильно зависит от системы, могу сказать что для платформы НТ это даже не файл!


 
Piople ©   (2004-04-06 13:29) [11]


> Doctor_Y

С кого вообще может выдать ошибку чтония памяти???
А у тя точно S: String?
Ты мож просто не освободил экземпляр данного класса, и при повторном обращении косячит, хотя навряд ли.
А мож у тя в инихе просто нет такого раздела/параметра?

Но вообще причем тут ошибка чтения памяти....


 
Anatoly Podgoretsky ©   (2004-04-06 13:40) [12]

Наличие раздела/параметра не требуется, если нет, то устанавливается значение по умолчанию.


 
Ozone ©   (2004-04-06 13:50) [13]

Anatoly Podgoretsky © [12]

Все может быть


 
Ega23 ©   (2004-04-06 13:51) [14]

Это тоже не верно, где ищется хорошо документировано в справке

procedure TForm1.Button9Click(Sender: TObject);
var
Ini:TIniFile;
begin
Ini:=TIniFile.Create("1.ini");
Ini.WriteString("Section1","Key1","1");
Ini.Free;
end;

Создаёт Инишку в \Windows


 
Anatoly Podgoretsky ©   (2004-04-06 13:57) [15]

Если заменишь последнею строку на Создаёт Инишку в месте по умолчанию для данной версии операционной системы, то будет правильно и слово создает на слово пытается
Данный код во многих случаях закончится катастрофой.


 
KapitanSerg ©   (2004-04-06 14:09) [16]

>Anatoly Podgoretsky ©  [12][15]
>Ega23 ©   [14]  
Господа! Я вообще не вижу предмета дисуссии!
Ворос был о том, что "...выдается ошибка памяти, и невкакую дальше".


 
panov ©   (2004-04-06 14:11) [17]

Развод. Родина может спать спокойно.


 
Anatoly Podgoretsky ©   (2004-04-06 14:14) [18]

KapitanSerg ©   (06.04.04 14:09) [16]
А ты думаешь, что ему нужен ответ? Наивный :-)


 
Ega23 ©   (2004-04-06 14:19) [19]

Anatoly Podgoretsky ©   (06.04.04 13:57) [15]

А для чтения и записи порядок поиска разве не одинаков?


 
panov ©   (2004-04-06 17:18) [20]

Ega23 ©   (06.04.04 14:19) [19]

А для чтения и записи порядок поиска разве не одинаков

Кроме порядка поиска есть еще система безопасности-)


 
Anatoly Podgoretsky ©   (2004-04-06 17:24) [21]

Ega23 ©   (06.04.04 14:19) [19]
Порядок одинаковый, а остольное смотри ответом ниже.
Предложенные варианты в папку Виндоус, в папку с программой можно считать раюотоспособными только частично, в особых условиях. Писать надо в папку пользователся для локальных настроек и документов. Советую ознакомиться со статьей "Как хранить настройки" в Чаво на моем сайте.
И внимательно прочитать справку МС по поводу INI файлов, почему они оставлены и почему это может не работать как задумано.



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

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.025 c
1-1082032138
ASvencim
2004-04-15 16:28
2004.05.02
Как рандомайзом выбирать картинки?


1-1081838469
Tornado
2004-04-13 10:41
2004.05.02
Работа со строками


4-1078473092
Alexey
2004-03-05 10:51
2004.05.02
Доступ к компонентам другого приложения


3-1081100910
zerrow
2004-04-04 21:48
2004.05.02
помогите с нормализацией. что-то я запутался!


1-1082030465
Mol
2004-04-15 16:01
2004.05.02
ComboBox