Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-11-20 18:58:00 - Buster Sporrong, i forum asp - allmänt, Tråden har 9 Kommentarer och lästs av 502 personer

Jag har en nyhetssida där jag vill hämta in de 5 semaste nyheterna ur en acess-databas. Den första nyheten skall skrivas ut i sin helhet medan de andra bara ska skrivas ut med rubrik och ett givet antal tecken ur själva texten. Hur löser jag detta?

Alla lösningar jag hittat har riktat in sig på sql, typ:

"SELECT LEFT(fltText,100) AS fltTextLeft, fltNID, fltHeader, fltDate FROM tblNews ORDER BY fltDate"

men det funkar ju inte i detta fallet eftersom fösta posten skall skrivas ut helt


Svara

Sv: Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-11-20 19:42:54 - Stefan Persson

Om jag förstått dig rätt borde något i stil med detta fungera.

SELECT TOP 5 [fält] FROM ... ORDER BY ...

rad = 1

do while not rs.EOF '(rs är ditt recordset alltså)

if rad = 1 then
' först nyheten, skriv ut allt.
Response.Write(rs("RUBRIK"))
Response.Write(rs("TEXTEN"))
rad = 2

else
'Resten av nyheterna
Response.Write(rs("RUBRIK"))

'Skriver ut de 30 första tecknen i texten
Response.Write( Left(rs("TEXTEN"),30) )

end if

rs.movenext

loop


Svara

Sv:Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-11-20 22:53:57 - Andreas Hillqvist

Om man skall göra något för första raden enbar är det DUMT att lägga en if sats. Bättre att skriva:


<%
Dim fltNID
Dim fltDate
Dim fltHeader
Dim fltText

    Set rs = CreateObject("ADODB.Recordset")
    rs.Open conn, "SELECT fltText, fltNID, fltHeader, fltDate" & vbCrLf & _
                  "FROM tblNews" & vbCrLf & _
                  "ORDER BY fltDate" 

    If rs.EOF Then
        Response.Write "Finns inga nyheter!"
    Else

        Set fltNID = rs("fltNID")
        Set fltDate = rs("fltDate")
        Set fltHeader = rs("fltHeader")
        Set fltText = rs("fltText")

      ' först nyheten, skriv ut allt.
        Response.Write fltDate & " - " & Server.HTMLEncode(fltHeader) & "<BR>" & vbCrLf
        Response.Write Server.HTMLEncode(fltText.Value)
        rs.MoveNext

        'Resten av nyheterna
        Do Until rs.EOF 
            Response.Write fltDate & " - " & Server.HTMLEncode(fltHeader) & "<BR>" & vbCrLf
            If fltText.ActualSize > 30
                Response.Write Server.HTMLEncode(Left(fltText.Value, 30)) & "..."
            Else
                Response.Write Server.HTMLEncode(fltText.Value)
            End If
            rs.movenext
        Loop
    End If
    rs.Close

%>


Svara

Sv: Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-11-21 12:30:48 - Ragnar Hedblom

Hej!

Här har du en funktion som du anropar där du vill ha den avkortade texten stå.
Funktionen tar två argument: texten och hur många tecken som ska visas.
Funktionen ser också till att avkapningen inte sker mitt i ett ord samt att den lägger till tre punkter för att visa att texten egentligen är längre.

<%
Function shorten(txt,n)
result = Left(txt,n)
lastspacePos = InStrRev(result," ")
result = Left(result,lastspacePos)
shorten = result & " ..."
End Function

texten = "Ett oscilloskop är ett instrument som kan visa hur en spänning förändras med tiden. Traditio-nella oscilloskop är relativt stora instrument som använder ett katodstrålerör som display precis som TV-apparater och CRT-bildskärmar. CRT står just för Catode Ray Tube (katodstråle-rör). Därför blir också instrumentet stort."

Response.Write(texten & "<hr />")
Response.Write(shorten(texten,50)) 'Här anropas funktionen med variabeln "texten" och 50 tecken
%>

//Svenne


Svara

Sv: Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-11-21 14:09:58 - Buster Sporrong

Så här blev lösningen:

SQL:
SELECT TOP 5 * FROM tabell WHERE fKategori ='nyheter' ORDER BY fDatum DESC
(visar inte den sista posten, den plockas fram för att scriptet ska veta om den ska visa "alla nyheter"-länken)

Första posten skrivs ut för sig för att underlätta en lite annan designlösning på den. Sedan loopar jag resterande poster så här:
<code>
<%For i = 1 To 3
if not rs.EOF then%>
<%If rs("fBeskrivning")<> "" Then%>
<small><%=rs("fDatum")%></small><br>
<strong><%=rs("fBeskrivning")%></strong>
<%Else%>
<strong>Update: <%=rs("fDatum")%></strong>
<%End If%>
<br>
<%text = rs("fText")
Text = Replace(Text,vbcrlf,"<br>" & vbCrLf)%>
<%Text = left(Text,90)
Text = Text & "..."%>
<%= Text %>
<br>
<small>Update by: <%=rs("fUppdateratAv")%></small>
<br><br>
<%rs.MoveNext%>
<%Else%>
<% exit for%>
<% End If %>
<%Next%>
<%End If%>
<%If not rs.EOF then%>
All news»
<%End If%>
</code>

Nu undrar jag om det finns något sätt att avläsa ifall den aktuella avkapade posten har text kvar, så att scriptet vet om det ska skriva ut "..." + en länk för att ta besökaren till den fullständiga nyheten.


Svara

Sv:Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-11-21 16:56:31 - Stefan Persson

För att kolla om den avkapade posten har text kvar kan du använda funktionen Sven skrev här ovan

<%
Function shorten(txt,n)
result = Left(txt,n)
lastspacePos = InStrRev(result," ")
result = Left(result,lastspacePos)

'Kollar om texten är längre än antalet tecken du vill visa
if len(txt) > n then
result = result & " ..."
end if

shorten = result

End Function 
%>


Sen skulle jag rekommendera att du skriver din kod enligt sättet Andreas angav här ovan, det känns lite smidigare.


Svara

Sv: Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-12-01 15:29:20 - Buster Sporrong

>>Andreas Hillqvist
Jag får inte din kod att fungera alls. Det känns som att det saknas en hel del saker i koden, exempelvis ett "then" i if-satssen. Hur jag än gör så skriker scriptet ifrån att det saknas objekt.


Svara

Sv:Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-12-01 16:30:35 - Benni Svensson

Andreas Hillqvists script kan nog inte bli bättre, men det gäller ju att du använder det på rätt sätt.
"Allting rätt, som används fel blir ju galet..."
<code>
sText = "Men vad tror du att detta skall kunna bli om du inte gör någonting för att det skall bli
någonting?"
response.write shorten(sText,15)
</code>


Svara

Sv:Skriva ut de första x-antal tecknen ur vissa poster

Postades av 2005-12-01 23:38:04 - Andreas Hillqvist

Har du öppnat din anslutning? Koden förutsätter ett ADODB.Connection objekt öppnat och tilldelat conn variablen.

Att koden inte fungerar alls kan bero på att jag inte kört koden utan skrivit den för att ge insperation.
Koden visar upp några principer.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 779
27 960
271 761
382
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies