/// <summary>
        /// När man trycker på Find knappen så skapas ny object av circle buffer med parameter, nya object av reader writer och modify
        /// tidigare skapad tråd blir fyllt med metoder från klasserna och tråderna startas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCreate_Click(object sender, EventArgs e)
        {
            CircleBuffer circleBuf = new CircleBuffer(10, rchTextboxSource, txtFind.Text.Trim(), txtReplacewith.Text);

            writer = new Writer(circleBuf);
            reader = new Reader(circleBuf);
            modify = new Modifier(circleBuf);

            wr = new Thread(new ThreadStart(writer.startwrtiting));
            rd = new Thread(new ThreadStart(reader.startReading));
            md = new Thread(new ThreadStart(modify.modifyArray));

            wr.Start();
            rd.Start();
            md.Start();

            c = circleBuf;

            //While loop som skapa en mellan rum så alla tråderna hinner vara färdig innan output richtextbox börja fylls av modified list från circlebuffer
            while (c.ModifiedList.Count != c.MAX)
            {
                x += 1;
            }
            //En for loop som fyller rchtextboxDestionation med modified listens strängar
            for (int i = 0; i < c.ModifiedList.Count; i++)
            {
                rchTextBoxDestination.Text = rchTextBoxDestination.Text + c.ModifiedList[i] + " ";
            }
            //Om man söker efter en ord och vill replace med en annan ord så highlight orden som blir replaced.
            if (txtReplacewith.Text != string.Empty && txtFind.Text.Trim() != string.Empty)
            {
                SearchAndHighlight(txtReplacewith.Text.Trim(), rchTextBoxDestination);
            }

            SearchAndHighlight(txtFind.Text.Trim(), rchTextboxSource);
            //Label nummer blir lika med antalet replacements gjort
            lblNumber.Text = c.NbrReplacements.ToString();

            //Visa användaren output taben för att visa resiltat
            tabControl1.SelectedIndex = 1;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="Modifier"/> class.
 /// </summary>
 /// <param name="c">The c.</param>
 public Modifier(CircleBuffer c)
 {
     cBuff = c;
 }
 /// <summary>
 /// Konstruktör som gör cbuffer till this.cbuffer, skapa writer klassen
 /// </summary>
 /// <param name="cbuffer">The cbuffer.</param>
 public Writer(CircleBuffer cbuffer)
 {
     this.cbuffer = cbuffer;
 }
Beispiel #4
0
 /// <summary>
 /// Konstuktör för reader som gör parameter c till cbuffer.
 /// </summary>
 /// <param name="c">The c.</param>
 public Reader(CircleBuffer c)
 {
     cbuffer = c;
 }