11. juni 2005 - 14:39
Der er
17 kommentarer og 1 løsning
Returnere sidste ord i en path
Hej xperten Jeg skal lige bruge en linie der returnere sidste ord i en path. FX C:\Drivers\Audio så skal jeg sidde med Audio FX C:\Drivers\Net så skal jeg sidde med Net
Annonceindlæg tema
string[] pathparts = path.Split("\\".ToCharArray()); string last = pathparts[pathparts.Length - 1]; måske
Godt nok lig af et misbrug af GetFileName(): string dinPath = @"C:\Drivers\Audio"; string lastDir = Path.GetFileName(dinPath);
Jeg er en gammel Java mand. Er der ikke en måde at finde placeringeren af den sidste \ og så med noget substring tage det sidste af variablen?
Pathen er iøvrigt variable. Jeg kan ikke være sikker på den ligger i C:\Drivers
string dinPath = @"C:\Drivers\Audio"; int lastPos = dinPath.LastIndexOf(@"\"); string lastDir = dinPath.Substring(lastPos+1);
Ny i C# Hvad skal den der @ lige pludselig gøre godt for?
> Pathen er iøvrigt variable. Jeg kan ikke være sikker på den ligger i C:\Drivers Det er da ikke noget problem. Du har bare værdien i dinPath - eller hvad du nu vil kalde den.
@ betdyer at man ikke er nødt til at escape sine \-tegn: @"C:\Drivers\Audio"; "C:\\Drivers\\Audio"; - er det samme.
Oh.. det er da ret smart og rart når man har med paths at gøre. Løsningen blev: private string returnLastWord(string word) { string dinPath = @word; int lastPos = dinPath.LastIndexOf(@"\"); string lastDir = dinPath.Substring(lastPos+1); return lastDir.ToUpper(); }
11. juni 2005 - 15:10
#10
Den "løsning" fungere desværre ikke. @-notationen bruges kun sammen med at man angiver en streng-kosntant. Derimod vil string dinPath = @word; - slet ikke kompilere.
11. juni 2005 - 15:12
#11
private string returnLastWord(string dinPath) { int lastPos = dinPath.LastIndexOf(@"\"); string lastDir = dinPath.Substring(lastPos+1); return lastDir.ToUpper(); }
11. juni 2005 - 15:18
#12
Det er meget mulig at den ikke vil kompilere på din kompiler, men det vil den altså på min... no shit
11. juni 2005 - 15:19
#13
Men helt klart. Jeg spare en linien med din metode.
11. juni 2005 - 15:24
#14
Svar :^) private string returnLastWord(string dinPath) { int lastPos = dinPath.LastIndexOf(@"\"); return lastDir = dinPath.Substring(lastPos+1).ToUpper(); }
11. juni 2005 - 15:33
#15
Ja eller 2 linien.
11. juni 2005 - 15:40
#16
Nu er det vel ikke et mål i side selv at det skal foregå over så få linjer som muligt. Til sidst er det bare ulæseligt ;^) private string returnLastWord(string dinPath) { return dinPath.Substring(dinPath.LastIndexOf(@"\")+1).ToUpper(); }
11. juni 2005 - 15:58
#17
Optimering
24. juni 2005 - 17:56
#18
Det bliver ikke hurtigere fordi at det er på en linje. Compileren skal nok selv sørge for at optimere så meget som overhovedet muligt. Og, man kan jo faktisk også vælge at optimere for vedligeholdelses vlenlighed
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.