Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование ini для загрузки настроек програмы


Страницы:   1 2

WebSQLNeederr ©   (2007-11-24 12:52:00) 

Есть задача хранить список адресов сайтов в каком то файле. Изначально неизвестно сколько в списке будет записей, может быть один а может и 100. Список - это название сайта, его урл ну и еще пару параметров.

Вот, я пытаюсь его прочитать с помощью чтения ини файлов.

uses inifiles;

procedure Load(fname:string);
var inifile:TIniFile;
begin
 inifile:=TIniFile.create;
 with inifile do
 begin
   ReadString('Saiti','name','');
   ReadString('Saiti','url','');
 end;
 inifile.destroy;
end;

В коде могут быть маленькие неточности так как пишу по памяти, я сейчас не в Делфи.

Вот собственно вопрос - этот код читает только одну связку имени файла и его урла. А как организовать что бы оно читало все?? Скажем у меня этих связок будет 100...

Или может для таких целей инифайлы вообще не предназначины? тогда что посоветуете?


Dennis I. Komarov   (2007-11-27 11:56:00) [1]

> [23] Anatoly Podgoretsky ©   (27.11.07 11:34)

ИМХО исходя из задачи. Я не настаиваю на выборе определенного варианта. Это оставим автору.


Anatoly Podgoretsky   (2007-11-27 11:34:00) [2]

> Dennis I. Komarov  (27.11.2007 09:48:22)  [22]

Что бы шаловливые ручки не лезли, куда не положено. Что всегда удобно, чем потом бороться с последствиями.


Dennis I. Komarov   (2007-11-27 09:48:00) [3]

> [21] HF-Trade ©   (27.11.07 04:42)

Использование типизироваттых файлов иногда затрудняет их редактирование. В данном случае исправить ini файл можно с помощью "любого" текстового редактора. Использование типизированного файла, предполагает наличие интерфейса для его редактирования, что не всегда удобно.


HF-Trade   (2007-11-27 04:42:00) [4]

TRecord?

 Type
 TMyUrls=Record
 Name:String[255];
 Param1:String[255];//или че там?
 Param2:String[255];
 end;
........
var
MyUrl:TMyUrls;
FMyUrl:File of TMyUrls;
.........
While Not EOF FMyUrl do
Begin
Read(FMyUrl,MyUrl);
......

или я не догнал че та....


Dennis I. Komarov   (2007-11-26 17:53:00) [5]

> [18] KSergey ©   (26.11.07 17:48)

[4] иммеет место к [1] :)


Dennis I. Komarov   (2007-11-26 17:51:00) [6]

> [18] KSergey ©   (26.11.07 17:48)

Мне :)


KSergey   (2007-11-26 17:48:00) [7]

> Dennis I. Komarov ©   (26.11.07 16:11) [14]
> Код в [11] не имеет отношение к коду программы.

как же, как же.
А вот тут написано иное. Кому верить?

> WebSQLNeederr   (24.11.07 14:05) [4]
> KilkennyCat, ну как вы себе это представляете? Что бы добавить
> один сайт в список нужно будет перекомпелировать программу, хе-хе.

:)


Dennis I. Komarov   (2007-11-26 17:07:00) [8]

> [16] Goric ©   (26.11.07 16:52)

Для данной задачи ИМХО ini выгоднее, т.к. не требует Parsera XML.


Goric   (2007-11-26 16:52:00) [9]

> И что, при добавлении сайта программу перекомпилировать?
> ?!!

Было предложено хранить данные в файлах *.xml, и парсить их динамически с пощью, скажем, класса TXMLDocument, но не как не компилировать с кодом.


Dennis I. Komarov   (2007-11-26 16:14:00) [10]

> [10] nstur   (25.11.07 15:18)

Глупость то какая


Dennis I. Komarov   (2007-11-26 16:11:00) [11]

> [12] KSergey ©   (26.11.07 16:04)

Код в [11] не имеет отношение к коду программы.


KSergey   (2007-11-26 16:08:00) [12]

> nstur   (25.11.07 15:18) [10]
> Добавь еще секцию - кол-во URL и сделай по ним цикл.

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


KSergey   (2007-11-26 16:04:00) [13]

> Goric ©   (26.11.07 14:34) [11]
> Рассмотри как возможное хранение инфы в таком вот виде:

И что, при добавлении сайта программу перекомпилировать??!!


Goric   (2007-11-26 14:34:00) [14]

Рассмотри как возможное хранение инфы в таком вот виде:

<?xml version="1.0" encoding="XXXXX"?>
<Sites>
  <Site id="1">
     <URL> http://bla-bla-bla.com</URL>
     <Param1>ParamValue1</Param1>
     <Param2>ParamValue2</Param2>
     <Param3>ParamValue3</Param3>
     <ParamN>ParamValueN</ParamN>
   </Site>
  <Site id="2">
     <URL> http://bla-bla-bla.com</URL>
     <Param1>ParamValue1</Param1>
     <Param2>ParamValue2</Param2>
     <Param3>ParamValue3</Param3>
     <ParamN>ParamValueN</ParamN>
   </Site>
</Sites>


nstur   (2007-11-25 15:18:00) [15]

Добавь еще секцию - кол-во URL и сделай по ним цикл.


Che Vingam   (2007-11-24 18:11:00) [16]

Если как в WebSQLNeederr   (24.11.07 14:07) [5]

 Sections : TStringList;

 ...
 Ini.ReadSections(Sections);

 for i:=0 to Sections.Count -1 do
 begin
   Name[i] := Ini.ReadString(Sections[i], 'Name', '?');
   URL[i] := Ini.ReadString(Sections[i], 'URL', '?');
   ....
 end;


или можно не в массиве перебирать, а ReadSection, ReadSectionValues.


vegarulez   (2007-11-24 14:44:00) [17]

Не понял что тебе не понятно.... в твоём ответе WebSQLNeederr   (24.11.07 14:07) [5] ты сам всё правильно делаешь...
Так перебирай в цикле эти параметры при считывании с ини файла  пусть у тебя их хоть 1000 будет... и ничего не придётся перекомпиливать...


KilkennyCat   (2007-11-24 14:20:00) [18]


> KilkennyCat, ну как вы себе это представляете? Что бы добавить
> один сайт в список нужно будет перекомпелировать программу,
>  хе-хе.


не стоит сразу пихать в код то, что здесь пишут. я спрашивал о структуре. Что все-таки неясно? Как с циклами работать?


Плохиш   (2007-11-24 14:13:00) [19]


> WebSQLNeederr   (24.11.07 14:05) [4]

В хелпе по TIniFile всё прекрасно расписано. А в чём твоя проблема совершенно не понятно...


WebSQLNeederr   (2007-11-24 14:07:00) [20]

Хм, а лучше наверное вот так:

[1]
Name=imia
URL = http://bla-bla-bla.com
param1=param1
paramN=paramN

[2]
Name=imia
URL = http://bla-bla-bla.com
param1=param1
paramN=paramN

[3]
Name=imia
URL = http://bla-bla-bla.com
param1=param1
paramN=paramN


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо