Ga naar inhoud

(VB6) stuk van een string afknippen


Aanbevolen berichten

Hallo allemaal, Ik ben met een programma bezig en nu wil ik van een bestandsnaam de extensie afknippen als ik hem in een variabel zet. Bijvoorbeeld: filename = blub.zip filenamezonderext = filename - .zip Dit is natuurlijk niet de manier, maar dat is de bedoeling, kan iemand mij helpen, ik zat een iets te denken met een andere variabele die dan kijkt of hij al bij de punt is en dat hij dan daarna knipt.
Link naar reactie
[quote:e8df47f4fe="pc_freak17"]Dus beter gezegd, Hoe kan ik de linker 4 characters van een string afknippen. Ik ken wel het commando: right(mystring,4) Waarbij van mystring dan juist alleen de rechter 4 characters blijven staan. Hoe kan ik dit omgekeerd doen????[/quote:e8df47f4fe] [img:e8df47f4fe]http://forum.fok.nl/i/s/nooo.gif[/img:e8df47f4fe] Hoe ga je dit oplossen: [i:e8df47f4fe]bestand.mpeg[/i:e8df47f4fe] Pseudo-code (d.m.v. achterwaartse scan door bestandsnaam?): [code:1:e8df47f4fe] public function GetPathWithFileName(byval FullFileName as string) as string dim pos as long dim i as long i = len(FullFileName) if (i > 0) then do if (mid(FullFileName,i,1) = '.') then pos = i endif i = i -1 loop until ((i = 0) or (pos <> 0)) endif GetPathWithFileName = Left(FullFileName,Pos-1) end function[/code:1:e8df47f4fe]
Link naar reactie
Heel eenvoudig, Mid(string, start, aantal) neemt een stuk van een string, je begint uiteraard bij karakter 1 en aantal is het aantal karakters in de string tot aan de punt. Om dit aantal karakters te vinden gebruik je instr(start, string, gezocht stukje string) die de string doorzoekt op het gezochte stukje string (de punt) en die het aantal karakters terug geeft tot en met de gezochte string. Hier moet je 1 afhalen omdat je de punt zelf niet mee wilt nemen. [code:1:f997618f97]Private Sub Form_Load() Dim s as string Dim L as Long s = "help.hlp" L = instr(1, s, ".") msgbox Mid(s, 1, L - 1) End Sub[/code:1:f997618f97]
Link naar reactie
[code:1:0896433133] dim tmp dim s as string tmp=split("c:\windows\test.txt",".") s=ubound(tmp) [/code:1:0896433133] in deze richting moet je hetzoeken. Split hakt de string in stukken op de punt "." en plaatst ze in een array (tmp). ubound(tmp) betekent het laatste element van tmp, dus de zip,mpeg,exe,...
Link naar reactie
[quote:00d72c5e55="DarkScribe"]Of nog korter[/quote:00d72c5e55] :-? [quote:00d72c5e55="DarkScribe"] [code:1:00d72c5e55]Private Sub Form_Load() Dim s as string s = "help.hlp" msgbox Mid(s, 1, InStr(1, s, ".") - 1) End Sub[/code:1:00d72c5e55][/quote:00d72c5e55] input: "" --> output: run-time error input: "help" --> output: run-time error input: "foo.app.ext" --> output: "foo" :lol:
Link naar reactie
[code:1:4bbf1e52c2] Dim fso As FileSystemObject Dim filename As String, filenamezonderext As String filename = "C:\Voorbeeld\Test.123.doc" Select Case Len(Trim(filename)) Case 0 'filename is lege string, error handler Case Else Set fso = New FileSystemObject filenamezonderext = fso.GetBaseName(filename) Set fso = Nothing End Select [/code:1:4bbf1e52c2] Bovenstaand voorbeeld heeft als resultaat dat filenamezonderext de waarde "Test.123" heeft. Overigens moet je wel de scripting library aanzetten (scrrun.dll) in de references van Visual Basic.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...