none
Výběr jednotlivých řádků z textboxu a načtení do samostatných řetězců

    Dotaz

  • Potřeboval bych poradit ohledně toho, jak vybrat jednotlivé řádky v textboxu. Uživatel by vepsal text a já bych ho potřeboval po jednotlivých řádkách vybrat a načíst do řetězců, se kterými bych pak pracoval.

    Na googlu jsem hledal různé řešení, ale uniká mi pořád podstata toho načtení. Podle různých diskuzí si myslím, že řešení spočívá v seznamech Array nebo ve funkci enviroment, kterou jsem zatím nepochopil.

    Ne, že bych byl úplný začátečník, ale nějaké řešení, které by mělo hlavu a patu jsem k tomuto tématu na internetu nenašel. To, co jsem výše napsal, jsem vyčetl více méně z těchto adres:

    Ze stránek programmersheaven toto:

        string mail = txtIn.Text;
        string[] split = mail.Split(new char[] { '\n' });
    

    Ze stránek bytes toto:

    MyMultiLineTextBox.Text.Split(Environment.NewLine)
    

    či zde

    // 3 ways of coding it.
    
    // 1)
    
    textBox1.Text = "Euro 2004 Football" + Environment.NewLine + "World Cup 2006";
    
    // 2)
    
    string str1 = "Superman";
    string str2 = "Spiderman";
    
    textBox1.Text = str1 + "\r\n" + str2;
    
    // 3)
    
    string[] strArray = new string[5];
    strArray[0] = "Line 1";
    strArray[1] = "Line 2";
    strArray[2] = "Line 3";
    strArray[3] = "Line 4";
    strArray[4] = "Line 5";
    
    textBox1.Lines = strArray;
    
    

    A ze stránek msdn toto:

    foreach (string line in textBox1.Lines)
    
    {
    
    //do something with each line here
    
    }
    

    Ty příklady jsou sice bezva, ale nikde není napsané, jak načíst každou řádku zvlášť do samostatných řetězců - string (jestli použít nějakou funkci, kterou bych např. pomocí foreach, nebo nějaké podmínky opakoval pro každý řádek... Nevím...). Abych pak s němi mohl dále pracovat, dělit je, upravovat a tak.

    Předem Vám děkuji za odpověďi. Normálně do fór nepíšu a hledám na internetu. Ale tentokrát jsem nenašel žádné řešení, z kterého bych mohl pochopit, jak postupovat.

    středa 25. srpna 2010 21:02

Odpovědi

  • Ahoj, většina těch věcí, co jsi psal, jsou užitečný, jen je složitější tomu porozumět, když nevíš o co jde.

    Pro příklad existuje jedna třída, kterou použiješ using System.Text.RegularExpressions; Ta slouží k tomu, aby jsi mohl hlouběji pracovat s textem, než dovolují stringy. Pak v kódu stačí napsat:

    string[] seznam = Regex.Split(textBox1.Text, Environment.NewLine);
    

    a pole typu string se ti naplní textem, který je mezi novými řádky. Ten nový řádek se ti ale tímto smaže, tudíž nebudeš mít v těch strinzích i znaky, který oddělují řádky. Poté stačí příslušný řádek vyvolat: seznam[2]; to číslo je pořadí stringu v poli. Začíná to od 0, kdyby jsi nevěděl.

    Pomohlo?

    • Navržen jako odpověď Dusa pátek 27. srpna 2010 11:20
    • Označen jako odpověď acantophis pátek 27. srpna 2010 20:11
    pátek 27. srpna 2010 11:19