Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

(VB6) stuk van een string afknippen

Anoniem
RubeL
10 antwoorden
  • 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.
  • 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="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]
  • Of nog korter

    [code:1:1d567d033b]Private Sub Form_Load()
    Dim s as string

    s = "help.hlp"
    msgbox Mid(s, 1, InStr(1, s, ".") - 1)
    End Sub[/code:1:1d567d033b]
  • Ok, mooi.
    Het werkt, erg bedankt.

    Maar darkscribe zou je aub ff kunnen uitleggen wat de code doet, want ik moet er toch wel wat van leren.

    Alvast bedankt
  • 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]
  • [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,…
  • Bedankt darkscribe, weer wat geleerd.
    Nu weer snel verder met mijn programma :wink:
  • [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:
  • Dat zijn inderdaad gevallen waarin het fout gaat, daar heb je gelijk in. Heb ik niet aan gedacht. :cry:

Beantwoord deze vraag

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