Avatar billede ubbe Nybegynder
19. maj 2002 - 09:40 Der er 53 kommentarer og
1 løsning

Left funktion

Hej eksperten igen...

Jeg mangler også hjælp til hvordan man, når man har et udtræk fra db´en som kun må være et specielt antal tegn, hvis der er flere tegn end de 25 som jeg skal bruge skal den lave 3 "...", problemet består i at hvis 25´vende tegn er et mellemrum ser det jo åndsvagt ud, kan man evt. fjerne det sidste mellemrum hvis der skulle være sådan et i det 25´vende tegn?!?!?

Jeg har det her indtil nu:
Left(RS2("Headline"),25)


På forhånd tak
Avatar billede wilweb Nybegynder
19. maj 2002 - 09:47 #1
Forstår jeg dig rigtig, hvis jeg siger at:
Hvis RS2("Headline") er større end 25 tegn så skal der tilføjes ... ?
Eller skal der være 22 tegn plus ... ?
Avatar billede ubbe Nybegynder
19. maj 2002 - 09:51 #2
I teorien er det vel ligemeget, da man let kan skrive de tre "..." på bagved uden problemer...
Mit problem er at hvis det sidste tegn er et mellemrum så vil jeg jo have min linie til at stå fint, men så vil de 3 "..." komme efter mellemrummet hvilket jeg ikke vil syntes ser specielt fixt ud... :)

De 3 "..." skal også kun tilføjes når jeg kommer ovet et bestemt antal tegn i udtrækket!!!
Avatar billede askhoej Praktikant
19. maj 2002 - 09:52 #3
Replace(Right(Left(RS2("Headline"),25),1)," ","")
Avatar billede askhoej Praktikant
19. maj 2002 - 09:55 #4
If Len(RS2("Headline")) > Bestemt_antal_tegn Then

Replace(Right(Left(RS2("Headline"),25),1)," ","")

End If
Avatar billede ubbe Nybegynder
19. maj 2002 - 09:56 #5
>> askhoej

Det virkede i hvert fald ikke... Endte med at jeg kun fik et tegn vist!!! :/
Avatar billede askhoej Praktikant
19. maj 2002 - 09:56 #6
If Len(RS2("Headline")) > Bestemt_antal_tegn Then

Response.Write(Replace(Right(Left(RS2("Headline"),25),1)," ","") & "...")

End If
Avatar billede ubbe Nybegynder
19. maj 2002 - 10:01 #7
>> askhoej

Jeg får kun de 3 "..." nu?!?
Avatar billede ubbe Nybegynder
19. maj 2002 - 10:04 #8
Det her har jeg nu...

    If Len(RS2("Headline")) > "22" Then
        Headline = Replace(Right(Left(RS2("Headline"),22),1)," ","") & "..."
    End If
Avatar billede askhoej Praktikant
19. maj 2002 - 10:14 #9
If Len(RS2("Headline")) > "22" Then

  If Right(Left(RS2("Headline"),25),1) = " " Then
    Response.Write(Left(RS2("Headline"),24) & "...")
  Else
    Response.Write(Left(RS2("Headline"),25) & "...")
  End If

End If
Avatar billede wilweb Nybegynder
19. maj 2002 - 10:15 #10
if Len(RS2("Headline")) > 25 then
  NyString = Left(Replace("RS2("Headline"), " ", "..."), 22)
else
  NyString = RS2("Headline")
End if

Måske sådanne her (ikke testet)
Avatar billede ubbe Nybegynder
19. maj 2002 - 10:25 #11
>> askhoej

Det virkede tildels, nu virker min loop bare ikke, nu står der 2 nyheder med samme overskrift...
???
Avatar billede askhoej Praktikant
19. maj 2002 - 10:28 #12
smid lige koden herind
Avatar billede ubbe Nybegynder
19. maj 2002 - 10:30 #13
If Len(RS2("Headline")) > "22" Then
        If Right(Left(RS2("Headline"),25),1) = " " Then
            Headline = (Left(RS2("Headline"),24) & "...")
        Else
            Headline = (Left(RS2("Headline"),25) & "...")
        End If
    End If


<td valign="top">
                                <% Do Until RS2.EOF %>
                                <a href="/news/news.asp?newsid=<% Response.Write RS2("NewsID") %>" title="<% Response.Write RS2("Headline") %>"><% Response.Write Headline &"("& Day(RS2("WrittenDate")) &"/"& Month(RS2("WrittenDate")) %>)</a><br>
                                <% RS2.Movenext
                                Loop
                                %>
                            </td>
Avatar billede askhoej Praktikant
19. maj 2002 - 10:39 #14
<td valign="top">
<%
Do Until RS2.EOF

If Len(RS2("Headline")) > "22" Then
  If Right(Left(RS2("Headline"),25),1) = " " Then
    Headline = (Left(RS2("Headline"),24) & "...")
  Else
      Headline = (Left(RS2("Headline"),25) & "...")
  End If
End If
%>
<a href="/news/news.asp?newsid=<% Response.Write RS2("NewsID") %>" title="<% Response.Write RS2("Headline") %>"><% Response.Write Headline &"("& Day(RS2("WrittenDate")) &"/"& Month(RS2("WrittenDate")) %>)</a><br>
<%
RS2.Movenext
Loop
%>
</td>
Avatar billede ubbe Nybegynder
19. maj 2002 - 10:46 #15
<%
    Do Until RS2.EOF
        If Len(RS2("Headline")) > "22" Then
            If Right(Left(RS2("Headline"),25),1) = " " Then
                Headline = (Left(RS2("Headline"),24) & "...")
            Else
                Headline = (Left(RS2("Headline"),25) & "...")
            End If
        End If
%>
                                <a href="/news/news.asp?newsid=<% Response.Write RS2("NewsID") %>" title="<% Response.Write RS2("Headline") %>"><% Response.Write Headline &"("& Day(RS2("WrittenDate")) &"/"& Month(RS2("WrittenDate")) %>)</a><br>
<%
    RS2.Movenext
    Loop
%>



Det der giver det samme, stadig samme overskrift...? Er det mig der failer eller hvad???
Avatar billede wilweb Nybegynder
19. maj 2002 - 10:46 #16
<%
StrOld = RS2("Headline")
if Len(StrOld) > 25 then
  NyString = Replace(StrOld, " ", "...")
  response.write Left(NyString,22) & "..."
else
  NyString = StrOld
  response.write NyString
End if
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 10:52 #17
Her er den!!!

<%
StrOld = RS2("Headline")

if Len(StrOld) > 22 then
  If Right(Left(StrOld,25),1) = " " Then
    NyString = Replace(StrOld, " ", "...")
    response.write Left(NyString,22) & "..."
  else
    NyString = StrOld
    response.write NyString
  End if
End if
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 10:58 #18
Og endnu mere rigtig:

<%
StrOld = RS2("Headline")

if Len(StrOld) > 22 then
  If Right(Left(StrOld,25),1) = " " or Len(StrOld) > 25 Then
    NyString = Replace(StrOld, " ", "...")
    response.write Left(NyString,22) & "..."
  else
    NyString = StrOld
    response.write NyString
  End if
End if
%>
Avatar billede askhoej Praktikant
19. maj 2002 - 11:00 #19
ubbe>> Len(RS2("Headline")) > 22 ikke Len(RS2("Headline")) > "22"
<%
    Do Until RS2.EOF
        If Len(RS2("Headline")) > 22 Then
            If Right(Left(RS2("Headline"),25),1) = " " Then
                Headline = (Left(RS2("Headline"),24) & "...")
            Else
                Headline = (Left(RS2("Headline"),25) & "...")
            End If
        End If
%>
                                <a href="/news/news.asp?newsid=<% Response.Write RS2("NewsID") %>" title="<% Response.Write RS2("Headline") %>"><% Response.Write Headline &"("& Day(RS2("WrittenDate")) &"/"& Month(RS2("WrittenDate")) %>)</a><br>
<%
    RS2.Movenext
    Loop
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:02 #20
<%
    Do Until RS2.EOF
        If Len(RS2("Headline")) > 22 Then
            If Right(Left(RS2("Headline"),25),1) = " " or Len(RS2("Headline")) > 25 Then
                Headline = Replace(RS2("Headline"), " ", "...")
            Else
                Headline = RS2("Headline")
            End If
        End If
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:06 #21
hvis du ikke vil bruge Replace!!!
<%
    Do Until RS2.EOF
        If Len(RS2("Headline")) > 22 Then
            If Right(Left(RS2("Headline"),25),1) = " " or Len(RS2("Headline")) > 25 Then
                Headline = Left(RS2("Headline"),22) & "..."

            Else
                Headline = RS2("Headline")
            End If
        End If
%>
Avatar billede ubbe Nybegynder
19. maj 2002 - 11:08 #22
messenger? anyone, jeg går snart amok, begge jeres svar virker halvt!!! :(
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:10 #23
Halvt Hvordan?
Det virker fint her hos mig!!
Avatar billede ubbe Nybegynder
19. maj 2002 - 11:12 #24
gizom jeg får denne fejl ved brug af dit:

Error Type:
Microsoft VBScript compilation (0x800A0408)
Invalid character
/news/news.asp, line 89
        End If

Linie 89:
RS2.Movenext
    Loop
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:13 #25
Prøv og lægge RS2("Headline") ind i en variable, som i mit svar 19/05-2002 10:58:18
Avatar billede ubbe Nybegynder
19. maj 2002 - 11:19 #26
http://80.196.154.107 højre side, sådan ser det ud nu???
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:22 #27
Det her er testet og virker her hos mig!
Jeg tester på en hardkodet string som er over 25 tegn og tegn 25 er et mellemrum...

<%
'StrOld = RS2("Headline")
StrOld ="123456789012345678901234  "

if Len(StrOld) > 22 then
  If Right(Left(StrOld,25),1) = " " or Len(StrOld) > 25 Then
    'NyString = Replace(StrOld, " ", "...")
    response.write Left(StrOld,22) & "..."
  else
        response.write StrOld
  End if
End if
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:23 #28
Ja det kan jeg godt se!
Fjern Replace helt for det er den der gør det.
og brug mit sidste svar!
Avatar billede ubbe Nybegynder
19. maj 2002 - 11:25 #29
Altså den her:

hvis du ikke vil bruge Replace!!!
<%
    Do Until RS2.EOF
        If Len(RS2("Headline")) > 22 Then
            If Right(Left(RS2("Headline"),25),1) = " " or Len(RS2("Headline")) > 25 Then
                Headline = Left(RS2("Headline"),22) & "..."

            Else
                Headline = RS2("Headline")
            End If
        End If
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:28 #30
Det vil sige at i din kode skal du skrive:
  Headline = Left(StrOld,22) & "..."
i stedet for:
  response.write Left(StrOld,22) & "..."
og
  Headline = StrOld
i stedet for:
  response.write StrOld

er det til at forstå?
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:29 #31
jeg laver lige koden tilpasset dit! Vent
Avatar billede askhoej Praktikant
19. maj 2002 - 11:29 #32
Gider ikke lige have flere mails
Avatar billede ubbe Nybegynder
19. maj 2002 - 11:31 #33
Sorry jeg ikke fatter det da!!!
Avatar billede steen_hansen Forsker
19. maj 2002 - 11:33 #34
Jeg har ikke orket at læse det hele igennem, men er det dette du efterlyser?

while NOT RS.EOF
text = left(RS("kommentar"), 20)
text = replace(text,vbcrLF,"<br>")

response.write "<tr><td>" &  text & "..." &  "</td></tr>"

RS.MoveNext
text=""
wend
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:35 #35
ubbe:> det må da virke, med minder jeg har tastfejl som jeg ikke har set!

<%
StrOld = RS2("Headline")


<%
    Do Until RS2.EOF
        If Len(StrOld) > 22 Then
            If Right(Left(StrOld,25),1) = " " or Len(StrOld) > 25 Then
                Headline = Left(StrOld,22) & "..."
            Else
                Headline = StrOld
            End If
        End If
%>
<a href="/news/news.asp?newsid=<% Response.Write RS2("NewsID") %>" title="<% Response.Write RS2("Headline") %>"><% Response.Write Headline &"("& Day(RS2("WrittenDate")) &"/"& Month(RS2("WrittenDate")) %>)</a><br>
<%
    RS2.Movenext
    Loop
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:37 #36
Der kom lige et <% for meget

<%
StrOld = RS2("Headline")
    Do Until RS2.EOF
        If Len(StrOld) > 22 Then
            If Right(Left(StrOld,25),1) = " " or Len(StrOld) > 25 Then
                Headline = Left(StrOld,22) & "..."
            Else
                Headline = StrOld
            End If
        End If
%>
<a href="/news/news.asp?newsid=<% Response.Write RS2("NewsID") %>" title="<% Response.Write RS2("Headline") %>"><% Response.Write Headline &"("& Day(RS2("WrittenDate")) &"/"& Month(RS2("WrittenDate")) %>)</a><br>
<%
    RS2.Movenext
    Loop
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:38 #37
askhoej :> hvad mener du med det???
Avatar billede ubbe Nybegynder
19. maj 2002 - 11:40 #38
gizom: se lige hp´en igen, ligesom om loopet ikke virker!?!?!?
Mange tak for hjælpen so far, håber du holder ud...
Avatar billede askhoej Praktikant
19. maj 2002 - 11:42 #39
gizmo>> ikke noget særligt, ville bare skrive en kommentar og fravælge E-mail da jeg ikke gad at have flere mails ;-)

Et byd på en løsning:

<%
    Do Until RS2.EOF
        If Len(RS2("Headline")) > 22 Then
            If Right(Left(RS2("Headline"),25),1) = " " Then
                Headline = (Left(RS2("Headline"),24) & "...")
            Else
                Headline = (Left(RS2("Headline"),25) & "...")
            End If
        Else
                Headline = RS2("Headline")
        End If
%>
                                <a href="/news/news.asp?newsid=<% Response.Write RS2("NewsID") %>" title="<% Response.Write RS2("Headline") %>"><% Response.Write Headline &"("& Day(RS2("WrittenDate")) &"/"& Month(RS2("WrittenDate")) %>)</a><br>
<%
    RS2.Movenext
    Loop
%>
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:44 #40
Der kommer da 2 link?
Avatar billede askhoej Praktikant
19. maj 2002 - 11:46 #41
et af problemerne med gizmo's løsning er at hvis det næste link i RecordSet'et er under 22 tegn så bliver den forrige Headline udskrevet.

Prøv den sidste løsning jeg sendte til dig.
Avatar billede wilweb Nybegynder
19. maj 2002 - 11:48 #42
ok, det skulle være "Frost joins our team" og "We are seeking a skilled PCw clan"
Efter
RS2.Movenext
nulstil StrOld:
StrOld =""
Avatar billede askhoej Praktikant
19. maj 2002 - 11:53 #43
gizom>> og hvilket problem skulle det så løse?
Avatar billede ubbe Nybegynder
19. maj 2002 - 11:57 #44
Tak skal I have alle 2-3, askhoej´s sidste svar udløste de 60points, da det endelig virkede...
:D Nice experts!!!
Avatar billede wilweb Nybegynder
19. maj 2002 - 12:00 #45
askhoej:> vær dog med til at løse problemet for ubbe, i sted for være så skadefro!

StrOld = RS2("Headline")

Skal ned under Do Until RS2.EOF

Do Until RS2.EOF
StrOld = RS2("Headline")
Avatar billede askhoej Praktikant
19. maj 2002 - 12:06 #46
gizmo>> undskyld mig da, men nedenstående giver altså overhovedet ikke en løsning på det oprindelige spørgsmål?

If Len(StrOld) > 22 Then
            If Right(Left(StrOld,25),1) = " " or Len(StrOld) > 25 Then
                Headline = Left(StrOld,22) & "..."
            Else
                Headline = StrOld
            End If
        End If
Avatar billede askhoej Praktikant
19. maj 2002 - 12:08 #47
Du skriver at hvis det 25 tegn i strengen er et mellemrum eller er længere end 25 tegn, så skal der udskrives de første 22 tegn og så 3 prikker?
Avatar billede wilweb Nybegynder
19. maj 2002 - 12:10 #48
ubbe :> hvor er du altså fair! Men du er i din fulde ret til at give point til den du syntes løser dit problem.
Avatar billede wilweb Nybegynder
19. maj 2002 - 12:11 #49
askhoej:> Det er Ok, jeg prøver bare at hjælpe!!!!!
Avatar billede ubbe Nybegynder
19. maj 2002 - 12:13 #50
Sorry...
Avatar billede askhoej Praktikant
19. maj 2002 - 12:15 #51
ubbe>> for det første er points vel egentlig ret ligegyldigt man kan jo hverken spise dem eller købe bajere på det lokale værtshus og for den sags skyld vil jeg da gerne give dem til dig hvis du kan give mig en ordentlig begrundelse til hvorfor du har fortjent dem!
Avatar billede askhoej Praktikant
19. maj 2002 - 12:15 #52
sorry der skulle stå:

gizom>> for det første er points vel egentlig ret ligegyldigt man kan jo hverken spise dem eller købe bajere på det lokale værtshus og for den sags skyld vil jeg da gerne give dem til dig hvis du kan give mig en ordentlig begrundelse til hvorfor du har fortjent dem!
Avatar billede ubbe Nybegynder
19. maj 2002 - 12:16 #53
Enig, og jeg er bare mega glad for hjælpen :D
Avatar billede wilweb Nybegynder
20. maj 2002 - 00:13 #54
Så kort som muligt, vil jeg sige og dette spørgsmål blev bygget op, på svarende fra askhoej og mig selv. Herved mener jeg at askhoej leverede ikke et rigtigt svar som det første, men ligesom jeg tog han noget fra mine svar og brugte i hans egne for til sidst kunne levere et rigtigt svar, derfor syntes jeg ikke det var fair, at askhoej fik alle point. Jeg syntes at samarbejdet førte til en løsningen og at det ville være fair, hvis vi havde delt.

askhoej:> du har helt ret point kan ikke give dig øl eller pizza, men de er den eneste handels vare der eksisterer på Eksperten.dk og derfor har de vel en eller værdi. Hvis man kunne købe for point, ja så ville der altid være nogle der syntes det var det var fedt og andre der ville syntes at det ikke var fedt.

Jeg er ikke ude efter at du give mig nogle af dine point, men jeg er ude på at give udtryk for min harme, når jeg føler mig uretfærdigt behandlet og konkludere at jeg ville afsluttet spørgsmålet på en anden måde.

Bare rolig jeg lever videre og hjælper igen, hvis jeg da kan.
God weekend
:> Gizom
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