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

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

ini файл [D2005, XP]


shaman ©   (2012-01-23 01:19:00) 

Подскажите, возможно ли в ini файле хранить многострочное значение?


RWolf   (2012-01-23 13:50:00) [1]


> [7]

sl:=TStringList.Create;
sl.CommaText:=Ini.ReadString ('TabSheet5', 'spCheck', '0,0,0,0,0,0');
for i := 1 to s2 do spCheck[i] := StrToIntDef(sl[i], 0);
sl.Free;


i2e   (2012-01-23 13:36:00) [2]

Как вариант применения, значения массива записал как строку с разделителями-точками между значениями.

Например, запись:
Str := '1.1.2.55.0.0';
Ini.WriteString ('TabSheet5', 'spCheck',  Str);


Для чтения написал такую функцию:

 function SelectNextNmr(Sx:string): integer;
 var cmPos: integer;
 begin
   S1 := Sx;
   cmPos := Pos('.', Sx);            // найти '.'
   if cmPos <> 0 then begin
     Delete(S1, 1, cmPos); // удалить от начала до первой '.' -> S1 для последующ обработки
     Delete(Sx, cmPos, Length(Sx)); // удалить от первой '.' до конца
   end
   else begin // '.' не найдена
     if (Length(Sx) > 0) then SelectNextNmr := StrToInt(Sx)
                         else SelectNextNmr := 0;
     S1 := '';
     Exit;
   end;
   SelectNextNmr := StrToInt(Sx);
 end;


Чтение:

 ...
 S1 := Ini.ReadString ('TabSheet5', 'spCheck',  '');
 for N1 := 1 to s2 do spCheck[N1] := SelectNextNmr(S1);


Германн   (2012-01-23 12:11:00) [3]


> Но решение есть

не использовать ini-файл в целях, для которых он не предназначен.


Anatoly Podgoretsky   (2012-01-23 09:42:00) [4]

> Самуилыч  (23.01.2012 05:24:02)  [2]

Все равно споткнется на длине строке, она очень маленькая. Но решение есть
заменить многострочный однострочным.


RWolf   (2012-01-23 09:40:00) [5]

TStringList.CommaText, как вариант.


Dimka Maslov   (2012-01-23 09:31:00) [6]

Можно даже двоичные данные, если применить base64 кодирование


Самуилыч   (2012-01-23 05:24:00) [7]

Можно, если применить искусственный прием - заменить разделители строк каким-нибудь спецсимволом (например #7)


Германн   (2012-01-23 01:21:00) [8]

Нет.


Наверх

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