public static DATHUC KhoiTao(String Chuoi)
    {
        DATHUC kq;

        kq.DonThuc = null;
        kq.Ten     = "";
        kq.BienSo  = "";
        if (KiemTra(Chuoi))
        {
            String[] T = Chuoi.Split(new String[] { "=" },
                                     StringSplitOptions.None);
            String[] N = T[0].Split(new String[] { "(", ")" },
                                    StringSplitOptions.None);
            kq.Ten    = N[0].Trim();
            kq.BienSo = N[1].Trim();

            XuLyDonThuc.Set_ChuoiPhanCach(kq.BienSo);
            String[] M = T[1].Split(new String[] { ChuoiPhanCach },
                                    StringSplitOptions.None);
            kq.DonThuc = new DONTHUC[M.Length];
            for (int i = 0; i < M.Length; i++)
            {
                kq.DonThuc[i] = XuLyDonThuc.KhoiTao(M[i]);
            }
        }
        return(kq);
    }
    public static Boolean KiemTra(String Chuoi)
    {
        Boolean flag = true;

        String[] T = Chuoi.Split(new String[] { "=" },
                                 StringSplitOptions.None);

        T[0] = T[0].Trim();
        String[] N = T[0].Split(new String[] { "(", ")" },
                                StringSplitOptions.None);
        flag = N.Length == 3;
        if (flag)
        {
            XuLyDonThuc.Set_ChuoiPhanCach(N[1]);
            String[] M = T[1].Split(new String[] { ChuoiPhanCach },
                                    StringSplitOptions.None);
            for (int i = 0; i < M.Length; i++)
            {
                flag = flag && XuLyDonThuc.KiemTra(M[i]);
            }
        }
        return(flag);
    }