![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использовать ini для процедуры сравнения [D7]
Garacio © (2007-01-17 16:36:00)Вопрос очень сложный: я хочу использовать файл .ini для двухкратного изменеия значения переменной. Т.е., в файле .ini, допустим, будет записано:
x1, x2 | y1
z1, z2 | y2
... (где "|" и "," - разделители)
а в коде программы, соответственно:
if Peremennaya=(x1 or x2) then Peremennaya:=y1;
if Peremennaya=(z1 or z2) then Peremennaya:=y2;
смысл такой! Как реализовать это по-проще?
Garacio (2007-01-18 11:32:00) [1]Чтож, ЮЮ, спасибо! Буду пытаться!
ЮЮ (2007-01-18 11:30:00) [2][y1], [y2] - это Section в методах чтения TIniFile. Их список TIniFile тоже дает.
Garacio (2007-01-18 11:28:00) [3]"Книги"-это для примера, суть - таже!
[y1]
1=X1
2=X2
[y2]
1=XX1
2=XX2
3=XX3
Выглядит красиво! А как работает?
P.S. СУБД не нужна? У меня таких (x1, x2 | y1) строчек будет всего 5-6.
ЮЮ (2007-01-18 11:13:00) [4]
> пропадают старые, и менять каждый раз из-за этого код -
> не выход!
Да уж, бесконечный поддержка приложения :)
Используй ini по полной схеме:
[y1]
1=X1
2=X2
[y2]
1=XX1
2=XX2
3=XX3
Сергей М. (2007-01-18 11:05:00) [5]
> Garacio © (18.01.07 11:00) [7]
Это что за книжный микроларек такой, что весь его товар можно учитывать с помощью ini-файла ?)
Любую подходящую СУБД использовать для этой цели не приходило в голову ?
Garacio (2007-01-18 11:00:00) [6]Книга продаётся сразу в нескольких томах (x1, x2 - названия томов), но в накладной они записываются, как "y1". Соответственно, для того чтобы проверить наличие "x1" или "x2", мне необходимо проверить по накладной - пришло ли "y1"! (т.е. "x1"="y1" и "x2"="y1") Моя проблема - нельзя присвоить одной переменной "y1" два значения, и я надеюсь решить её с помощью .ini и цикла, в котором перебираются значения. Почему .ini? - "книги" появляются новые, пропадают старые, и менять каждый раз из-за этого код - не выход!
ЮЮ (2007-01-18 09:46:00) [7]x1, x2 | y1
z1, z2 | y2
if Peremennaya=(x1 or x2) then Peremennaya:=y1;
if Peremennaya=(z1 or z2) then Peremennaya:=y2;
смысл такой! Как реализовать это по-проще?
Смотря сходу не читается :) У меня, по-крайней мере, возникла пара разных толкований.
Лучше четко изложи мысль, ЧТО должно выполниться, при наличии, а что при отсутствии строки
x1, x2 | y1
и что изменится, если строка будет
x1, x2 | y 2
И, наконец, что хотел получить, пытаясь это ревлизовать.
novill (2007-01-18 09:14:00) [8]> [4] Garacio © (18.01.07 08:59)
поэтому
в ини-файле напиши просто
x1=...
x2=...
y1=...
...
и с помощью readinteger их считывай.
Garacio (2007-01-18 08:59:00) [9]Да-а, Rial, разобраться бы ещё в написанном ;-)
Rial (2007-01-17 17:22:00) [10]tmpStr:=ReadString(..);
P1:=Pos(',', tmpStr);
P2:=Pos('|', tmpStr);
If (Value = StrToXXX(Copy(tmpStr, 1, P1 - 1)))or
(Value = StrToXXX(Copy(tmpStr, P1 + 1, P2 - P1 - 1))) then
Value:=StrToXXX(Copy(tmpStr, P2 + 1, Length(tmpStr) - P2));
novill (2007-01-17 16:46:00) [11]Проще всего будет если вы НОРМАЛЬНО запишите в ini файл свои переменные , а не
> x1, x2 | y1
> z1, z2 | y2
тогда и считывать будет просто
Джо (2007-01-17 16:45:00) [12]А в чем конкретно затруднение?