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




Вниз

еще раз про iniФайлы 


~Alice~   (2002-01-07 20:38) [0]

Всем привет! помогите плизз!
тут такое дело имеется листбокс в котором несколько строк все это надо записать в ini файл, делаю так заношу в переменную типа вот так:
s:="";
s:=s+listbox1.items.string[i]+"|";
в ini файле получается запись типа этой
wokfolder=c:\1|c:\2|c:\3|
Вопрос как мне при последующей загрузке формы все это считать обратно в листбокс (вроде как при обнаружении "|" -next).
спасибо заранее



3d[Power]   (2002-01-07 21:11) [1]

А чем тебе не подходит?:
listbox1.items.savetofile("a.txt");
listbox1.items.loadfromfile("a.txt");



~Alice~   (2002-01-07 21:48) [2]

как раз так сейчас и работает но получается много файлов которые в принципе не нужны можно же как то все запихать в ini



3d[Power]   (2002-01-07 21:57) [3]

Вот супер сырая функция, работоспособность не гарантирую, но если ее не напрягать то работает:

Function strpar(s : string; i: integer) : string;
var z : integer;
delim : integer;
begin
if s = "" then begin result := ""; exit;end;
delim := 0;
if i > 0 then begin
for z := 1 to length(s) do begin
if s[z] = "|" then inc(delim);
if delim = i then begin delim := z+1; break end;
end;
if delim < i then begin result := ""; exit;end;
end else delim := 1;
if delim = 0 then begin result := ""; exit; end;
//showmessage(s[delim]);
for z := delim to length(s) do
if (s[z] = "|") then
begin result := copy(s,delim, z-delim); exit end;
result := copy(s,delim,length(s)-delim+1);
end;


Символ помеченный жирным используется в качестве разделителя.

если у тебя стринг "dear|flower|other"
то strpar("dear|flower|other", 0) выдаст "dear".
то strpar("dear|flower|other", 1) выдаст "flower".



~Alice~   (2002-01-07 22:46) [4]

ок спасиб
завтра попробую



StelZ   (2002-01-08 01:09) [5]

Ну, вообще-то, можно и так (s - строка в ini, x - разделитель):

var
a: string;
begin
for i:=1 to length(s) do
begin
if s[i]=x then
begin
listbox1.Items.add(a);
a:="";
end
else a:=a+s[i];
end;
end;

Вот. Тогда listbox сразу заполняется... Теоретически должно работать :)



ValeraVV   (2002-01-08 07:06) [6]

Можно использовать свойство ListBox.Items.CommaText, см. help
Lists the strings in the TStrings object in system data format (SDF).

property CommaText: string;

Description

Use CommaText to get or set all the strings in the TStrings object in a single comma-delimited string.

When retrieving CommaText, any string in the list that include spaces, commas or quotes will be contained in double quotes, and any double quotes in a string will be repeated.




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




Наверх





Память: 0.73 MB
Время: 0.014 c
3-75495           Havez                 2001-12-19 18:52  2002.01.24  
Постоянно портится Autoincrement поле


3-75538           Xmen                  2001-12-19 07:59  2002.01.24  
Слияние таблиц это как? Помогите!


4-75723           B@Nt                  2001-11-23 12:47  2002.01.24  
Как через дельфи убрать с рабочего стола иконки


1-75593           d.romanov             2002-01-06 09:09  2002.01.24  
Запуск программ


3-75492           Killavit              2001-12-18 22:50  2002.01.24  
Индексация Таблиц