Avatar billede magnus_b Nybegynder
22. maj 2003 - 19:08 Der er 18 kommentarer og
1 løsning

"Trimme" funktion

Jeg har brug for en ”trimme” funktion der kan behandle en tekst streng på følgende måde.

1 Sætte det første bogstav med stort
2 Resten af navnet med småt
3 Fjerne mellemrum før og efter og fjerne mellemrum, hvis der er flere end et sammenhængende mellemrum.
4 konverter , til . hvis der er sådan et i strengen

Så input ”  mette JENSEN” bliver til ”Mette Jensen”

Funktionen skal bruges således, at nedenstående SQL bliver behandlet af funktionen

SQL = "INSERT INTO femina (fornavn, efternavn) values('" & Request.Form("requiredfornavn") & "','" & Request.Form("requiredefternavn") & "')"
Avatar billede magnus_b Nybegynder
22. maj 2003 - 19:46 #1
Rettelse

Så input "  mette JENSEN" bliver til "Mette Jensen"
Avatar billede -master-d- Nybegynder
22. maj 2003 - 23:08 #2
Her er funktionen

<%
'Så input "  mette JENSEN" bliver til "Mette Jensen"
var1 = "  mette JENSEN"
'Laver lower-case
var1 = LCase(var1)
var1 = Trim(var1)  'Fjerner mellemrum foran og bagefter
'String = "mette jensen"
varL = Len(var1)
varR = Right(var1,varL-1)
var1 = UCase(Left(var1,1)) & varR

var4 = Instr(1, var1, " ", 1)
var5 = Mid(var1, var4+1, 1)
var3 = Left(var1,var4) & UCase(Mid(var1, var4+1, 1)) & Right(var1,CInt(varL-var4-1))
%>

Det andet forstod jeg ikke helt
Avatar billede -master-d- Nybegynder
22. maj 2003 - 23:10 #3
Sådan der. Der manglede lige punkt 4.

<%
'Så input "  mette JENSEN" bliver til "Mette Jensen"
var1 = "  mette JENSEN"
'Laver lower-case
var1 = LCase(var1)
var1 = Trim(var1)  'Fjerner mellemrum foran og bagefter
'String = "mette jensen"
varL = Len(var1)
varR = Right(var1,varL-1)
var1 = UCase(Left(var1,1)) & varR

var4 = Instr(1, var1, " ", 1)
var5 = Mid(var1, var4+1, 1)
var3 = Left(var1,var4) & UCase(Mid(var1, var4+1, 1)) & Right(var1,CInt(varL-var4-1))

Navn = Replace(var3,",",".")
%>
Avatar billede -master-d- Nybegynder
22. maj 2003 - 23:18 #4
Det er muligvis sådan her du mener

<%
'Så input "  mette JENSEN" bliver til "Mette Jensen"

fornavn = Request.Form("requiredfornavn")
efternavn = Request.Form("requiredfornavn")

var1 = fornavn &" "& efternavn
'Laver lower-case
var1 = LCase(var1)
var1 = Trim(var1)  'Fjerner mellemrum foran og bagefter
'String = "mette jensen"
varL = Len(var1)
varR = Right(var1,varL-1)
var1 = UCase(Left(var1,1)) & varR

var4 = Instr(1, var1, " ", 1)
var5 = Mid(var1, var4+1, 1)
var3 = Left(var1,var4) & UCase(Mid(var1, var4+1, 1)) & Right(var1,CInt(varL-var4-1))

Navn = Replace(var3,",",".")

arrNavn = Split(Navn," ")
fnavn = arrNavn(0)
enavn = arrNavn(1)
SQL = "INSERT INTO femina (fornavn, efternavn) values('" & fNavn & "','" & eNavn & "')"
%>
Avatar billede magnus_b Nybegynder
24. maj 2003 - 12:27 #5
Så kom jeg endelig på nette igen.

Jeg kan ikke helt gennemskue koden. behandler den fornavn og efternavn som en eller to strenge? Plan er at jeg vil bruge funktionen på x antal input og derfor skal den gerne behandle den individuelt. Det fremgik muligvis ikke helt tydeligt.
Avatar billede -master-d- Nybegynder
24. maj 2003 - 12:53 #6
okay. Den behandler fornavn og efternavn som en streng.

Laver lige koden med forklaringer.

<%
Function Trimmerfunktion(navn1, navn2)
'**************************************************************
'**** Så input "  mette JENSEN" bliver til "Mette Jensen" *****
'**************************************************************

fornavn = navn1
efternavn = navn2

var1 = fornavn &" "& efternavn 'Sammensætter for- og efternavn.
var1 = LCase(var1) 'Laver METte JENSen til mette jensen(Lower-Case) 
var1 = Trim(var1)  'Fjerner mellemrum foran og bagefter
varL = Len(var1) 'Tæller antal tegn i strengen
varR = Right(var1,varL-1) 'Alle tegn undtagen det første.
var1 = UCase(Left(var1,1)) & varR 'Laver første bogstavt stort og sammensætter Strengen igen.
var4 = Instr(1, var1, " ", 1) 'Finder mellemrummet mellem fornavn og efternavn.
var5 = Mid(var1, var4+1, 1) 'Finder 1. bogstav i efternavnet.
var3 = Left(var1,var4) & UCase(var5) & Right(var1,CInt(varL-var4-1)) 'Laver 1. bogstav i efternavnet stort og sammensætter Strengen igen.

Navn = Replace(var3,",",".") 'Erstatter "," med "."

arrNavn = Split(Navn," ") 'Splitter ved " "
fnavn = arrNavn(0) 'Fornavn
enavn = arrNavn(1) 'Efternavn

'Indsætter dataene i databasen.
SQL = "INSERT INTO femina (fornavn, efternavn) values('" & fNavn & "','" & eNavn & "')"
End Function
%>

Så kan du bruge funktionen sådan her :

<%
navn1 = Request.Form("requiredfornavn")
navn2 = Request.Form("requiredefternavn") 

Trimmerfunktion(navn1, navn2)
%>
Avatar billede magnus_b Nybegynder
24. maj 2003 - 14:58 #7
Hvis nu
var1 = fornavn &" "& efternavn 'Sammensætter for- og efternavn.
slettes, vil jeg så ikke kunne bruge den på x antal strenge?
fornavn, efternavn, adresse, postnr osv?
Avatar billede -master-d- Nybegynder
24. maj 2003 - 15:34 #8
Jeg har ikke forstået helt hvordan du vil bruge endnu...

Skal det være sådan at du gerne vil have funktionen kørt på alle strengene også postnr, adresse etc. ????

For så skal den ændres lidt.
Avatar billede magnus_b Nybegynder
24. maj 2003 - 15:42 #9
Præcis - det er ikke altid så nemt at forklare sig ;-)
Avatar billede -master-d- Nybegynder
24. maj 2003 - 16:41 #10
Okay så skal den være sådan her.

<%
Function Trimmerfunktion(strengen)
'**************************************************************
'**** Så input "  mette JENSEN" bliver til "Mette Jensen" *****
'**************************************************************

var1 = strengen '
var1 = LCase(var1) 'Laver METte JENSen til mette jensen(Lower-Case) 
var1 = Trim(var1)  'Fjerner mellemrum foran og bagefter
varL = Len(var1) 'Tæller antal tegn i strengen
varR = Right(var1,varL-1) 'Alle tegn undtagen det første.
var1 = UCase(Left(var1,1)) & varR 'Laver første bogstavt stort og sammensætter Strengen igen.
var4 = Instr(1, var1, " ", 1) 'Finder mellemrummet mellem fornavn og efternavn.
var5 = Mid(var1, var4+1, 1) 'Finder 1. bogstav i efternavnet.
var3 = Left(var1,var4) & UCase(var5) & Right(var1,CInt(varL-var4-1)) 'Laver 1. bogstav i efternavnet stort og sammensætter Strengen igen.
Navn = Replace(var3,",",".") 'Erstatter "," med "."

Strengen = Navn

End Function
%>

Og så kan du kalde funktionen sådan her

<%
Fornavn = Trimmerfunktion(Request.Form("requiredfornavn"))
Efternavn = Trimmerfunktion(Request.Form("requiredefternavn"))

SQL = "INSERT INTO femina(fornavn, efternavn) values('" & Fornavn & "','" & Efternavn & "')"
Conn.Execute(SQL)
%>
Avatar billede magnus_b Nybegynder
24. maj 2003 - 20:09 #11
SQLén er tom
INSERT INTO femina (fornavn, efternavn) values('','')

Hvis fornavn og efternavn kommer ind i funktionen, kommer de ikke ud igen, så vidt jeg kan se.
Avatar billede -master-d- Nybegynder
24. maj 2003 - 20:22 #12
Den her virker, bare lige mig der klumrede lidt i det.

<%
Function Trimmerfunktion(strengen)

var1 = strengen
var1 = LCase(var1) 'Laver METte JENSen til mette jensen(Lower-Case) 
var1 = Trim(var1)  'Fjerner mellemrum foran og bagefter
varL = Len(var1) 'Tæller antal tegn i strengen
varR = Right(var1,varL-1) 'Alle tegn undtagen det første.
var1 = UCase(Left(var1,1)) & varR 'Laver første bogstavt stort og sammensætter Strengen igen.
var4 = Instr(1, var1, " ", 1) 'Finder mellemrummet mellem fornavn og efternavn.
var5 = Mid(var1, var4+1, 1) 'Finder 1. bogstav i efternavnet.
var3 = Left(var1,var4) & UCase(var5) & Right(var1,CInt(varL-var4-1)) 'Laver 1. bogstav i efternavnet stort og sammensætter Strengen igen.
Navn = Replace(var3,",",".") 'Erstatter "," med "."

Trimmerfunktion = strengen

End Function
%>

Og så kan du kalde funktionen sådan her

<%
Fornavn = Trimmerfunktion(Request.Form("requiredfornavn"))
Efternavn = Trimmerfunktion(Request.Form("requiredefternavn"))

SQL = "INSERT INTO femina(fornavn, efternavn) values('" & Fornavn & "','" & Efternavn & "')"
Conn.Execute(SQL)%>
Avatar billede -master-d- Nybegynder
24. maj 2003 - 20:30 #13
Du kan se et eksempel som jeg har lavet her.

http://www.websamba.com/denpei/exp/355977
Avatar billede magnus_b Nybegynder
24. maj 2003 - 20:44 #14
Hvis der er mellemrum foran input, bliver det ikke fjernet, så første bogstav bliver ikke ændret til stort :-(
Avatar billede -master-d- Nybegynder
24. maj 2003 - 22:51 #15
Så laver du den bare sådan her for at være sikker.

<%
Function Trimmerfunktion(strengen)

var1 = strengen
var1 = LCase(var1) 'Laver METte JENSen til mette jensen(Lower-Case) 
var1 = RTrim(var1)
var1 = LTrim(var1) 
varL = Len(var1) 'Tæller antal tegn i strengen
varR = Right(var1,varL-1) 'Alle tegn undtagen det første.
var1 = UCase(Left(var1,1)) & varR 'Laver første bogstavt stort og sammensætter Strengen igen.
var4 = Instr(1, var1, " ", 1) 'Finder mellemrummet mellem fornavn og efternavn.
var5 = Mid(var1, var4+1, 1) 'Finder 1. bogstav i efternavnet.
var3 = Left(var1,var4) & UCase(var5) & Right(var1,CInt(varL-var4-1)) 'Laver 1. bogstav i efternavnet stort og sammensætter Strengen igen.
Navn = Replace(var3,",",".") 'Erstatter "," med "."

Trimmerfunktion = strengen

End Function
%>
Avatar billede -master-d- Nybegynder
25. maj 2003 - 00:15 #16
Sorry en copy paster fejl...

Det skal være denne funktion
<%
Function Trimmerfunktion(strengen)

var1 = strengen
var1 = LCase(var1) 'Laver METte JENSen til mette jensen(Lower-Case) 
var1 = Trim(var1) 'Fjerner mellemrum foran og bagefter
varL = Len(var1) 'Tæller antal tegn i strengen
varR = Right(var1,varL-1) 'Alle tegn undtagen det første.
var1 = UCase(Left(var1,1)) & varR 'Laver første bogstavt stort og sammensætter Strengen igen.
var4 = Instr(1, var1, " ", 1) 'Finder mellemrummet mellem fornavn og efternavn.
var5 = Mid(var1, var4+1, 1) 'Finder 1. bogstav i efternavnet.
var3 = Left(var1,var4) & UCase(var5) & Right(var1,CInt(varL-var4-1)) 'Laver 1. bogstav i efternavnet stort og sammensætter Strengen igen.
Navn = Replace(var3,",",".") 'Erstatter "," med "."

Trimmerfunktion = Navn

End Function
%>
Avatar billede -master-d- Nybegynder
25. maj 2003 - 00:48 #17
I denne funktion er der også taget højde for flere efternavne/fornavne.
Avatar billede -master-d- Nybegynder
25. maj 2003 - 00:51 #18
Og så glemte jeg funktionen.. :P

<%
Function Trimmerfunktion(strengen)
var1 = Trim(strengen)  'Fjerner mellemrum foran og bagefter
var1 = LCase(var1) 'Laver METte JENSen til mette jensen(Lower-Case) 
arrStr = Split(var1," ")
For t = LBound(arrStr) TO UBound(arrStr)
Streng = Trim(arrStr(t))
varL = Len(streng)
if varL >= 1 then
varL = CInt(Len(Streng))-1
end if
var1 = UCase(Left(Streng,1)) 'Laver første bogstavt stort og sammensætter Strengen igen.
var3 = var3 &" "& var1 & Right(Streng,varL)
Next
Navn = Replace(var3,",",".") 'Erstatter "," med "."

Trimmerfunktion = Navn

End Function
%>
Avatar billede magnus_b Nybegynder
25. maj 2003 - 12:17 #19
Så vriker den - god søndag ;-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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