Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

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

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


 
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


 
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 ?


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

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


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

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


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

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


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

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


 
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;

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


 
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: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] ответ меня устраивает. Разве что кто-то еще сможет предложить что-то.


 
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 }


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

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

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


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

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


 
Гаврила   (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;


 
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: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","");


 
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]

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


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

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


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

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


 
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);
>
> яп так сделал

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


 
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 не забывать.


 
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, но я меня и без них все работает


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


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

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



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.038 c
14-1081675172
GanibalLector
2004-04-11 13:19
2004.05.09
Кличко


4-1078822013
twinc
2004-03-09 11:46
2004.05.09
WinXP shutdown


3-1081770754
Урмат
2004-04-12 15:52
2004.05.09
связь между таблицами


1-1082443759
an-na2002
2004-04-20 10:49
2004.05.09
Выполнение программы и TEdit


6-1075646902
grifff
2004-02-01 17:48
2004.05.09
IdSNMP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский