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

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

Использовать 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]

А в чем конкретно затруднение?


Наверх

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