Показать сообщение отдельно
  #1  
Старый 28.03.2008, 19:44
kobezzza kobezzza вне форума
Прохожий
 
Регистрация: 28.03.2008
Сообщения: 13
Репутация: 10
По умолчанию Перевод из двоичной СИ в десятичную

Вообщем сам перевод я по сути сделал:

Код:
procedure TForm1.BinToDecClick(Sender: TObject);
var
i,result:integer;
bin:string;
begin
bin:=BinDec.Text;
result:=0;
for i:=1 to length(bin) do
begin
result:=result+(1 shl(length(bin)-i));
end;
tr.Caption:=IntToStr(result);
end;

Но вот такой вопрос: как указать, что если вводится числа отличные от 0 или 1, то программа выводит сообщение и сбрасывается, я делал так:

Код:
if not (bin in ['0','1']) then
begin
  ShowMessage('Ошибка');
  Exit;
end;

но не получается, выдаёт ошибку о несовместимости типов данных String и Сhar (((

И как сделать так, что программа считает по формуле
Код:
result:=result+(1 shl(length(bin)-i));
только лиш когда соответственный элемент строки равен 1 . Заранее благодарен.
Ответить с цитированием