Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с INI файлами 
:(
    Опции темы
Lonley
Дата 23.6.2004, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



Здравствуйте smile.gif

Код

 Ini   : TIniFile;
.....

  INI.ReadSections(....);

в частности интересует как работает процедура ReadSection или ReadSections
для чего они нужны sad.gif если можно то с примером
---------------------

и существует ли возможность считать НАЗВАНИЕ ключей, узнать количество незная ИХ

Это сообщение отредактировал(а) Lonley - 23.6.2004, 23:06


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
NiJazz
Дата 23.6.2004, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Lonley
Кажется, встроенную справку в Delphi еще никто не отменял. smile.gif

procedure ReadSection (const Section: String; Strings: TStrings); override;
Считывает названия ключей из определенной секции INI-файла в список строк Strings.

procedure ReadSections(Strings: TStrings); override;
Считывает названия ключей из всех секций INI-файла в список строк Strings.

Вот пример из справки:
Код
uses IniFiles;
procedure TForm1.FormActivate(Sender: TObject);

var
 AppIni: TIniFile;
begin
 AppIni := TIniFile.Create('WIN.INI');
 AppIni.ReadSections(ListBox1.Items);
 AppIni.ReadSection('Ports',Listbox2.Items);
 AppIni.ReadSectionValues('Ports',ListBox3.Items);
 AppIni.Free;
end;



PM MAIL   Вверх
Lonley
Дата 24.6.2004, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



NiJazz СПАСИБО
впредь буду смотреть smile.gif
--------------------------------------
Неполучается использовать переменную класса TStrings
у нее должны быть свойства Names и Values как раз для работы с ИНИШКАМИ
, но не получается что ли ее инициализировать
Код

Var
  SKP  : TSes_Key_Par;
  SPar : TStrings;
begin
{}
  Ini  := TIniFile.Create('c:\wert.ini');
  SPar := TStrings.Create;
  SPar.Capacity := 20;
  Ini.ReadSection('w1',SPar);  

выдает ошибку ABstract ERRROR sad.gif что еще нужно не пойму

Это сообщение отредактировал(а) Lonley - 24.6.2004, 00:50


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
stab
Дата 24.6.2004, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



Lonley, используй TStringList.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Lonley
Дата 24.6.2004, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



СПАСИБО ВСЕМ Я УЖЕ пронял только почему в книгах не пишут что этот класс не для работы


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
Albinos_x
Дата 24.6.2004, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



cully был прав

Это сообщение отредактировал(а) Albinos_x - 24.6.2004, 01:50


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Medved
Дата 24.6.2004, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Прежде чем работать с экземпляром объекта TStrings, надо устанавливить его размер с помощью функии SetLength.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Lonley
Дата 24.6.2004, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



Цитата(Pegas @ 24.6.2004, 05:36)
Прежде чем работать с экземпляром объекта TStrings, надо устанавливить его размер с помощью функии SetLength.

это получается установка размера массива точно также как в динамических массивах
Я прав thumbs-up.gif


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
Lonley
Дата 24.6.2004, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



Pegas

У меня куча книг, но там сказано только про динамические массивы а установка функцией
SetLength переменной класса TStrings не удается из-за несовместимости типов
Код

Var
  //SKP  : TSes_Key_Par;
  SPar  : TStringList;
  gg    : Integer;
----------------------------
  SPr2  : TStrings;
----------------------------
begin
{}
 SetLength (SPr2,....) - выдает ошибку

пожалуйста подскажите как сделать правильно


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
stab
Дата 24.6.2004, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



через TStringList...

Код

uses IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
var
 ini: TIniFile;
 strs: TStringList;
 i: Integer;
begin
 ini := TIniFile.Create('c:\test.ini');
 strs := TStringList.Create;
 ini.ReadSection('section name', strs);
 for i := 0 to strs.Count - 1 do
   ShowMessage(strs[i]);
 strs.Free;
 ini.Free;
end;



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Lonley
Дата 24.6.2004, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



Цитата(cully @ 24.6.2004, 16:07)
через TStringList...

Код

uses IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
var
 ini: TIniFile;
 strs: TStringList;
 i: Integer;
begin
 ini := TIniFile.Create('c:\test.ini');
 strs := TStringList.Create;
 ini.ReadSection('section name', strs);
 for i := 0 to strs.Count - 1 do
   ShowMessage(strs[i]);
 strs.Free;
 ini.Free;
end;


Гм.... но это я сделал как только мне сказали про StringList, но Pegas cазал
Цитата

Прежде чем работать с экземпляром объекта TStrings, надо устанавливить его размер с помощью функии SetLength.

так сначит всетаки можно butbut.gif

Это сообщение отредактировал(а) Lonley - 24.6.2004, 21:59


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
StayAtHome
Дата 25.6.2004, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: 1
Всего: 16



Цитата
так сначит всетаки можно

НЕТ! IMHO, Pegas ошибся. TStrings -- абстрактный класс, который невозможно напрямую создавать. Исользуй только TStringList. Хотя, можно попробовать так:
Код

var
 Strings: TStrings;
.....
Strings:=TStringList.Create;



Такой финт может потребоваться для обратной совместимости с родительскими свойствами, но обычно -- не требуется.

Если я в чем-то не прав, -- пишите.
PM MAIL WWW ICQ YIM   Вверх
Lonley
Дата 25.6.2004, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



Всем спасибо.... thumbs-up.gif


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
Medved
Дата 25.6.2004, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(StayAtHome @ 25.6.2004, 03:38)
Цитата
так сначит всетаки можно

НЕТ! IMHO, Pegas ошибся. TStrings -- абстрактный класс, который невозможно напрямую создавать. Исользуй только TStringList.

Если я не ошибаюсь, с ним можно работать (по крайней мере в 5-ке я с ним работал) Только прежде необходимо задать его размерность. Если честно, то я забыл, как я это делал.

А вообще, согласен, необходимо использовать TStringList.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
_hunter
Дата 25.6.2004, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



может после 5-й компонент поменялся, но это дейсвительно абстрактный класс


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1035 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.