Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C# - remove - celý řádek ze souboru / nebo z listu

Dobrý den.

Potřeboval bych poradit.

Mám třídu List -

class List
    {
        public List<string> listecek = new List<string>();
        Random rand = new Random();
        StreamWriter sw;
        StreamReader sr;
        
        public void Generuj ()
        {
            using (sw = new StreamWriter("@soubornahcisel.txt", true))
            {
                for (int i = 0; i < 10; i++)
                {
                    string nahodnycislo = rand.Next(0, 100).ToString();
                    listecek.Add(nahodnycislo);
                    sw.WriteLine(nahodnycislo);

                }
            }
        }

        string line;
        public List<string> SoubordoListu()  // muzu se k tyhle metode chovat jako k LISTU
        {
            using (sr = new StreamReader("@soubornahcisel.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    listecek.Add(line);
                }
               
            }
            return listecek;
        }

        public void Odtsran(string ID) // zavolám Console.Readline()
        {
           
            
        }

    }

- ve které si vygeneruju 10 náhodných čísel. Současně uložim do listu i do souboru.

Když někdy jindy otevřu program - metodou SoubordoListu zajistim, že se mi všechno ze souboru uloží do listecku, abych s tim mohl zrovna pracovat.

A pak tam mám metodu Odstraň.

Pokud mám v listu pouze ta vygenerovaná čísla

59
60
13
1
31

funguje kód

listecek.Remove(ID)

Pokud však za čísla v souboru zadam nějaký text - např. to bude vypadat takto ->

59 sdsdf
60 dsffsd
13

příkaz Remove už nefunguje.

Co bych nejspíš potřeboval je, jak vymažu celý řádek. Buď z listu a nebo tedy se souboru(který bych si do toho listecku pak třeba zpět nkopiroval)

Budu vám vděčný za každou radu. Už si opravdu nevím rady.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Co presne znamena "nefunguje"? Pouzi debugger a pozri sa co mas pred a po v liste a premennych. Co…
MM.. 28.04.2015 22:00
MM..
... alebo pouzivat RemoveAt https://msdn.microsoft.com/de-de/library/5cw9x18z% 28v=vs.110%29.aspx a…
MM.. 28.04.2015 22:02
MM..
No vida ... :/ RemoveAt mě vůbec nenapdalo použít. Pokud za ty čísla přidám nějaký string (nebo co…
String 28.04.2015 22:12
String
Tak logicky nemohl ze seznamu odstranit něco, co tam nebylo. nový
Wikan 28.04.2015 22:14
Wikan
Myslel jsem, že funguje na principu jako Contains Pokud se nepletu, ten by zareagoval. Je mi jasný… nový
String 28.04.2015 22:17
String
Tak nefunguje. K veciam ktore pouzivas si treba citat referenciu, t.j. MSDN, kde to je presne napisa… nový
MM.. 28.04.2015 22:19
MM..
Tak si do toho remove daval asi blby parameter. Nauc sa pouzivat debugger - nastav si niekde na neja… nový
MM.. 28.04.2015 22:16
MM..
Díky všem ... teď už se s tím snad poperu! :) nový
String 28.04.2015 22:14
String
Mimochodem, rozhodne bych rozdelil to generovani a ukladani do souboru. Protoze pokud s tim budes da… poslední
gilhad 29.04.2015 01:28
gilhad

No vida ... :/

RemoveAt mě vůbec nenapdalo použít.

Pokud za ty čísla přidám nějaký string (nebo cokoliv) - už mi to funguje a odstraní to celý řádek na zadanym indexu. :)

(Nefungovalo -> program chybu nehlásil ... prostě šlapal, zadal jsem mu přes Console.Readline() to ID - program doběhl do konce ale když sme si list opět na konci vypsal, prvek tam stále byl.)

Tak si do toho remove daval asi blby parameter. Nauc sa pouzivat debugger - nastav si niekde na nejakom riadku breakpoint (cez pravy klik) - a z menu debug - start, zastane to na breakpointe a vidis co sa deje v programe a v premennych, mozesi si potom step over alebo step into krokovat atd.

Program sam od seba chyby nevypisuje (az na nejake extremne chyby ktore su osetrene v runtime kniznici), navratove hodnoty funkcii si mas osetrovat sam a vypisovat si hlasky sam kedy potrebujes.

Mimochodem, rozhodne bych rozdelil to generovani a ukladani do souboru. Protoze pokud s tim budes dal nejak pracovat, tak to nactes a pro dalsi ulozeni budes psat duplicitni kod. Nemluve o tom, co ti to udela, pokud budes mit dve instance te tridy a budes postupne generovat radky do jedne a druhe napreskacku ...

Zpět do poradny Odpovědět na původní otázku Nahoru