/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
tæl antal tejn i et ord og del
Fra : pepss


Dato : 05-02-04 20:34

Hejsa NG

jeg skal ha lavede en Function som kan dele ord hvis de f.eks er længer ind
30 bogstaver (ved godt at de ikke vil blive delt rigtig men det gør ikke
noget) men jeg kan ikke rigtig komme igen...
håber der er en der kan gi mig et lille hent om hvordan det kan laves!


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



 
 
Jens Gyldenkærne Cla~ (05-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 05-02-04 21:49

pepss skrev:

> jeg skal ha lavede en Function som kan dele ord hvis de f.eks
> er længer ind 30 bogstaver

Skal funktionen arbejde med enkeltord eller sætninger?

Med andre ord - kalder du den sådan:

delMitOrd("markedsføringsøkonomuddannelsesinstitutionernes")

- eller er det snarere sådan:

delMineOrd("I markedsføringsøkonomuddannelsesinstitutionernes
sommerferie skal henvendelser til studievejledningen rettes på
telefon 12 34 45 67")

I det første tilfælde er funktionen ret simpel:

Function delMitOrd(mitOrd)
   If len(mitOrd) > 30 Then
       delMitOrd = Left(mitOrd, 29) & "- " & Mid(mitOrd, 30)
   Else
       delMitOrd = mitOrd
   End If
End Function

I andet tilfælde kan du formentlig bruge et regex.

Men i normalt sprog er ord på mere end 30 bogstaver særdeles
sjældne. En person i sproggruppen lavede får nogle år siden et
udtræk fra en stor dansk tekstsamling. Der var 576584 forskellige
ord og af dem var 335 på mere end 30 bogstaver. Det er 0,06
procent. En del af ordene er i øvrigt sammensætninger med
bindestreg. Man kan med fordel udbygge din funktion til at klippe
ord over ved en eventuel bindestreg, såfremt den findes i forvejen.

Man kan se det omtalte indlæg her:
<http://groups.google.dk/groups?selm=gtg0f7ws37.fsf%40tuuri.ling.helsinki.fi>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

pepss (05-02-2004)
Kommentar
Fra : pepss


Dato : 05-02-04 22:07


"Jens Gyldenkærne Clausen" skrev
> pepss skrev:
>
> > jeg skal ha lavede en Function som kan dele ord hvis de f.eks
> > er længer ind 30 bogstaver
>
> Skal funktionen arbejde med enkeltord eller sætninger?

ja det er desværre sætninger

> I andet tilfælde kan du formentlig bruge et regex.

regex hvad er det?

> Men i normalt sprog er ord på mere end 30 bogstaver særdeles
> sjældne.

ja rigtige ord problemet er at man på min side skal oprette en profil og
nu er "bruger" jo nogen der kan finde på ALT så de laver bare en masse a
eller sådan noget.
når jeg så udskriver profilteksten på de forskælige sider går det helt galt
med designet


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



Jørn Andersen (05-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 05-02-04 22:43

On Thu, 5 Feb 2004 20:33:46 +0100, "pepss" <olefriis@privat.dk> wrote:

>jeg skal ha lavede en Function som kan dele ord hvis de f.eks er længer ind
>30 bogstaver (ved godt at de ikke vil blive delt rigtig men det gør ikke
>noget) men jeg kan ikke rigtig komme igen...
>håber der er en der kan gi mig et lille hent om hvordan det kan laves!

Måske kan du får inspiration fra et tidligere svar, hvor spørgeren
ville dele efter 50 tegn, men ikke inde i et ord. Dine krav er så lidt
mindre, men her kommer smøren:

-------------------------------
On Fri, 7 Dec 2001 19:45:48 +0100, "Jakob Munck"
<jakob.munck@tdcadsl.dk> wrote:

Hej Jakob,

><%=Chop("Lang_streng_der_skal_deles", 50)%>
>
>Men den har det problem, at den deler den tekst der skal citeres mit inde i
>ordene. Den kode der skal bruges, skal dele tekststrengen i sidste mellemrum
>før karakter nr. 50. Så ovenstående kode skal ændres, men hvordan?

Prøv noget i retning af nedenstående.
Funktionen "DelLinie" bruger funktionen "FindSpace" til at finde
mellemrum med.

<%
Function FindSpace(streng, value)
Dim intSpace, intSPaceEval
intSpace = 0
intSpaceEval = 1
Do While (intSpaceEval > 0 And intSpaceEval < value + 1)
intSpaceEval = InStr(intSpace + 1, streng, " ", 0)
If (intSpaceEval > 0) And (intSpaceEval < value + 1) Then
intSpace = intSpaceEval
End If
Loop
FindSpace = intSpace
End Function


Function DelLinie(input, value)
Length = Len(input)
Rest = input
RestL = Length
Output = ""
If Length > value Then
Do While RestL > value
sp = FindSpace(Rest, value)
Output = Output & "> " & Left(Rest, sp - 1) & "<br>" & vbcrlf
Rest = Mid(Rest, sp + 1)
RestL = Len(Rest)
Loop
DelLinie = Output & "> " & Rest
Else
DelLinie = input
End If
End Function

Response.Write DelLinie(streng, 50)
%>

Det ser ikke specielt kønt ud, så det kan sikkert sagtens optimeres en
del ...

-------------------------------

Som jeg skrev kan det sikkert sagtens optimeres. Det er delt op i to
funktioner, hvor den ene kalder den anden.

Good luck!

--
Jørn Andersen,
Brønshøj

pepss (05-02-2004)
Kommentar
Fra : pepss


Dato : 05-02-04 22:56


"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:q4e5205bvrli9je0qjsp6bn2g1uvnh1h1q@4ax.com...
> On Thu, 5 Feb 2004 20:33:46 +0100, "pepss" <olefriis@privat.dk> wrote:
>
> >jeg skal ha lavede en Function som kan dele ord hvis de f.eks er længer
ind
> >30 bogstaver (ved godt at de ikke vil blive delt rigtig men det gør ikke
> >noget) men jeg kan ikke rigtig komme igen...
> >håber der er en der kan gi mig et lille hent om hvordan det kan laves!
>
> Måske kan du får inspiration fra et tidligere svar, hvor spørgeren
> ville dele efter 50 tegn, men ikke inde i et ord. Dine krav er så lidt
> mindre, men her kommer smøren:

[snip svar]

ja det ser ud som om det er noget af det rigtige!
det vil jeg da lige se om jeg kan lave om til noget jeg kan bruge!
tak skal du ha!


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



pepss (06-02-2004)
Kommentar
Fra : pepss


Dato : 06-02-04 15:12


"pepss" skrev

> jeg skal ha lavede en Function som kan dele ord hvis de f.eks er længer
ind
> 30 bogstaver

jeg er ved at forsøge mig frem og har fået lavede dette:

text = "en lille test"
'Function delord(text)
If Not text = "" Then
arrWords = Split(Trim(text), " ")
For t = LBound(arrWords) to UBound(arrWords)
If len("arrWords") > 30 Then
delord = Left(arrWords, 29) & "- " & Mid(arrWords, 30)
End If
Next
Else
delord = text
End If
'End Function

men så får jeg en fejl jeg ikke kender:

Response-objekt, ASP 0106 (0x80020005)
En datatype, der ikke kunne håndteres, blev fundet.

hvad er det jeg gør som er så slemt at jeg skal ha sådan en fejl?

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



Jørn Andersen (06-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 06-02-04 19:16

On Fri, 6 Feb 2004 15:11:55 +0100, "pepss" <olefriis@privat.dk> wrote:

>
>"pepss" skrev
>
>> jeg skal ha lavede en Function som kan dele ord hvis de f.eks er længer
>ind
>> 30 bogstaver
>
>jeg er ved at forsøge mig frem og har fået lavede dette:
<snip>
>text = "en lille test"
>'Function delord(text)
> If Not text = "" Then
> arrWords = Split(Trim(text), " ")
> For t = LBound(arrWords) to UBound(arrWords)
> If len("arrWords") > 30 Then
> delord = Left(arrWords, 29) & "- " & Mid(arrWords, 30)
> End If
> Next
> Else
> delord = text
> End If
>'End Function
>
>men så får jeg en fejl jeg ikke kender:
>
>Response-objekt, ASP 0106 (0x80020005)
>En datatype, der ikke kunne håndteres, blev fundet.
>
>hvad er det jeg gør som er så slemt at jeg skal ha sådan en fejl?

Jeg kunne nu ikke provokere denne fejl frem. Jeg fik bare ikke noget
output. Er der ikke et linienr.?

Ellers kig på:
<url: http://www.aspfaq.com/show.asp?id=2099>
eller:
<url: http://www.aspfaq.com/show.asp?id=2330>

En løsning kunne være noget i retning af:

text = "en lille test"
text1 = "en lille testsomerblevetensmulestørreenddenvarførnu abcd"
Function delord(text)
If Not text = "" Then
arrWords = Split(Trim(text), " ")
For t = LBound(arrWords) to UBound(arrWords)
If len(arrWords(t)) > 30 Then
arrWords(t) = Left(arrWords(t), 29) & "- " & Mid(arrWords(t), 30)
End If
Next
delord = Join(arrWords)
Else
delord = text
End If
End Function

Response.Write text & "<br />" & vbcrlf
Response.Write delord(text) & "<br />" & vbcrlf
Response.Write text1 & "<br />" & vbcrlf
Response.Write delord(text1) & "<br />" & vbcrlf


Good luck!

--
Jørn Andersen,
Brønshøj

pepss (06-02-2004)
Kommentar
Fra : pepss


Dato : 06-02-04 22:04


"Jørn Andersen" skrev
"pepss" wrote:
> >> jeg skal ha lavede en Function som kan dele ord hvis de f.eks er længer
> >ind
> >> 30 bogstaver
> >
> >jeg er ved at forsøge mig frem og har fået lavede dette:

[snip kode og fejl]

> Jeg kunne nu ikke provokere denne fejl frem. Jeg fik bare ikke noget
> output.

hmm det er helt den samme som jeg prøver med...
at der ikke kom noget output var jeg næsten klar over da det statig var et
forsøg

> Er der ikke et linienr.?

nej desværre! det ville jo gøre det noget lætter!

> En løsning kunne være noget i retning af:

[snip kode]

tak skal du ha det var jo lige det jeg prøvede på

så lærte jeg også lige noget nyt "delord = Join(arrWords)"


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste