Avatar billede stauer Nybegynder
18. november 2003 - 23:25 Der er 18 kommentarer og
1 løsning

Fjerne tegn efter et punktum

Hejsa

Hvordan fjerner jeg tegn efter et punktum?

Eksempel

filnavn.bmp > filnavn

Og sidst men ikke mindst :=) hvordan ville man lave det som en funktion så når jeg hiver noget ud fra en db at jeg kan skrive

imgName = FjernKaraktere(rs("Image")

Anybody? :=)
Avatar billede deeflate Nybegynder
19. november 2003 - 00:57 #1
Der er en del måder at gøre det på.
Mit umiddelbare forslag er

<%
function fjernExt(str)

'split deler strengen ved et angivet tegn - i dette tilfælde punktum - og putter delene i et array

strDelt = split(str,".")

'for at returnere værdien skal den 'proppes i' fjernExt - funktionens navn
'hvis du ønsker at ændre funktionens navn, skal dette altså også ændres

fjernExt = strDelt(0)

end function



txt1 = "filnavn.bmp"

response.Write txt1

response.Write "<br>"

txt2 = fjernExt(txt1)

response.Write txt2

%>
Avatar billede squashguy Nybegynder
19. november 2003 - 01:05 #2
et alternativ således fil.navn.bmp også virker:

Function fjernExt(str)
    fjernExt = Left(str, InStrRev(str, ".")-1)
End Function
Avatar billede deeflate Nybegynder
19. november 2003 - 01:08 #3
Hehe - var mit næste forslag :)


function fjernExt(str)

'for at returnere værdien skal den 'proppes i' fjernExt - funktionens navn
'hvis du ønsker at ændre funktionens navn, skal dette altså også ændres

'left returnerer x antal tegn fra venstre
'i dette tilfælde bestemmer vi antal tegn med InStr, der returnerer positionen for et angivet tegn - her punktum

fjernExt = left(str,InStr(str, ".")-1)

end function
Avatar billede deeflate Nybegynder
19. november 2003 - 01:12 #4
Men fil.navn.bmp vil så ikke virke, da den kun vil returnere "fil"

så skal vi bruge InStrRev - den søger bagfra
Avatar billede squashguy Nybegynder
19. november 2003 - 01:17 #5
vi? tal for dig selv :)
Avatar billede squashguy Nybegynder
19. november 2003 - 01:24 #6
natten er ung, og her er endnu en måde:

Function fjernExt(str)
    Set reg = New RegExp
    reg.Pattern = "(.*)\..*$"
    fjernExt = reg.Replace(str, "$1")
End Function
Avatar billede squashguy Nybegynder
19. november 2003 - 01:25 #7
den sidste laver ikke fejl, hvis filen ikke har nogen extension
Avatar billede deeflate Nybegynder
19. november 2003 - 01:26 #8
hehe - måske lidt for "du og jeg og stauer holder i hånd og sætter os i rundkreds og taler om stauers problemer"-agtigt :)
Har nok været i for megen kontakt med pædagoger i mit liv ;)
Avatar billede deeflate Nybegynder
19. november 2003 - 01:31 #9
Den var jo dejligt simpel :)
Vil du kommentere den? Vil gerne forstå hvad der sker - bare sådan til en anden god gang.

Ved godt, at jeg bliver lidt pædagogisk igen - "Det er enormt vigtigt at forstå hvad man gør, og ikke bare gøre..." - men det kunne være lækkert med en forklaring :)
Avatar billede squashguy Nybegynder
19. november 2003 - 01:46 #10
. = matcher alle tegn
\. = matcher punktum
* = 0 eller flere tegn
$ = slut på streng

$1 = først fundne streng i parentes

dvs

(.*) finder alle tegn, indtil næste mønster (punktum)
\. find punktum i streng
.*$ alle tegn efter sidste punktum


$1 henviser til (.*)


flere parenteser:

reg.Pattern = "(.*)\.(.*)$"
fjernExt = reg.Replace(str, "$1[punktum]$2")

fil.navn.bmp -> fil.navn[punktum]bmp
Avatar billede squashguy Nybegynder
19. november 2003 - 01:50 #11
regulære udtryk er en videnskab for sig selv..
Avatar billede stauer Nybegynder
19. november 2003 - 02:10 #12
så for søren.. så gik i amok :=)

jeg brugte eksemplet som squashguy lavede

Function fjernExt(str)
    fjernExt = Left(str, InStrRev(str, ".")-1)
End Function

Men hvis du også lige svare deeflate så vil jeg uddele den forholdsvis store mængde point retfærdigt :=)
Avatar billede stauer Nybegynder
19. november 2003 - 02:12 #13
har i forresten nogen gode ideer til hvordan man kan bygge en sql streng op hvor man på søgesiden har mulighed for at vælge forskellige søgekriterier.. sql strengen skal så bygges op alt efter hvilke kriterier der er søgt på..
Avatar billede stauer Nybegynder
19. november 2003 - 02:23 #14
kan dette lade sig gøre?

strSQL = "SELECT * FROM products"
If Not theMaterial = "" Then
strSQL = strSQL & "AND material='"&theMaterial&"'"
End If
If Not theInnerDia = "" Then
strSQL = strSQL & "AND innerDiameter="&theInnerDia&""
End If
strSQL = strSQL & ""
Avatar billede stauer Nybegynder
19. november 2003 - 02:26 #15
nå jeg tror sgu jeg har fået det til at virke..

det er ik så tit det sker..
Avatar billede stauer Nybegynder
19. november 2003 - 02:27 #16
:=)
Avatar billede stauer Nybegynder
19. november 2003 - 02:27 #17
ellers tak..
Avatar billede deeflate Nybegynder
19. november 2003 - 09:18 #18
Det gør ikke noget med pointene - jeg fik lært noget i stedet ;)
Avatar billede deeflate Nybegynder
19. november 2003 - 15:44 #19
Stauer > det var mit svar du accepterede - det er squashguy, der ikke har lagt et svar...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester