webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > ASP

ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp).

Svar
 
Trådverktyg Visningsalternativ
Äldre 2007-07-03, 13:09   #1
UrMe
Medlem
 
UrMes avatar
 
Registrerad: 2001-04-01
Ort: Inte i skåne.
Inlägg: 796
Lösningar: 5
Räkna tecken+html

Jag har en post i en databas som ser ungefär ut så här:
Kod:
<span class="text">saddasasddasdsa sda d asd asd</span><br /><br /><span class="text2">sad dsa asd sda asd asd asd dsa sda asd asd asd asd asd asd sa asd asd asd<br />asd asd asd das asd asd asd asd asda sda sa as asd<br />asd asd asd asd asd ads ads ad ad</span>
Jag är inte skyldig till hur datan sparas

Om det vill sig riktigt illa kan det ibland vara 3-4 <span> saker efter varandra utan egentlig anledning.

Det jag skulle vilja göra är att begränsa antalet tecken, t.ex:

Kod:
Response.Write Left(rs("text"), 50)
Problemet med detta är ju att den räknar tecknen i <span> och <br /> etc. Går det på något enkelt sätt att räkna bara tecken som inte finns inom "<>" och räkna tecken inom "<>".

Eftersom jag vill ju inte skriva ut 10 tecken och de 10 tecknena är bara "<span clas"

Samtidigt vill jag inte räkna alla <span> <br> etc heller, eftersom de som är efter de 50 tecknen jag vill ha ut är ointressant.

För <span> måste ju ändå skrivas ut för att formatteringen ska bli rätt.

Hoppas någon förstår mitt dilemma
UrMe besöker inte forumet just nu   Svara med citat
Äldre 2007-07-03, 13:46   #2
Melitta
Medlem
 
Melittas avatar
 
Registrerad: 2003-09-13
Ort: Malung
Inlägg: 577
Lösningar: 13
Blir krångligt med den kunskap jag besitter (inte så stor).. Ta och rensa på all html först och krymp strängen sedan då?
Melitta besöker inte forumet just nu   Svara med citat
Äldre 2007-07-03, 13:56   #3
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
Kod:
Function newLeft(str,length)
  With New RegExp
    .Global = True
    .Pattern = "(<[^<>]*>)"
    str = .Replace(str, "")
  End With
  newLeft = Left(str & "",length)
End Function
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

Senast redigerad av voigtann1, 2007-07-03 klockan 14:05
voigtann1 besöker inte forumet just nu   Svara med citat
Äldre 2007-07-03, 13:57   #4
Melitta
Medlem
 
Melittas avatar
 
Registrerad: 2003-09-13
Ort: Malung
Inlägg: 577
Lösningar: 13
Typ så ja
Melitta besöker inte forumet just nu   Svara med citat
Äldre 2007-07-03, 14:05   #5
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
ändra "(<[^>]*>)" till "(<[^<>]*>)"
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
voigtann1 besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 08:35   #6
UrMe
Medlem
 
UrMes avatar
 
Registrerad: 2001-04-01
Ort: Inte i skåne.
Inlägg: 796
Lösningar: 5
Det där fungerar ju Fast problemet är att jag vill ha tillbaka de html-taggar som behövs.

T.ex

Detta är min text i databasen:
Kod:
<span class="rubrik">Min rubrik</span><br><br><span class="text">asd asd asd asd asd asd</span><br><span class="text">tjo tjo tjo tjo tjo tjo</span>
Om jag t.ex vill ha ut 20 tecken. Så ska det vara dessa:
"Min rubrik asd asd as"

Så långt funkar ju den funktionen, det jag vill göra nu är att lägga tillbaka html-taggarna som behövs.
"<span class="rubrik">Min rubrik</span><br><br><span class="text">asd asd as"
Vill att min "output" ska se ut som ovan om man väljer 20 tecken.

sista </span> går ju att lägga tillbaka "manuellt".

Men hur skulle man lösa detta? Går det att lösa?
UrMe besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 09:57   #7
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
Du ska ju inte använda den för att spara till databasen.. bara när du läser av den på den plats du vill? gör någon egen [rubrik]Min Rubrik[/rubrik] och kör en replace på det? eller lägg det i en egen tabell i databasen? Annars kan man väl göra en Count funktion ... eller bryta din text efter en </span>
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
voigtann1 besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 10:45   #8
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
Kod:
Function newLeft(str,length)
  Dim Header, Content
  With New RegExp
    .Global = True
    .Pattern = "(<span class=""rubrik"">[^<]*</span><br><br><span class=""text"">)(.*)"
    Header = .Replace(str, "$1")
    Content= .Replace(str,"$2")
    .Pattern = "(<[^<>]*>)"
    Content = Left(.Replace(Content,""),length) & "</span>"
  End With
  newLeft = Header & Content
End Function
Rätt klumpigt skrivit dock.. men fungera... hoppas jag
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

Senast redigerad av voigtann1, 2007-07-04 klockan 10:58
voigtann1 besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 11:17   #9
UrMe
Medlem
 
UrMes avatar
 
Registrerad: 2001-04-01
Ort: Inte i skåne.
Inlägg: 796
Lösningar: 5
Nackdelen är att du inte vet själva "pattern", inte alltid att rubrik följt av två br och sedan klassen text kommer

Det blir nog en väldigt knepig funktion Kanske får kolla på en alternativ lösning.
UrMe besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 11:45   #10
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
så... du vill ta bort alla taggar förutom <span.....> rätt?
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
voigtann1 besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 11:48   #11
colione
Forumtekniker
 
Registrerad: 2001-06-13
Ort: Stockholm
Inlägg: 3 385
Lösningar: 198
Nej, han vill räkna alla tecken som inte är html-kod om jag har uppfattat han rätt. Han vill alltså räkna de tecknen som besökaren på siten ser, inte tecknena som formaterar texte, dessa vill han dock ha kvar i utskriften.

Enligt min uppfattning ivf.


Edit ->
En lösning skulle ju kunna vara att först strippa bort alla taggar och räkna tecknena, sedan räkna alla tecken i taggarna som finns innan man ska bryta. Plussa på det senare värdet till det första värdet.
__________________
Yes, I Blag!
colione besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 11:54   #12
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
Citat:
colione skrev:
Nej, han vill räkna alla tecken som inte är html-kod om jag har uppfattat han rätt. Han vill alltså räkna de tecknen som besökaren på siten ser, inte tecknena som formaterar texte, dessa vill han dock ha kvar i utskriften.
Nej.. han vill behålla vissa taggar för sitt presentations lager.. så det är inte att bara rensar all html (vilket min första kod gjorde). Han vill behålla _vissa_ kodsuttar i början bara dom avslutas också efter x antal tecken?
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
voigtann1 besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 11:56   #13
colione
Forumtekniker
 
Registrerad: 2001-06-13
Ort: Stockholm
Inlägg: 3 385
Lösningar: 198
Ja? Läs mitt inlägg igen voigtann1. Det är ju det jag skriver. Han vill egentligen bara räkna tecknena som besökaren ser. Men han vill ha med html-taggarna i utskriften.
__________________
Yes, I Blag!
colione besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 12:00   #14
UrMe
Medlem
 
UrMes avatar
 
Registrerad: 2001-04-01
Ort: Inte i skåne.
Inlägg: 796
Lösningar: 5
Ja det är precis som colione skriver, och jag vill bara printa ut de html-taggar som har något att göra med de tecknen som användaren ser. Knepigt
UrMe besöker inte forumet just nu   Svara med citat
Äldre 2007-07-04, 12:02   #15
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
Kan väl göra som colione skrev... hämta ut de första 50 tecknen som finns i databasen.. räknar ut hur många avslut det finns kontra hur många "öppningar" av taggar det finns...
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
voigtann1 besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 15:56.


Powered by: vBulletin Version 3.8.6
Copyright © webForum