Just nu i M3-nätverket
Jump to content

Automatisk radbrytning


terra

Recommended Posts

Hej!

Har hittat ett gratis bildvisningsprogram, DUGallery, som jag jobbar lite på.

Har ett problem.

 

Följande kod visar innehållet från en databas, access:

<%=(rsPic.Fields.Item("PIC_DESC").Value)%>

 

Problemet jag har är att om det finns mycket information i fältet PIC_DESC så visas det som en enda lång text utan radbyte.

 

Hur får man radbyte efter xx antal tecken eller bredd??

 

Peter

 

Link to comment
Share on other sites

Rad 1:

radbryt = left(rsPic.Fields.Item("PIC_DESC").Value,50)

rad2:

radbryt = left(radbryt,50)

rad3:

radbryt = left(radbryt,50)

osv.

 

Har inte testat av det men borde funka =)

 

.::] a1 [::..........................

Det inte jag kan kan ni andra...

.::]2003[::..........................

 

 

Link to comment
Share on other sites

Tack för ditt svar alferone!

 

Jag vet inte om jag förstår dig riktigt, men jag har provat följande:

 

<%=left(rsPic.Fields.Item("PIC_DESC").Value,50)%>

 

Det som händer är att det bara visas 50 tecken ur innehållet i databasen.

 

Ändrar man till Value,20 så visas 20 tecken etc.

 

Kan du förklara vad du menar med:

 

rad2:

radbryt = left(radbryt,50)

rad3:

radbryt = left(radbryt,50)

 

Hur lägger man in detta??

 

Vad jag vill är att visa hela beskrivningen från databasen, men med radbyte efter xx antal tecken, lika för alla.

 

Peter

 

 

Link to comment
Share on other sites

Du skapar en variabel tex radbryt

radbryt = Left(left(rsPic.Fields.Item("PIC_DESC").Value,50)

Då har vi de första 50 i varibeln radbryt

radbryt = Left(radbryt,50)

då tar vi nästa 50 osv.

 

Det blir inte så snyggt men är ett snabbt o enkelt sätt att dela av...

 

 

Link to comment
Share on other sites

Tack för ditt svar och för din tid, men jag förstår inte riktigt hur man kodar :)

 

Har du möjlighet att visa mig med följande kod:

 

<%=(rsPic.Fields.Item("PIC_DESC")%>

 

Innehållet i PIC_DESC skapas genom ett formulär, och om du vet hur man kodar för att radbyta på samma ställe som när man skriver in uppgiften så vore det ännu bättre.

Alltså när man trycker på "Enter" :)

 

Peter

 

[inlägget ändrat 2003-02-24 18:11:15 av terra]

Link to comment
Share on other sites

för att skapa ett html (<br>) från ett formulär kör du en replace(formulär,vbCrLf,"<br>") inna du spara ner det i databasen.

 

Hör av dig om du behöver hjälp med det andra fortfarande =)

 

.::] a1 [::..........................

Det inte jag kan kan ni andra...

.::]2003[::..........................

 

 

Link to comment
Share on other sites

jag skriver ihop ngt som delar texten åt dig, men hinner inte nu...

 

.::] a1 [::..........................

Det inte jag kan kan ni andra...

.::]2003[::..........................

 

 

Link to comment
Share on other sites

[ alferOne ]

Här kommer en lite kodsnutt som fixar radbrytning efter ett visst antal tecken.

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

radlangd = 20

myText = "Detta ska radbrytas efter detta och denna text ska hamna på egen rad. Sedan fortsätter testen av denna kod som ska byta rad efter ca " & radlangd & " tecken på varje rad."

rad = myText

For i = 1 to Len(myText)

rad = Mid(myText,i,radlangd)

bryt = InStrRev(Mid(myText,i,radlangd)," ")-1

If Len(rad) > radlangd-1 Then

rad = Left(rad,bryt)

Response.Write(rad & "<br>")

Response.Flush

i = i + bryt

Else

Response.Write(rad & "<br><b>slut</b>")

Exit For

End If

next

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

 

.::] a1 [::..........................

Det inte jag kan kan ni andra...

.::]2003[::..........................

 

 

Link to comment
Share on other sites

 

Tack för detta alferOne!

 

Innehållet i databascellen skall altså läggas in i variabeln "myText" ??

 

Är det så detta funkar?

 

Peter

 

Link to comment
Share on other sites

[ alferOne ]

Stämmer bra, hoppas att den funkar utan problem för dig. =)

 

 

.::] a1 [::..........................

Det inte jag kan kan ni andra...

.::]2003[::..........................

 

 

Link to comment
Share on other sites

Tack!

 

Har nu provat detta men får följande fel:

 

############################

Reviews:

Posted by Admin on 24-2-2003 11:02:22

Microsoft VBScript runtime error '800a0005'

 

Invalid procedure call or argument: 'Left'

 

/shop1/productdetails.asp, line 136

######################################

 

Koden ser nu ut så här:

 

########################################

<%

Do While NOT rsreview.EOF

%>

<tr>

<td>Posted by&nbsp;

<%=rsreview("U_USERNAME")%>&nbsp;on&nbsp;<%=rsreview("R_DATEPOSTED")%></td>

</tr>

<tr>

<td>

<%

radlangd = 20

myText = rsreview("R_REVIEW")

rad = myText

For i = 1 to Len(myText)

rad = Mid(myText,i,radlangd)

bryt = InStrRev(Mid(myText,i,radlangd)," ")-1

If Len(rad) > radlangd-1 Then

rad = Left(rad,bryt)

Response.Write(rad & "<br>")

Response.Flush

i = i + bryt

Else

Response.Write(rad & "<br><b>&nbsp;</b>")

Exit For

End If

next

%>

</td>

</tr>

<tr>

<td>

<hr>

</td>

</tr>

<%

rsreview.MoveNext

Loop

%>

#############################

 

Rad 136 är:

 

##################################

rad = Left(rad,bryt)

##########################

 

Vad kan vara felet??

 

Peter

 

Link to comment
Share on other sites

[ alferOne ]

Missen ligger i att Left(xxxx,35) inte kan köras då xxxx är kortare är 35 tecken, trodde jag byggde bort den men tydligen inte, prova o labba lite med koden så får du kanske rätt på det =)

 

Annars hör av dig igen =)

 

.::] a1 [::..........................

Det inte jag kan kan ni andra...

.::]2003[::..........................

 

 

Link to comment
Share on other sites

[ alferOne ]

Tror det ska räcka med att ta bort -1 på kollen av rad längden:

If Len(rad) > radlangd Then

 

 

.::] a1 [::..........................

Det inte jag kan kan ni andra...

.::]2003[::..........................

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...