Google Grupper understøtter ikke længere nye Usenet-opslag eller -abonnementer. Tidligere indhold er fortsat synligt.

Hvordan laves < ved hver 50. karakter når man citerer ?

0 visninger
Gå til det første ulæste opslag

Jakob Munck

ulæst,
7. dec. 2001, 01.38.3907.12.2001
til
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

ulæst,
7. dec. 2001, 08.19.0107.12.2001
til
> 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

ulæst,
7. dec. 2001, 13.45.4807.12.2001
til
>
> 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

ulæst,
7. dec. 2001, 21.27.1407.12.2001
til
On Fri, 7 Dec 2001 19:45:48 +0100, "Jakob Munck"
<jakob...@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

ulæst,
8. dec. 2001, 02.01.2308.12.2001
til
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

ulæst,
8. dec. 2001, 03.44.0508.12.2001
til
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

ulæst,
8. dec. 2001, 04.17.0908.12.2001
til
OK, jeg har fundet ud af det !


jm


0 nye opslag