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

Вниз

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

 
TAN   (2003-01-08 09:59) [0]

Не могу понять в чём дело, код программы примерно следующий.
При открытие формы

var
ini:TIniFile;
begin

ini:=TIniFile.Create(ExtractFilePath(Application.Exename) + "mbcl.ini");
Edit1.Text:=ini.ReadString("DataBase","HostName","localhost");
Edit2.Text:=ini.ReadString("DataBase","Database","msmeta");
Edit3.Text:=ini.ReadString("DataBase","User_Name","root");
Edit4.Text:=ini.ReadString("DataBase","Password","");
ini.Free;

При нажатие на кнопку сохранить

var
ini:TIniFile;
begin


ini:=TIniFile.Create(ExtractFilePath(Application.Exename) + "mbcl.ini");
ini.WriteString("DataBase","HostName",Edit1.text);
ini.WriteString("DataBase","Database",Edit2.text);
ini.WriteString("DataBase","User_Name",Edit3.text);
ini.WriteString("DataBase","Password",Edit4.text);
ini.Free;

А теперь сама проблема. Если изначально файла не существовало, он создаётся и всё работает нормально. Можно до потери пульса открывать и закрывать форму, нажимать на кнопку сохранить. Программа , как и надо, перезаписывает новые праметры в файл и выводит их на экран.

Но если файл уже существовал, то при нажатие на кнопку сохранить выводиться ошибка, немогу произвести запись в файл.
В чём дело понять не могу. Помогите плиз.


 
Song   (2003-01-08 10:06) [1]

Т.е. после запуска программы, если файл был записан ранее с помощью этого же куска кода, сразу же выдаётся ошибка?
Можно конечно сделать IF FileExists(ExtractFilePath(Application.Exename) + "mbcl.ini") then DeleteFile(ExtractFilePath(Application.Exename) + "mbcl.ini") а потом сохранять, но почему всё-таки проблема возникает не понятно.


 
gek   (2003-01-08 10:08) [2]

Вроде все правильно.А что за ошибка?


 
Anatoly Podgoretsky   (2003-01-08 10:12) [3]

Прямых ошибок в коде не наблюдается, за исключение полным пренебрежением возможными ошибками в рантайм, при первой же ошибке файл окажется открытым. Надо использовать защищенные блоки try finally end

Подобное обычно встречается у начинающих, они уверены, что у них программа будет работать без ошибок и они никак не защищают ресурсы.


 
Delirium^.Tremens   (2003-01-08 10:15) [4]


uses Registry;
...
var ini: TRegIniFile;
...
ini := TRegIniFile.Create("c:\windows\my.ini", KEY_ALL_ACCESS);

Во-первых, используй TRegIniFile - рекомендовано для win32, во-вторых, используй перезагруженный конструктор Create, который содержит параметр AAccess:LongWord, он определяет доступность для файла ini в системах "like NT".


 
TAN   (2003-01-08 10:35) [5]

Всем спасибо, сейчас буду пробывать реализовать ваши советы


 
Calm   (2003-01-08 13:01) [6]


> Во-первых, используй TRegIniFile - рекомендовано для win32

Кем рекомендавано???
Microsoft в рекомендациях по разработке ПО для win2k официально рекомендует использовать для созранения настроек приложения ini-файлы.


 
Delirium^.Tremens   (2003-01-08 13:19) [7]

Calm © (08.01.03 13:01)

> Кем рекомендавано???

Borland :-/



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

Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
1-49011
MAN-IN-RED
2003-01-06 18:18
2003.01.16
Поиск текста в TMemo...


3-48881
Sword-Fish
2002-12-20 00:32
2003.01.16
SQL-запросы


1-49090
ScableR
2003-01-03 02:56
2003.01.16
Помогите разобраться в вопросе с Delphi & MySQL


1-49033
HardClubber
2003-01-06 00:07
2003.01.16
Mailslot


1-49121
AngeL B.
2003-01-04 14:54
2003.01.16
проблема при работе с файлами и сетью одновременно





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