|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите пожалуйста разобраться
Есть вот такая структурка
Код:
// Запись настройки Settings = record Name: String[255]; // Наименование настройки DBPath: String[255]; // Путь к базе DBUserName: String[100]; // Имя пользователя DBUserPassword: String[50]; // Пароль пользователя DBType: Byte; // Тип базы данных (0 - файловая, 1-серверная) ExchangeCode: String[10]; // Код настройки обмена end; // Коллекция настроек SettingsData = record RunPath: String[255]; // Путь запуска 1С Предприятия Data: Array[0..49] of Settings; // Массив настроек Count: Byte; // Количество записей end; Код:
procedure SaveSettingsDB(); var SettingsFile: file of SettingsData; begin AssignFile(SettingsFile, 'Settings.dat'); Rewrite(SettingsFile); Write(SettingsFile, MainData); CloseFile(SettingsFile); end; Проблема в следующем: - Если есть записи в MainData.Data - все хорошо сохраняется, но если заполнить просто MainData.RunPath, а MainData.Data не трогать, то файл вообще не создается. Вопрос: Почему так происходит и как это побороть? Последний раз редактировалось Admin, 19.05.2009 в 10:17. |
#2
|
||||
|
||||
Уточнение
Немного разобрался
Код:
procedure TfrmSettings.btOpenPath1CClick(Sender: TObject); begin OpenDialog.Filter:='Файл запуска 1С Предприятия|1cv8.exe'; OpenDialog.Title:='Укажите путь запска 1С Предприятия'; if OpenDialog.Execute then begin EditPath1C.Text:= OpenDialog.Files[0]; MainData.RunPath:=EditPath1C.Text; end; OpenDialog.Destroy; end; Если OpenDialog не вызывать, а EditPath заполнять руками и потом MainData.RunPath:=EditPath1C.Text; ...то все работает. Подскажите, как это лечить? Последний раз редактировалось Admin, 19.05.2009 в 10:17. |
#3
|
||||
|
||||
Ошибка не здесь. И судя по этой строке:
Код:
OpenDialog.Destroy; Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#4
|
||||
|
||||
Может и так
Но факт остается фактом, если выбор файла все таки произошел через OpenDialog, то Settings.dat не создается |
#5
|
||||
|
||||
Полный код модуля в студию!
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#6
|
||||
|
||||
Странно как-то просто
Последний раз редактировалось Alxd, 19.05.2009 в 22:34. |
#7
|
||||
|
||||
Убрал все, что только можно - все равно не работает.
Помогите!!! А то уже разрыв мозга случился Р.S. Проектик прилагается |
#8
|
|||
|
|||
Вроде нормально сохранил, поправил:
Код:
EditPath1C.Text := OpenDialog1.FileName; Код:
AssignFile(SFile, 'C:\Settings.dat'); |
#9
|
||||
|
||||
Спасибо!!! Заработало!
А почему с неполным путем к файлу не работает. Есть этому объяснение? |
#10
|
|||
|
|||
Незнаю, я просто один раз так налетел и ini-файлами, теперь всегда пишу полный путь... Кстати для AssignFile полный путь вроде можно и не указывать
|
#11
|
||||
|
||||
Ясненько. Спасибо тебе!
|
#12
|
||||
|
||||
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#13
|
||||
|
||||
Цитата:
Спасибо за разъяснение! Теперь все стало понятно |