String. Исправьте ошибку - VB

Формулировка задачи:

Дана строка. Если она представляет собой запись целого числа, то вывести 1, если вещественного (с дробной частью) — вывести 2; если строку нельзя преобразовать в число, то вывести 0. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.». Вот так выглядит в Pascal
var s:string;
     r:real;
     t,c:integer;
begin
write('s=');
readln(s);
val(s,t,c);
if c=0 then write('1')
else
 begin
  val(s,r,c);
  if c=0 then write('2') 
  else write('0');
 end;
readln
end.
Вот так пытался сделать в Basic
Private Sub CommandButton1_Click() 
Dim s As String, i, err As Integer, r As Double 
s = Val(TextBox1.Text) 
For i = 1 To Len(s) 
err = Mid(s, i, 1) 
''val(s,i,err); 
If err = 0 Then 
TextBox2.Text = "1" 
Else 
err = Mid(s, r, 1) 
''val(s,r,err); 
If err = 0 Then 
TextBox2.Text = "2" 
Else 
TextBox2.Text = "0" 
End If 
End If 
Next i 
End Sub
Программа жалуется.


textual

Код к задаче: «String. Исправьте ошибку - VB»

Option Explicit
Dim WithEvents tx As TextBox, WithEvents cb As CommandButton
 
Private Sub tx_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case 48 To 57, 8
    Case 44, 46, 225, 254
        If InStr(1, tx, ",") Then KeyAscii = 0 Else KeyAscii = 44
    Case Else: KeyAscii = 0
    End Select
End Sub
 
Private Sub cb_Click()
    Const rz = "Результат = "
    If Not IsNumeric(tx) Then
        Caption = rz & 0
    ElseIf Fix(tx) = tx Then Caption = rz & 1
    Else: Caption = rz & 2
    End If
End Sub
 
Private Sub Form_Load()
    Const r = 90
    Dim l&
    Set tx = Controls.Add("vb.TextBox", "tx"): With tx
        .Move r, r: l = .Left + .Width + r
        .Visible = 1
    End With
    Set cb = Controls.Add("vb.CommandButton", "cb"): With cb
        .Move l, r
        .Caption = "Вывести"
        .Visible = 1
    End With
End Sub
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

11   голосов, оценка 3.818 из 5

Источник