// Kopioi leikekirjasta Vastustajat-historiaan tekstirivit // // Ei tarkisteta, että ovatko vastustajat/tulokset oikeassa formaatissa. // Vain tarkistukset, että pituus on vähintään seloluvun pituus (eli 4), eikä tule kahta samaa riviä. // Ei saa olla myöskään liian pitkä rivi eikä liian montaa riviä. // // Osa syötteestä on tarkoitus ajaa CSV-formaatissa (silloin täydellinen tai vain miettimisaika otetaan lomakkeelta) // Ja osa on tarkoitettu käytettäväksi erillisesti annetun miettimisajan, oman vahvuusluvun ja pelimäärän kanssa. // // Tekstistä poistetaan ylimääräiset välilyönnit. private void PasteVastustajatToolStripMenuItem_Click(object sender, EventArgs e) { // Haetaan data leikekirjasta IDataObject iData = Clipboard.GetDataObject(); SelolaskuriOperations so = new SelolaskuriOperations(); string[] leikekirja = null; int lisatytRivit = 0; // jos leikekirjassa on tekstiä, niin poista aiemmat vastustajat, // käsittele riveittäin, tarkista ja tallenna vastustajanSelo-kenttään if (iData.GetDataPresent(DataFormats.Text)) { // Tämä lisäisi kaikki rivit tarkistamatta: vastustajanSelo_comboBox.Items.AddRange(iData.GetData(DataFormats.Text).ToString().Split('\n')); // // Ei tallenneta liian pitkiä tai lyhyitä rivejä, eikä liian montaa riviä, eikä samaa riviä kahdesti. // Rivin on aloitettava numerolla (eli selo tai miettimisaika) tai ottelutuloksella (+, - tai =) leikekirja = iData.GetData(DataFormats.Text).ToString().Split('\n'); // Ei haittaa, jos on "\r\n", koska poistetaan tarkistuksessa foreach (string rivi in leikekirja) { // poista ylimääräiset välilyönnit ennen tarkistusta ja mahdollista tallennusta string rivi2 = so.SiistiVastustajatKentta(rivi.Trim()); if (rivi2.Length >= Vakiot.SELO_PITUUS && rivi2.Length <= Vakiot.LEIKEKIRJA_MAX_RIVINPITUUS && (rivi2[0] == '+' || rivi2[0] == '-' || rivi2[0] == '=' || (rivi2[0] >= '0' && rivi2[0] <= '9')) && !vastustajanSelo_comboBox.Items.Contains(rivi2)) { // vanhat tiedot poistetaan vain, jos on kelvollista lisättävää if (lisatytRivit == 0) { TyhjennaVastustajat(); } // on poistanut ylimääräiset välilyönnit ennen tallennusta vastustajanSelo_comboBox.Items.Add(rivi2); if (++lisatytRivit >= Vakiot.LEIKEKIRJA_MAX_RIVIMAARA) { break; } } } } if (lisatytRivit > 0 && null != leikekirja) { MessageBox.Show( "Vastustajiin lisätty " + lisatytRivit + (lisatytRivit == 1 ? " rivi." : " riviä.") + " Leikekirjassa oli " + leikekirja.Length + (leikekirja.Length == 1 ? " rivi." : " riviä.") + " Lisätään enintään " + Vakiot.LEIKEKIRJA_MAX_RIVIMAARA + " riviä." + Environment.NewLine + "Huom! Ei tarkistettu, onko kelvollista ottelutietoa. Tarkistettu vain, että rivi alkaa" + Environment.NewLine + "numerolla tai tuloksella (+-=), rivin pituus on välillä 4 (seloluvun pituus) - " + Vakiot.LEIKEKIRJA_MAX_RIVINPITUUS + Environment.NewLine + "eikä lisätä samoja rivejä."); } else { MessageBox.Show("Paste: Leikekirjan sisältöä ei hyväksytty. Ei muutettu vastustajia/ottelutietoja."); } }