Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Norilchanin
0 / 0 / 0
Регистрация: 08.08.2016
Сообщений: 4
1

Boolean=-1?

08.08.2016, 23:14. Просмотров 777. Ответов 4
Метки нет (Все метки)

Доброго времени суток, возникла такая ситуация: Записываю в ini файл значения, проверяю файл все в норме, начинаю считывать значения с помощью команды ReadBool, затем произвожу сравнение ничего не происходит. Решил посмотреть, что происходит внутри с помощью команды ShowMessage, показало, что там где значения принимают 1 считывается -1. Привожу кусок кода и очень прошу помочь мне с этим вопросом.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm3.Button2Click(Sender: TObject);
var
i:integer;
st:string;
bool:boolean;
begin
 nametown:=ListBox2.Items[ListBox2.ItemIndex];
 Ini:=TiniFile.Create(GetCurrentDir+'/config/country and town/'+namecountry+'/'+nameregion+'/'+nametown+'.ini');
 ini.ReadSection('factory',Listbox11.Items);
  for I := 1 to ListBox11.Items.Count-1 do
   begin
    st:=ListBox11.Items[i];
    ini.ReadBool('factory',st,bool);
    ShowMessage(booltostr(ini.ReadBool('factory',st,bool)));
    if bool=true then
     begin
       ShowMessage(st);//Изначально здесь была запись в другой ListBox
     end;
   end;
   Ini.Free
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2016, 23:14
Ответы с готовыми решениями:

Условие boolean
Имеется case case a of 1: b := '123'; 2: b := '245'; 3: b :=...

функция типа boolean
вообщем есть функция function Valid: Boolean;в конце функции result...

Преобразовать String в Boolean
Добрый день. Прошу помощи. Есть ини-файл из которого подтягиваются настройки....

Type of expression must be BOOLEAN
Эх блин ещё с одной программой ошибка((( не поможете разобраться???

Ошибка Type of expression must be BOOLEAN
procedure TForm1.Button10Click(Sender: TObject); var i: integer ; begin For...

4
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
08.08.2016, 23:35 2
Norilchanin, тут в интернете пишут, что BoolToStr превращает true в -1...

пруф
1
northener
пофигист широкого профиля
3423 / 2323 / 630
Регистрация: 15.07.2013
Сообщений: 13,747
09.08.2016, 01:05 3
Цитата Сообщение от Norilchanin Посмотреть сообщение
Доброго времени суток, возникла такая ситуация: Записываю в ini файл значения
Записываешь сам? Записывай с помощью WriteBoolean и читай с помощью ReadBoolean!
Не используй ReadBool! Оно для совместимости с Сишниками.
1
DenNik
Непрофессионал
1801 / 1406 / 307
Регистрация: 26.07.2011
Сообщений: 7,859
09.08.2016, 10:28 4
Цитата Сообщение от Norilchanin Посмотреть сообщение
GetCurrentDir+'/config/country and town/'+namecountry+'/'+nameregion+'/'+nametown+'.ini'
попробуй функцию
Delphi
1
Format('%s/config/country and town/%s/%s/%s.ini',[GetCurrentDir,namecountry,nameregion,nametown])
вообще, полезная функция. разберись с ней, понравится
1
Norilchanin
0 / 0 / 0
Регистрация: 08.08.2016
Сообщений: 4
09.08.2016, 12:44  [ТС] 5
Cпасибо c BoolToStr разобрался, но тем не менее вопрос остался, почему , считывая командой ReadBool, ни одна переменная не принимает значения true, если изначально они были записаны в файл с помощью команды WriteBool?
Delphi
1
2
3
4
 if bool=true then
     begin
       ShowMessage(st);//Изначально здесь была запись в другой ListBox
     end;
Добавлено через 4 минуты
Записываю с помощью WriteBool. Попробовал записывать и считывать как вы сказали, ошибка undeclared identifier, гугл не помог, в чем может быть проблема?

Добавлено через 24 минуты
Цитата Сообщение от DenNik Посмотреть сообщение
попробуй функцию
Delphi
1
Format('%s/config/country and town/%s/%s/%s.ini',[GetCurrentDir,namecountry,nameregion,nametown])
вообще, полезная функция. разберись с ней, понравится
Спасибо, действительно очень полезная функция
0
09.08.2016, 12:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2016, 12:44

Ошибка: Type of expression must be BOOLEAN
Собственно писал программку и мне надо если поток заканчивает работу, писало...

что означает компонент boolean?
среда программирования Delphi7! интересует компонента которая называется...

Логическая операция Boolean программа
Не подскажете где можно взять полную информацию о логических функциях в дельфи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru