Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.07.2011, 15:54   #1
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию Преобразовать String в Boolean

Добрый день. Прошу помощи.
Есть ини-файл из которого подтягиваются настройки. Вид такой:
[Proxy]
ip=0
port=0
name=0
password=0
useProxy=true

Нужно что бы если useProxy=true, то CheckBox1.Checked = true, а если useProxy=false, то и CheckBox1.Checked = false
В проге код такой:
CheckBox1.Checked:=ini.ReadString(' Proxy','useProxy','false');
Но выдает ошибку Incompatible types: 'Boolean' and 'String'. Я понимаю что разные типы, но как решить проблему не знаю. Помогите решить проблему пожалуйста.
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума
Старый 24.07.2011, 16:06   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

сравнивай строки
Код:
get_str = ini.ReadString(' Proxy','useProxy','false');
CheckBox1.Checked = (get_str == "true") ? true : false;
NiCola999 вне форума
Старый 24.07.2011, 16:12   #3
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Я забыл написать что пишу прогу в Делфи.
NiCola999 , мне не совсем понятно что и как делать.
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума
Старый 24.07.2011, 16:14   #4
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Код:
CheckBox1.Checked = (get_str == "true") ? true : false;
Всегда веселят подобные выражения. Не легче ли написать так?
Код:
CheckBox1.Checked = get_str == "true";
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума
Старый 24.07.2011, 16:16   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

я в курсе про делфи, я думал ты итак поймешь идею

что возвращает ini.ReadString(' Proxy','useProxy','false'); ?


ctrl в умники записался ?
NiCola999 вне форума
Старый 24.07.2011, 16:18   #6
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Строку. А что и как потом сравнивать?
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума
Старый 24.07.2011, 16:18   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а TINIFile.WriteBoolean как пишет данные?

может и не надо извращаться то...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 24.07.2011, 16:20   #8
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
ctrl в умники записался ?
Звучит как наезд, кхм. И по-вашему я не прав?
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума
Старый 24.07.2011, 16:24   #9
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

ctrl
я никакой разницы не вижу между моей записью и вашей. Я в курсе, что так можно писать. Зачем выпендриваться ?
NiCola999 вне форума
Старый 24.07.2011, 16:27   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

по правильному (т.е. так, как задумали и реализовали создатели INI файлов) булевские переменные пишутся и читаются специальными функциями WriteBool() и ReadBool()
При этом в файле записывается 0 или 1
т.е. в вашем случае будет useProxy=1 или useProxy=0

поэтому у Вас два способа решить вашу проблему.

1) писать в файл так:
Код:
ini.WriteBool('Proxy','useProxy',CheckBox1.Checked);
читать так:
Код:
CheckBox1.Checked := ini.ReadBool('Proxy','useProxy', false {или true - это значение "по умолчанию", если в INI нет нужного параметра})
если же Вам прининципиально нужно, чтобы в INI было именно строка 'true' или 'false'
тогда читайте так:
Код:
CheckBox1.Checked := UpperCase(ini.ReadString(' Proxy','useProxy','false')) = 'TRUE';

Последний раз редактировалось Serge_Bliznykov; 24.07.2011 в 16:29.
Serge_Bliznykov вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать формат String Ma4balaka Общие вопросы Delphi 2 21.11.2010 17:33
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57
Разработать функцию на С++ ls5Latin(constS:string):boolean GTP_edition Общие вопросы C/C++ 3 25.04.2008 18:25
Преобразовать из string в array of char vitalik007 Общие вопросы Delphi 6 07.09.2007 01:15
Как преобразовать TextFile в String? DragonionS Паскаль, Turbo Pascal, PascalABC.NET 1 06.06.2007 18:38