Форум: "Начинающим";
Текущий архив: 2012.05.27;
Скачать: [xml.tar.bz2];
Внизini файл Найти похожие ветки
← →
shaman (2012-01-23 01:19) [0]Подскажите, возможно ли в ini файле хранить многострочное значение?
← →
Германн © (2012-01-23 01:21) [1]Нет.
← →
Самуилыч (2012-01-23 05:24) [2]Можно, если применить искусственный прием - заменить разделители строк каким-нибудь спецсимволом (например #7)
← →
Dimka Maslov © (2012-01-23 09:31) [3]Можно даже двоичные данные, если применить base64 кодирование
← →
RWolf © (2012-01-23 09:40) [4]TStringList.CommaText, как вариант.
← →
Anatoly Podgoretsky © (2012-01-23 09:42) [5]> Самуилыч (23.01.2012 05:24:02) [2]
Все равно споткнется на длине строке, она очень маленькая. Но решение есть
заменить многострочный однострочным.
← →
Германн © (2012-01-23 12:11) [6]
> Но решение есть
не использовать ini-файл в целях, для которых он не предназначен.
← →
i2e (2012-01-23 13:36) [7]Как вариант применения, значения массива записал как строку с разделителями-точками между значениями.
Например, запись: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);
← →
RWolf © (2012-01-23 13:50) [8]
> [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;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.05.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c