Главная страница
    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.036 c
14-1081776534
Nick-From
2004-04-12 17:28
2004.05.09
Что можно реально делать с Bluetooth и Wi-Fi в КПК?


8-1076342936
Сережа
2004-02-09 19:08
2004.05.09
Рисование


7-1080207035
Insert
2004-03-25 12:30
2004.05.09
Инфо о жестком диске


1-1082424190
kaif
2004-04-20 05:23
2004.05.09
Как узнать текущий номер билда?


3-1081768638
very beginer
2004-04-12 15:17
2004.05.09
Вопрос по ADO





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский