Avatar billede bootlab Nybegynder
21. februar 2004 - 19:02 Der er 2 kommentarer og
1 løsning

String opdeling

Hej :)

Jeg har følgende som opdeler en streng op i segmenter som skal
xml formateres..

Kode:

<%
Response.write "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "iso-8859-1" & Chr(34) & "?>" & vbCrLf
tekst = "Det kunne være endt i en katastrofe, men de 75 passagerer i DSB's intercitytog nummer 108 slap uden en skramme,"
tekst = tekst & " da toget med en fart på 150 km/t afsporede ved Tommerup station på Fyn tidligt lørdag morgen. "
tekst = tekst & "Når det ikke gik værre, skyldes det, at det var de to bageste bogier (toakslede hjulsæt, red.) i det bageste togsæt, der afsporede."
tekst = tekst & "Ulykken skete tilsyneladende fordi den øverste del af togskinnen var brækket af på et stykke på cirka halvanden meter."
tekst = tekst & "- Det understreger for mig det, som vi var klar over i forvejen, nemlig at skinnerne i Danmark generelt er slidte,"
tekst = tekst & " sagde Banestyrelsens Tekniske Direktør, Erik Haldbæk efter ulykken."
tekst = tekst & "Kilde: Ekstra Bladet"

page = 1

Response.write "<sider>"
For i = 1 to len(tekst) Step 200
    Response.Write "<side" & page & ">" & vbCrLf & Mid(tekst,i,200) & vbCrLf & "</side" & page & ">"
    page = page + 1
Next
Response.write "</sider>"
%>

Mit problem er nu at denne metode opdeler efter antal karaktere
og derfor også splitter side midt i et ord.

Er der nogle der har en løsning som gør at den ikke opdeler midt i et ord?
Avatar billede steen Nybegynder
21. februar 2004 - 21:45 #1
Kan du bruge dette?

<%
Function EnlargeText(strContent, intLength)
    Dim strTemp
    If Len(strContent) < intLength Then
        EnlargeText = strContent
    Else
        strTemp = Left(strContent, intLength + 1)
        Do While Right(strTemp,1) <> " "
            strTemp = Left(strTemp, Len(strTemp) - 1)
        Loop
        EnlargeText = Left(strTemp, Len(strTemp) - 1)           
    End If
End Function

Response.write "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "iso-8859-1" & Chr(34) & "?>" & vbCrLf
tekst = "Det kunne være endt i en katastrofe, men de 75 passagerer i DSB's intercitytog nummer 108 slap uden en skramme,"
tekst = tekst & " da toget med en fart på 150 km/t afsporede ved Tommerup station på Fyn tidligt lørdag morgen. "
tekst = tekst & "Når det ikke gik værre, skyldes det, at det var de to bageste bogier (toakslede hjulsæt, red.) i det bageste togsæt, der afsporede."
tekst = tekst & "Ulykken skete tilsyneladende fordi den øverste del af togskinnen var brækket af på et stykke på cirka halvanden meter."
tekst = tekst & "- Det understreger for mig det, som vi var klar over i forvejen, nemlig at skinnerne i Danmark generelt er slidte,"
tekst = tekst & " sagde Banestyrelsens Tekniske Direktør, Erik Haldbæk efter ulykken."
tekst = tekst & "Kilde: Ekstra Bladet"

page = 1

Response.write "<sider>"
For i = 1 to len(tekst) Step 200
    Response.Write "<side" & page & ">" & vbCrLf & EnlargeText(Mid(tekst,i,200),200) & vbCrLf & "</side" & page & ">"
    page = page + 1
Next
Response.write "</sider>"
%>
Avatar billede bootlab Nybegynder
22. februar 2004 - 21:56 #2
hmm... jeg har først set din post nu... har ikke fået mail på
at der er kommenteret på spørgsmålet (Eksperten tilter vist pt.)

Anyway!
Jeg har testet dit kode forslag og det virker desværre ikke efter
hensigten! den æder nogle af orderne!!

Kigge lige videre på det imorgen (mandag)
Avatar billede bootlab Nybegynder
24. februar 2004 - 12:37 #3
lukker dette spm, og opretter et nyt med en anden formulering.
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