Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Как записать массив в *.ini файл?   Найти похожие ветки 

 
Anthony   (2004-04-22 13:26) [0]

Hi All!
Люди добрые (профессионалы во всех вопросах), поделитесь соображениями: надо сохранить в .ini файле массив записей типа
 S: String;
 I1, I2: Integer;
переменной длинны. Есть ли какие-то стандартные решения даной задачи, или его прийдется изобретать самостоятельно?


 
PVOzerski ©   (2004-04-22 13:28) [1]

[element1]
S=ВАСЯ
I1=100
I2=1000
[element2]
S=Маруся
I1=1
I2=2


 
ASMiD   (2004-04-22 13:33) [2]

Под XP будет очень медленно работать.
А почему именно .INI ?


 
Андрей Сенченко ©   (2004-04-22 13:33) [3]

Соответственно
TIniFile.WRiteInteger()
TIniFileWriteString()


 
Anthony   (2004-04-22 13:34) [4]

М-да... Спасибо. Не успел сам подумать:)


 
Alex*   (2004-04-22 13:35) [5]

Если размер массива заранее известен циклом

procedure TForm1.WriteIni(ASection, AString, AValue : String);
var
  sIniFile: TIniFile;
  sPath : String[60];
begin
  GetDir(0,sPath);
  sIniFile := TIniFile.Create(sPath + "\Traffic.INI");
  sIniFile.WriteString(ASection, AString, AValue);; { [Section] String=Value }
  sIniFile.Free;
end;

пример всят из рассылки этого же сайта


 
Anthony   (2004-04-22 13:38) [6]

[2] Изначально был текстовый файл со значениями. Добавил новые параметры и словил глюка. А в ini - то же самое, только с названием переменной и читать легче.


 
Anthony   (2004-04-22 13:45) [7]

Спасибо. То что
 sIniFile := TIniFile.Create(sPath + "\Traffic.INI");
 sIniFile.WriteString(ASection, AString, AValue);
 sIniFile.Free;
- это я знаю. Я имел в виду именно алгоритм размещения в { [Section] String=Value } массива записей и [1] ответ меня устраивает. Разве что кто-то еще сможет предложить что-то.


 
ASMiD   (2004-04-22 13:49) [8]

Не очень понятно.
Что ты подразумеваешь под алгоритмом и зачем он нужен?

> алгоритм размещения в { [Section] String=Value }


 
Гаврила   (2004-04-22 14:00) [9]

Запиши его в виде HEX (строкой)


 
Alex*   (2004-04-22 14:14) [10]


> Anthony   (22.04.04 13:45) [7]
> Я имел в виду именно алгоритм размещения в
> { [Section] String=Value } массива записей и [1] ответ меня
> устраивает. Разве что кто-то еще сможет предложить что-то.


for i:=0 to максимальное значение масива do
begin
  WriteIni("String", "str"+IntToStr(i), значение);
  WriteIni("Integer", "int"+IntToStr(i), значение);
  .... и т.д.
end;


 
denisww ©   (2004-04-22 14:45) [11]

Ts:TStrings;

Ts:=TStringList.Create;
ts.add(record[1].String);
ts.add(IntToStr(record[1].Integer));
ts.add(FloatToStr(record[1].Float));
ts.add(DateToStr(record[1].Date));
ini.writeString("Array1","record1",ts.DelimitedText);

яп так сделал


 
denisww ©   (2004-04-22 14:48) [12]

и опратно доставал бы
Ts:TStrings;

Ts:=TStringList.Create;
ts.DelimitedText:=ini.readString("Array1","record1","");


 
Anthony   (2004-04-22 14:55) [13]

Круто! И, что удивительно, даже работает. Спасибо.


 
denisww ©   (2004-04-22 14:59) [14]

тока большой масив тама не стоит хранить


 
Alex*   (2004-04-22 16:01) [15]


> denisww ©   (22.04.04 14:45) [11]
> Ts:TStrings;
>
> Ts:=TStringList.Create;
> ts.add(record[1].String);
> ts.add(IntToStr(record[1].Integer));
> ts.add(FloatToStr(record[1].Float));
> ts.add(DateToStr(record[1].Date));
> ini.writeString("Array1","record1",ts.DelimitedText);
>
> яп так сделал

мона и так. кому как нравится


 
dmitry99 ©   (2004-04-22 16:18) [16]


> Alex*   (22.04.04 13:35) [5]


> denisww ©   (22.04.04 14:45) [11]


Чтобы было еще и культурно, надо и про try...finally...end не забывать.


 
Alex*   (2004-04-22 17:40) [17]


> dmitry99 ©   (22.04.04 16:18) [16]

Может быть и нужно для культуры try...finally...end, но я меня и без них все работает



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

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
6-1078666286
Gym
2004-03-07 16:31
2004.04.11
TIdTCPServer + несколько клиентов.


14-1082524697
Nikolay M.
2004-04-21 09:18
2004.04.11
"Корпоративные базы данных-2004" - кто идет?


3-1081845149
Dynamit
2004-04-13 12:32
2004.04.11
Проблема загрузки данных из файла в компонент ClientDataSet


14-1079446190
awersom
2004-03-16 17:09
2004.04.11
Сенсация!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


4-1078991879
Карелин Артем
2004-03-11 10:57
2004.04.11
Как получить права на запуск/остановку сервисов?