Vraag & Antwoord

Programmeren

deel van een string weergeven in C#

9 antwoorden
  • Hey, Ik heb een dialoogvenster waarmee men een bestand op de computer kan selecteren. Daarna komt er in een textbox het adres van het geselecteerde bestand te staan. Nu wil ik het laatste deel van het adres (de bestandsnaam) in een aparte string zetten. Hoe doe ik dat. Ik wil dus het adres van de bestandsnaam splitsen zodat ik de naam van het bestand krijg. Bijvoortbaat dank.
  • ik ken C# niet zo goed, maar google weet raad: http://www.smartarrays.com/new/downloads/manual/strings.html Ik weet niet of de goede functies voorhanden zijn, maar je moet iig de last-occurence van een '\' ofzo vinden, en dan de substring nemen van daar tot t eind
  • Wat jij wilt kan met de "split" functie, die splitst een string op basis van een char (of meerdere) en stopt het resultaat in een array.
  • In de meeste talen bestaat een commando INSTR. Het is een ingebouwde functie. INSTR(A$,B$) zoekt in A$ tot de stirng B$ gevonden wordt en geeft de positie waar B$ in A$ staat als return. Mijn advies: Schrijf even je eigen functie (in C#) 1. Neem de lengte van je path 2. Zoek van rechts naar links naar het teken \ 3. Het linker deel voor het eerste gevonden \-teken is het lange pad in je functie en het rechterdeel is het deel waar je naar op zoek bent. Deze functies zijn al zeer vaak geschreven. Windows heeft ze in KERNEL32.DLL staan MSDN kernel32, "GetShortPathNameA" Als het je niet binnen 15 minuten lukt, geef dan een gil en ik geef deze functie op twee manieren. Maar dit lijkt me voor een C# programmeur geen probleem te zijn. Abcott.
  • [quote:3cc32ae740="Klaas Dons"]Nu wil ik het laatste deel van het adres (de bestandsnaam) in een aparte string zetten. [/quote:3cc32ae740]Daar is een kant-en-klare functie voor in C#. Kost wel even zoeken en dat is dan ook wel een nadeeltje van C#/.Net. Volgens mij moet je puzzelen met Path.xxx functies.
  • Het is mij niet duidelijk hoe een eigen functie in C# gemaakt wordt. In LB en andere talen wordt een functie gedefinieerd door FUNCTION END FUNCTION Hier volgt een mogelijke oplossing: [code:1:ed40022b83] slash = len(fileName$) while instr(fileName$, "\", slash)=0 slash=slash-1 wend Path$=left$(fileName$,slash) shortFile$=right$(fileName$,len(fileName$)-slash) [/code:1:ed40022b83] Deze functie gebruikt ingebouwde functies LEN(, INSTR(, LEFT$( en RIGHT$( Abcott
  • [quote:5e3b07a3bf="Klaas Dons"] Ik wil dus het adres van de bestandsnaam splitsen zodat ik de naam van het bestand krijg. [/quote:5e3b07a3bf] Dat doe je zo: [code:1:5e3b07a3bf] string bestandzonderpad = <volledigestring>.Substring(<volledigestring>.LastIndexOf(@"\")+1); [/code:1:5e3b07a3bf] Je hoeft dus geen aparte functie te schrijven, of de string van achter naar voor door te lopen. Hou er alleen rekening mee dat een "\" een escape-karakter is. Met het "@"-teken voor de zoekstring in LastIndexOf geef je aan dat naar het karakter "\" moet worden gezocht. Je kan ook een dubbele backslash ("\\") gebruiken.
  • [quote:68ce775cc6="abcott"]Het is mij niet duidelijk hoe een eigen functie in C# gemaakt wordt.[/quote:68ce775cc6]Dat gaat "gewoon" in C-syntax.
  • [quote:e08293b5f5="meneer_ed"][quote:e08293b5f5="Klaas Dons"] Ik wil dus het adres van de bestandsnaam splitsen zodat ik de naam van het bestand krijg. [/quote:e08293b5f5] Dat doe je zo: [code:1:e08293b5f5] string bestandzonderpad = <volledigestring>.Substring(<volledigestring>.LastIndexOf(@"\")+1); [/code:1:e08293b5f5] [/quote:e08293b5f5]De .Net C# opdracht is dus Path.GetFileName, dat scheelt weer wat gedoe met de backslash.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.