IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Zobrazení dat v TextBoxu ze Streamu

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Martin Marek
Člen
Avatar
Martin Marek:25.7.2021 11:42

Zdravím, prosím o radu.
Potřebuju zobrazovat v TextBoxu Formu data z textového proudu když přijdou. V Mainu mám vlákna připojení se serverem, spuštění streamu, a Aktualizace ve Form1.
Do TXT souboru se mi data zapisují, ale do TextBoxu ne.

static class Program
    {
        /// <summary>
        /// Hlavní vstupní bod aplikace.
        /// </summary>

        [STAThread]
        static void Main()

        {


            {
                Pripojeni_prenos pripojeni = new Pripojeni_prenos();
                pripojeni.Pripojeni();
                Thread vlakno2 = new Thread(pripojeni.prenos);
                vlakno2.Start();
                Form1.Aktualizace aktualizace = new Form1.Aktualizace();
                Thread vlakno3 = new Thread(aktualizace.Nacti);
                vlakno3.Start();
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            Environment.Exit(0);

            try
            {
                Thread.CurrentThread.Abort();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                Thread.ResetAbort();
            }
        }
        public class Pripojeni_prenos
        {
            public TcpClient client;
            public StreamReader STR;
            public string recieve;

            public void Pripojeni()
            {
                client = new TcpClient();
                IPEndPoint IpEnd = new IPEndPoint(IPAddress.Parse("192.168.0.1"), (2000));
                try
                {
                    client.Connect(IpEnd);
                    if (client.Connected)
                    {
                        STR = new StreamReader(client.GetStream());
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
            }

            public void prenos(object sender)
            {
                if (client.Connected)
                {
                    while (client.Connected)
                    {
                        try
                        {
                            recieve = STR.ReadLine();
                            {
                                string streem = recieve;
                                string[] vysledek = streem.Split('_', '#', '$', '\0');//'_'
                                foreach (var text in vysledek)
                                {
                                    if (text != "")
                                    {
                                        Form1.uzavery = text;
                                        Form1.hodnoty_buffer hodnoty = new Form1.hodnoty_buffer();
                                        hodnoty.zapis_hodnoty();
                                        Form1.Aktualizace nacti = new Form1.Aktualizace();
                                        nacti.Nacti();

                                    }
                                }
                            }

                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message.ToString());
                        }
                    }
                }
            }
        }
    }

Xxxxxxxxxxx
public Form1()



        {

            InitializeComponent();


            if ((textBoxInsert.Text != "FAB5") && (textBoxInsert.Text != "FAB6")) checkBoxKontrola5.Checked = (false);
            else checkBoxKontrola5.Checked = (true);

            if ((textBoxInsert.Text == "FAB5") || (textBoxInsert.Text == "FAB6")) checkBoxKontrola5.Visible = (true);
            else checkBoxKontrola5.Visible = (false);
            {

            }
        }

private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
        }
private void  textBoxInsert_TextChanged(object sender, EventArgs e)
        {
        }
public class hodnoty_buffer
        {

            public void zapis_hodnoty()
            {
                string cestaBuffer = (@"C:\Čtečka klíčů FAB\!!!ostatni!!!\");
                string vytvorena_zakazka = (cestaBuffer + "FAB_5_kontrola_500" + ".txt");
                if (!Directory.Exists(cestaBuffer)) MessageBox.Show("Nebyl nalezen adresář " + cestaBuffer, "Informace");
                if (!Directory.Exists(cestaBuffer)) goto finish;

                FileStream fs = new FileStream(cestaBuffer + "FAB_5_kontrola_500" + ".txt", FileMode.Append);
                StreamWriter zapis = new StreamWriter(fs);
                zapis.WriteLine(uzavery);
                zapis.Close();

            finish:;
            }


        }
        public class Aktualizace
        {

            public void Nacti()
            {
                textBoxInsert.Invoke(new MethodInvoker(delegate {textBoxInsert.Text = (string)Insert; }));

            }

        }
 
Odpovědět
25.7.2021 11:42
Avatar
Martin Marek
Člen
Avatar
Odpovídá na Martin Marek
Martin Marek:25.7.2021 11:53

na konci má být toto

public void Nacti()
            {
                textBoxInsert.Invoke(new MethodInvoker(delegate {textBoxInsert.Text = (string)uzavery; }));

            }
 
Nahoru Odpovědět
25.7.2021 11:53
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 2 zpráv z 2.