Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# - jak najít poslední lomítko? IndexOf?

V C# potřebuji ve stringu najít poslední / v URL a vše do toho místa smazat. Zkoušel jsem to přes Remove, Trim, IndexOf ale nikde to neumím dotáhnout dokonce. No a když jsem zkusil Céčkovou logiku: while tak dlouho jdi od konce dokud nenarazíš na / . tu pozici i pak použít v jmeno_stringu.Remove(0, i);
tak mi to padalo na řádku list_stringu[radek].ToString(); ... sem nějak zmatenej ...:-|

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Očima laika: string nejakyMujRetezec = "sdfsd/dfgdf/ftre"; nejakyMujRetezec = nejakyMujRetezec.Subs… nový
Flash_Gordon 18.06.2008 19:33
Flash_Gordon
diky chlapi, ale fakt mam v tom hokej: zkompiluju následující kód: string name = fronta[currentDow… nový
thomas 18.06.2008 20:25
thomas
A sdelis nam co je fronta a currentDownload nebo si to budem muset vycucat z prstu? nový
Wikan 18.06.2008 20:47
Wikan
Daj si na ten riadok breakpoint (F9) a pozri sa, že či je fronta, currentDownload alebo fronta[curre… nový
los 18.06.2008 20:48
los
já jsem chujo, trasuju to, ale nedocvaklo mi že když je to null... díky :beer: bylo to tím, že na z… nový
thomas 18.06.2008 20:53
thomas
fronta je List stringů currentDownload je typu int a počítá inkrementálně kolikátý soubor se stahuje… nový
thomas 18.06.2008 20:49
thomas
Ak je to List<string>, tak volanie metódy ToString je zbytočné. Takže môžeš nahradiť fronta[currentD… poslední
los 18.06.2008 20:54
los

Očima laika:

string nejakyMujRetezec = "sdfsd/dfgdf/ftre";
nejakyMujRetezec = nejakyMujRetezec.Substring(0, nejakyMujRetezec.LastIndexOf("/"));
MessageBox.Show(nejakyMujRetezec);

//Edit a nebo jsem si to špatně přečetl, takže druhá varianta (vše po lomítku bude takhle):

string nejakyMujRetezec = "sdfsd/dfgdf/ftre";
nejakyMujRetezec = nejakyMujRetezec.Substring(nejakyMujRetezec.LastIndexOf("/"), nejakyMujRetezec.Length - nejakyMujRetezec.LastIndexOf("/"));
MessageBox.Show(nejakyMujRetezec);

diky chlapi, ale fakt mam v tom hokej:

zkompiluju následující kód:

string name = fronta[currentDownload].ToString(); //zde to pada :(
//zde mam ten substring co mi radite

a při debuggingu vyleze tabulka:

An unhandled exception of type 'Szstem.NullReferenceException' occured in exe.exe

Additional information: Object reference not set to an instance of an object

tlačítka Break, Continue, Ignore (nelze zvolit)

:-[

Daj si na ten riadok breakpoint (F9) a pozri sa, že či je fronta, currentDownload alebo fronta[currentDownload] rovné null. Potom zisti prečo a oprav to.

K pôvodnej otázke: Metóda LastIndexOf môže vrátiť -1 v prípade, že sa hľadaný text v reťazci nenachádza - je dobré na to myslieť. V tvojom prípade stačí metóde Substring poslať len prvý argument.

Neviem, aké používaš vývojové prostredie, ale Visual Studio ti pri chybe ukáže veľmi presne, v čom je problém. Odporúčam vyvíjať so zapnutým odchytávaním všetkých CLR výnimiek (Ctrl + Alt + E, zaškrtnúť Thrown pre CLR Exceptions).

já jsem chujo, trasuju to, ale nedocvaklo mi že když je to null... díky :beer:

bylo to tím, že na začátku třídy Form jsem měl List stringů a pak dál v metodě deklaroval a plnil list stringů- stačilo odstranit jen zdvojenou deklaraci :-[:-[

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