Dobrý večer, Mam takový dotaz. Mam v c# form aplikaci a stale mi to při try
catch (ochytavani vynimek) vypisuje chybu : Řetězec nemá správný vstupní formát. Skoušel sem to debugovat ale stale nemožen najit tu chybu.Jak vstupný řetezec je posilany po serové komunikaci. Dekuju moc za každou radu :)
private void set_axis(string text)
{
try //ošetreni chyb
{
if (this.X_progressBar.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(set_axis);
this.Invoke(d, new object[] { text });
}
else
{
str += text;
int i1 = str.IndexOf("BEG");
int i2 = str.IndexOf("BEG", 1 + i1);
if ((-1 != i1) && (-1 != i2))
{
string current = str.Substring(0, i2);
current = current.Substring(current.IndexOf("BEG"));
str = str.Substring(i2);
int beg_index = current.IndexOf("BEG");
int x_index = current.IndexOf("X");
int y_index = current.IndexOf("Y");
int z_index = current.IndexOf("Z");
if ((0 != beg_index) || (3 != x_index) || (-1 == y_index) || (-1 == z_index))
{//Error XXX ,beg_index = XXX , x_index = XX , y_index = XX , z_index = XX
MessageBox.Show("Error " + current + ", beg_index = " + beg_index.ToString() + ", x_index = " + x_index.ToString() + ", y_index = " + y_index.ToString() + ", z_index = " + z_index.ToString());
return;
}
int x = Convert.ToInt32(current.Substring(x_index + 1, y_index - x_index - 1));
int y = Convert.ToInt32(current.Substring(y_index + 1, z_index - y_index - 1));
int z = Convert.ToInt32(current.Substring(z_index + 1));
if (x > X_progressBar.Maximum) x = X_progressBar.Maximum;
if (y > Y_progressBar.Maximum) y = Y_progressBar.Maximum;
if (z > Z_progressBar.Maximum) z = Z_progressBar.Maximum;
if (x < X_progressBar.Minimum) x = X_progressBar.Minimum;
if (y < Y_progressBar.Minimum) y = Y_progressBar.Minimum;
if (z < Z_progressBar.Minimum) z = Z_progressBar.Minimum;
X_progressBar.Value = x;
Y_progressBar.Value = y;
Z_progressBar.Value = z;
}
}
}
catch (Exception x)
{
MessageBox.Show(x.Message.ToString());
}
}