Diskuze: Nazov dynamickeho radiobuttonu z textoveho suboru

C# .NET .NET (C# a Visual Basic) Nazov dynamickeho radiobuttonu z textoveho suboru American English version English version

Avatar
František Pastorek:

No, program mi pri spusteni hlasi chybu.

Pri vyznacenych riadkoch mi pise iba toto:

This is the next statement that will be executed. To change which statement is executed next, drag the arrow. This may have unintended consequences.

Problemova cast kodu:

for (int i = 0; i < int.Parse(FileOptions[10, 1]);)
            {
                int a = rnd.Next(0, File.ReadAllLines(path + FileOptions[14, 1]).Length);
                if (!exist.Contains(a.ToString()))
                {
                    if(i == spravne)
                    {
                        exist = exist + a.ToString() + " ";
                        radioButton[i].Text = odpoved; //CHYBA
                        radioButton[i].Location = new System.Drawing.Point(12, 30 + i * 30);
                        radioButton[i].CheckedChanged += new System.EventHandler(MyradioButton_CheckedChanged);
                        i++;
                    }
                    else if(a != nahoda)
                    {
                        exist = exist + a.ToString() + " ";
                        radioButton[i].Text = Slovicka[a, stlpec]; //CHYBA
                        radioButton[i].Location = new System.Drawing.Point(12, 30 + i * 30);
                        radioButton[i].CheckedChanged += new System.EventHandler(MyradioButton_CheckedChanged);
                        i++;
                    }
                }
            }

Cely kod:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;

namespace Beta
{
    public partial class Testing : Form
    {
        string path = AppDomain.CurrentDomain.BaseDirectory + @"Files\";
        string[,] FileOptions;
        RadioButton[] radioButton;
        string[,] Slovicka;
        string odpoved = "";
        string otazka = "";
        int spravne = 0, odpocet = 3;

        public Testing()
        {
            InitializeComponent();

            timer1.Enabled = false;
            FileOptions = new string[15, 2];

            StreamReader sr1 = new StreamReader(path + "config.ini");
            for (int i = 0; i < 15; i++)
            {
                string[] prevod = Regex.Split(sr1.ReadLine(), " = ");
                FileOptions[i, 0] = prevod[0];
                FileOptions[i, 1] = prevod[1];
            }
            sr1.Close();

            Slovicka = new string[File.ReadAllLines(path + FileOptions[14, 1]).Length, 2];

            StreamReader sr2 = new StreamReader(path + FileOptions[14, 1]);
            for (int i = 0; i < File.ReadAllLines(path + FileOptions[14, 1]).Length; i++)
            {
                string[] prevod = Regex.Split(sr2.ReadLine(), " - ");
                Slovicka[i, 0] = prevod[0];
                Slovicka[i, 1] = prevod[1];
            }
            sr2.Close();

            Create();
        }

        private void Create()
        {
            timer1.Enabled = false;
            odpocet = 3;
            radioButton = new RadioButton[int.Parse(FileOptions[10, 1])];
            Random rnd = new Random();
            string exist = "";
            int stlpec = 0;
            spravne = rnd.Next(0, int.Parse(FileOptions[10, 1]));
            int nahoda = rnd.Next(0, File.ReadAllLines(path + FileOptions[14, 1]).Length);

            if (FileOptions[2, 1] == "true")
            {
                stlpec = 0;
                otazka = Slovicka[nahoda, 1];
                odpoved = Slovicka[nahoda, 0];
            }
            else if (FileOptions[3, 1] == "true")
            {
                stlpec = 1;
                otazka = Slovicka[nahoda, 0];
                odpoved = Slovicka[nahoda, 1];
            }

            Label label1 = new Label();
            label1.Text = otazka;
            label1.Location = new System.Drawing.Point(12, 30);
            Controls.Add(label1);

            for (int i = 0; i < int.Parse(FileOptions[10, 1]);)
            {
                int a = rnd.Next(0, File.ReadAllLines(path + FileOptions[14, 1]).Length);
                if (!exist.Contains(a.ToString()))
                {
                    if(i == spravne)
                    {
                        exist = exist + a.ToString() + " ";
                        radioButton[i].Text = odpoved; //CHYBA
                        radioButton[i].Location = new System.Drawing.Point(12, 30 + i * 30);
                        radioButton[i].CheckedChanged += new System.EventHandler(MyradioButton_CheckedChanged);
                        i++;
                    }
                    else if(a != nahoda)
                    {
                        exist = exist + a.ToString() + " ";
                        radioButton[i].Text = Slovicka[a, stlpec]; //CHYBA
                        radioButton[i].Location = new System.Drawing.Point(12, 30 + i * 30);
                        radioButton[i].CheckedChanged += new System.EventHandler(MyradioButton_CheckedChanged);
                        i++;
                    }
                }
            }

            Controls.AddRange(radioButton);
        }

        private void MyradioButton_CheckedChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < int.Parse(FileOptions[10, 1]); i++)
            {
                if (radioButton[i].Checked)
                {
                    if (radioButton[i].Text == odpoved)
                    {
                        radioButton[i].ForeColor = Color.Green;
                    }
                    else
                    {
                        radioButton[i].ForeColor = Color.Red;
                        radioButton[spravne].ForeColor = Color.Green;
                    }
                }
            }
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            odpocet--;
            if (odpocet == 0)
                Create();
        }
    }
}

Vy si to asi nevyskusate pretoze informacie taham so subora ktory mam vytvoreny. Mne by stacilo ze kde by asi tak mohla byt chyba. Par veci som vyskusal ale nic nefunguje.

Vopred dakujem za akukolvek odpoved.

 
Odpovědět 26.11.2014 18:23
Avatar
Odpovídá na František Pastorek
sadlomaslox25:

radioButton = new RadioButton[in­t.Parse(FileOp­tions[10, 1])];

tim si jen nainicializoval velikost pole. pak musis jeste nainicializovat kazdy prvek v poli pres cyklus a konstruktor dane tridy.

radioButton[0]=new RadioButton();
radioButton[1]=new RadioButton();
...

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 26.11.2014 20:27
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na František Pastorek
Filip Šohajek:

A ten neuzavřený string ti chybu nehlásí?

 
Nahoru Odpovědět 26.11.2014 21:04
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Filip Šohajek
Jan Vargovský:

To je jen blbý parser. Neumí to rozpoznat, bere to \" jako uvozovky v textu a pak to udělá tohle.

Editováno 26.11.2014 21:07
 
Nahoru Odpovědět 26.11.2014 21:05
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
David Čápka:

Už jsem to opravil, příště by se hodilo slušnější vyjadřování...

Nahoru Odpovědět 26.11.2014 21:31
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na sadlomaslox25
František Pastorek:

Ďakujem sadlomaslox25, presne to tomu chýbalo aj keď kupodivu, včera som to skúšal a šlo to bez toho ale na ovela viac jednoduchšom príklade.

Jan Vargovský (pako) Ďakujem aj tebe :).

David Čápka ak máš na mysli spôsob písania to sa ospravedlnujem ale už som sa ponáhlal. Ak myslíš ale spôsob vysvetlovania tak to sa ospravedlnujem tiež.

Ďakujem opäť všetkým, cením si vašich rád :) vďaka.

 
Nahoru Odpovědět 26.11.2014 21:48
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na František Pastorek
Jan Vargovský:

To je cílené na mou osobu.

David Čápka Co ti přijde neslušné?

 
Nahoru Odpovědět 26.11.2014 21:56
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 26.11.2014 21:58
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Jan Vargovský
Redaktor
Avatar
 
Nahoru Odpovědět 26.11.2014 21:59
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.