![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.10.2007
Сообщений: 36
|
![]()
Всем привет.
У меня такая проблема. Необходимо осуществить вывод некоторых параметров из *.ini файла в Label(n). С созданием формы и диалогом для открытия файла я разобрался. Не могу осуществить вывод параметров. Приму любую помощь, как конкретную, так и ссылки. За ранее благодарен. PS Зачем мне это нужно? На работе программа обслуживающая оборудование сохраняет свои настройки в *.ini файлы (объёмом 38~96 kB и примерно в 4500 строк). Понятно, что просмотреть это вручную глобально. Мне необходимо визуализировать только особо важные параметры. Отрывок из *.ini: --- ... aoLAuxMovDelay=0 aoLAuxMovDuration=0 [frmHeatersCompact] txtMaterial=Mat.1 PROZone_0=35 DNEGZone_0=10 DPOSZone_0=10 PREZone_1=140 PROZone_1=165 DNEGZone_1=15 DPOSZone_1=15 PREZone_2=140 PROZone_2=170 DNEGZone_2=15 ... --- |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]() Код:
----------------------------------- еще там есть ReadSection('секция',Str); //записывает в Str имена всех параметров из секции ReadSections(Str); //записывает в Str имена всех секций здесь Str: TStrings, список строк Последний раз редактировалось _Dmitry; 24.10.2007 в 20:48. |
![]() |
![]() |
![]() |
#3 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.10.2007
Сообщений: 36
|
![]()
Не понимаю :(
Сразу спотыкаюсь об TIniFile procedure TForm1.Button1Click(Sender: TObject); var IniF: TIniFile; При компиляции выдаёт ошибку: [Ошибка] Unit1.pas(85): Undeclared identifier: 'TIniFile' Хотя если заменить TIniFile на TextFile, то эта стока проходит. Последний раз редактировалось grey; 24.10.2007 в 22:07. |
![]() |
![]() |
![]() |
#4 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
Просто нужно ручками прописать в разделе USES модуля еще один - INIFILES... И все будет оки... |
|
![]() |
![]() |
![]() |
#5 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.10.2007
Сообщений: 36
|
![]()
Спасибо, помогло :)
Но дальше опять застрял, не могу сам разобраться, сколько ни бьюсь, и в имеющейся инфе ни чего подходящего не нашёл. Я хотел использовать станд. диалоговое окно выбора файла. Пример взял из книги и переделал под себя: Код:
Если оставить Код:
то [Ошибка] Unit1.pas(99): Undeclared identifier: 'f' (Необъявленный идентификатор: 'f') PS Окно выбора необходимо, т.к. *.ini файлы имеют разные имена (при сохранении настроек наладчик сам задаёт произвольное имя "рецепта") и могут находиться в разных местах. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]()
IniF это не файловая переменная, это объект класса TIniFile для работы с ini файлами, он создается следующим образом IniF:=TIniFile.Create('путь к ini файлу'); это вместо AssignFile
У вас будет: IniF:=TIniFile.Create(fName); после создания этого объекта можете читать и писать в этот файл, например, читать значение параметра PROZone_1 из секции frmHeatersCompact X:=IniF.ReadInteger('frmHeatersComp act','PROZone_1',100); после выполнения X=165, как вы написали выше, если по каким-то причинам этого параметра нет в файле X=100. Если для работы использовать обычный текстовый файл, как вы пытаетесь делать, то вам самому придеться писать функции для поиска строк в файле, анализа этих строк, чтобы взять значение параметра и т.п. Последний раз редактировалось _Dmitry; 25.10.2007 в 21:01. |
![]() |
![]() |
![]() |
#7 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
У вас что, разрешение экрана 640х480? Ни черта же не видно! |
|
![]() |
![]() |
![]() |
#8 | ||
Пользователь Подтвердите свой е-майл
Регистрация: 24.10.2007
Сообщений: 36
|
![]() Цитата:
Вариант с прописыванием адреса мне ни как не подходит. Придётся как с текстовым париться... Цитата:
PS Opera Версия 9.21 Сборка 641 Платформа Linux Система i686, 2.6.17-13mdv Прошу сильно не смеяться :) |
||
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]() Цитата:
Держи, в качестве примера, работающую программу. Файл test.ini создан по вашим данным (post #1). |
|
![]() |
![]() |
![]() |
#10 | |
Пользователь Подтвердите свой е-майл
Регистрация: 24.10.2007
Сообщений: 36
|
![]() Цитата:
Я честно говоря со всей серьёзностью взялся за изучение незнакомого (до этого баловался только скриптами в Линуксе и скриптами InqSoft Sign 0f Misery под Виндовс), а тут уже за меня всё написано. Осталось только форму расписать под хохлому :) Сегодня пока на работе был, строил планы: приду домой, заставлю программу сначала скопировать любой файл в C:\\temp_\1.ini , а потом читать его по заранее заданному адресу. Ещё раз огромное спасибо и тебе и этому форуму :) |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Импорт и удаление некоторых строк | Alex2008 | Microsoft Office Excel | 3 | 06.05.2008 18:26 |
Вывод в label | forumu | Помощь студентам | 9 | 19.11.2007 21:36 |
нужна помошь новичку. не могу получить вывод в label. | Cor88 | Общие вопросы Delphi | 12 | 30.09.2007 20:19 |
Вопрос по label. Как сделать так чтобы label была прозрачной. | Lonix | Компоненты Delphi | 2 | 01.04.2007 06:23 |
Вывод графики с использованием отображаемых файлов | Евгения | Общие вопросы Delphi | 1 | 20.02.2007 20:37 |