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

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.059 c
3-1080915002
Gaval
2004-04-02 18:10
2004.05.02
SQL Запрос


6-1078045245
Alexis
2004-02-29 12:00
2004.05.02
отправка письма через TClientSocket


14-1081677449
Qwart
2004-04-11 13:57
2004.05.02
Voxel


1-1081775783
Power_Lich
2004-04-12 17:16
2004.05.02
TChart


3-1080886816
Patrick
2004-04-02 10:20
2004.05.02
Упаковка данных.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский