Witam, mam następujący program:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
string ciag;
int indeks = 0;
int f=0,g=0;
int h = 0;
bool flaga = true;
int dlugosc;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ciag = textBox1.Text;
dlugosc = ciag.Length;
for (int i = 0; i < dlugosc; i++)
{
if (ciag[i] == '(')
{
f = i;
}
if (ciag[i] == ')')
{
g = i;
flaga = false;
}
if (flaga == false)
{
h++;
flaga = true;
}
}
string[] tab = new string[h];
h = 0;
for (int i = 0; i < dlugosc; i++)
{
if (ciag[i] == '(')
{
f = i;
}
if (ciag[i] == ')')
{
g = i;
flaga = false;
}
if (flaga == false)
{
flaga = true;
tab[h] = ciag.Substring(f+1, g-1);
h++;
}
}
label1.Text = tab[1];
}
}
}
Chciałbym, żeby po wpisaniu w polu (2+3)*(3+4)*(4+5), skopiowało mi do tablicy tab[0] = “2+3”, tab[1] = “3+4”, tab[2] = “4+5”.
Jednak po kompilacji mam komunikat od Visual Studio: "An unhandled exception of type ‘System.ArgumentOutOfRangeException’ occurred in mscorlib.dll
Additional information: Indeks i długość muszą odwoływać się do lokalizacji w ciągu."
Czemu tak się dzieje?