/ 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
Hvordan laves < ved hver 50. karakter når ~
Fra : Jakob Munck


Dato : 07-12-01 07:39

Jeg arbejder med en debat-tjeneste, hvor brugerne skal kunne citerer
hinandens indlæg, når de selv svarer - lige som man gør med normale emails.
For at det virker skal jeg bruge noget kode, der dels erstatter alle
linieskift med et "> " og dels brækker lange tekststykker op i mindre dele,
hvor der f.eks. for hver 50 karakterer indsættes den samme, altså "> ".

Koden der henter teksten fra tabelfeltet "body" og erstatter linieskift med
> ser sådan ud:

(Replace (rsInReplyTo("Body"), vbCrLf, vbCrLf + "> "))


Men den er ikke god, når der er tale om store tekststykker, for den
indsætter kun tegnet ved linieskift. Hvordan skal den ændres/udvides, så
den - ud over dette - indsætter dette tegn for hver 50. karakter?


v.h.
Jakob Munck



 
 
Rune Baess (07-12-2001)
Kommentar
Fra : Rune Baess


Dato : 07-12-01 14:19

> Koden der henter teksten fra tabelfeltet "body" og erstatter linieskift
med
> > ser sådan ud:
>
> (Replace (rsInReplyTo("Body"), vbCrLf, vbCrLf + "> "))
>
>
> Men den er ikke god, når der er tale om store tekststykker, for den
> indsætter kun tegnet ved linieskift. Hvordan skal den ændres/udvides, så
> den - ud over dette - indsætter dette tegn for hver 50. karakter?

Du kunne jo lave en funktion der først ombryder linier ved max 50
karakterer, og derpå indsætter ">"

Rune








Jakob Munck (07-12-2001)
Kommentar
Fra : Jakob Munck


Dato : 07-12-01 19:46

>
> Du kunne jo lave en funktion der først ombryder linier ved max 50
> karakterer, og derpå indsætter ">"
>

Ja, den ser sådan ud:

<%
Function Chop(input, value)
Length = Len(input)
If Length > value Then
Break = Int(Length/value)
Rest = Length - Break*value
For a = 0 To Break-1
Chop = Chop & Mid(input, (a*value)+1, value) & "<br>"
Next
Chop = Chop & Mid(input, (Break*value)+1, Rest)
Else Chop = input
End If
End Function
%>

<%=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?

v.h.
Jakob Munck



Jørn Andersen (08-12-2001)
Kommentar
Fra : Jørn Andersen


Dato : 08-12-01 03:27

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 ...

Good luck,
Jørn


--
Jørn Andersen
Brønshøj

Jakob Munck (08-12-2001)
Kommentar
Fra : Jakob Munck


Dato : 08-12-01 08:01

Det virker !

Hatten af for dig Jørn Andersen, du klarede problemerne endnu en gang. Godt
gået !


Mange hilsner og tak fra
Jakob Munck



Jakob Munck (08-12-2001)
Kommentar
Fra : Jakob Munck


Dato : 08-12-01 09:44

Nu mangler jeg så bare at finde ud af, hvordan jeg får indlægst indholdet af
et recordsæt "rs7" i en tekststreng, for at det virker. Jeg skriver sådan:

streng = rs7("Body")


og det virker ikke. Men hvordan skal det så skrives?


v.h.
Jakob Munck




Jakob Munck (08-12-2001)
Kommentar
Fra : Jakob Munck


Dato : 08-12-01 10:17

OK, jeg har fundet ud af det !


jm



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste