Консультация № 56639
25.09.2006, 13:01
0.00 руб.
0 5 4
Добрый день! помогите разобраться с ошибкой!
заранее благодарен

Приложение:
for i:=1 to edit1.GetTextLen dobegins1:=copy(Edit1.Text,i,1);case s1 of‘a‘,‘б‘,‘в‘:w:=1;‘е‘:w:=2;‘д‘:w:=3;end;end;

Обсуждение

Неизвестный
25.09.2006, 13:12
общий
это ответ
Здравствуйте, ERA!
-------------------------------
см. приложение.

Приложение:
procedure TForm1.ButtoneditClick(Sender: TObject);var i: integer; s1: char; w: word;begin for i := 1 to edit1.GetTextLen do begin s1 := Edit1.Text[i]; case s1 of ‘a‘, ‘б‘, ‘в‘: w := 1; ‘е‘: w := 2; ‘д‘: w := 3; end; end;end;
Неизвестный
25.09.2006, 13:18
общий
это ответ
Здравствуйте, ERA!

Я думаю у Вас была ошибка связанная с тем, что переменная <b><font color=purple>s1:string;</font></b>. А в <b><u>case </u></b> можно использовать только перечисляемые типы (для Вашего случая <b><u>Char</u></b>).

<font color=blue><u>Вобщем смотрите код в приложении!!!</u></font>

Удачи!!!

Приложение:
procedure TForm1.Button1Click(Sender: TObject);var i,w:integer; s:string; s1:char;begin for i:=1 to edit1.GetTextLen do begin s:=copy(Edit1.Text,i,1); s1:=s[1]; case s1 of ‘а‘,‘б‘,‘в‘:w:=1; ‘е‘:w:=2; ‘д‘:w:=3; end; ShowMessage(s1+inttostr(w)); end;end;
Неизвестный
25.09.2006, 13:31
общий
это ответ
Здравствуйте, ERA!

Я так понимаю ошибка у Вас возникает в операторе "case" - он не работает с переменными типа String,
поэтому используйте место String - Char а в своем коде замените s1 := copy(edit1.text,i,1) на s1 := edit1.text[i] и все должно заработать
Неизвестный
25.09.2006, 13:50
общий
Круто, конечно. Я вначале вообще не понял, в чем ошибка - просто код приведен, а где ошибка, типа сами ищите =)
Неизвестный
25.09.2006, 17:15
общий
это ответ
Здравствуйте, ERA!
Ошибка в том что вместо порядкового типа char вы исользуете строковый тип string
Существует несколько вариантов решения этой проблемы, предлагаю Вам самые простые


Приложение:
for i:=1 to edit1.GetTextLen dobegins1:=copy(Edit1.Text,i,1); //можно две эти строчкиcase s1[1] of //заменить на case Edit1.text[i]‘а‘,‘б‘,‘в‘:w:=1;‘е‘:w:=2;‘д‘:w:=3;end;end;
Форма ответа