04. juni 2004 - 23:46Der er
12 kommentarer og 1 løsning
Beregn længden på et ord i pixels
Hej, Jeg skal lige høre om det er muligt at udregnet hvor lang en tekst er i pixels. Hver gang der bliver sendt et ord til databasen vil jeg gerne finde længden i pixels. Hvis det kan laves med andet end asp er det også fint nok.
b = "a,b,c,d,e,f,g,h,i,j,h,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,æ,ø,å" ' Bogstaver p = "5,5,5,5,5,5,5,5,2,2,5,5,5,5,5,5,5,5,5,3,5,5,7,5,5,5,5,5,5" ' Pixels per bogstav t = "Jeg skal lige høre om det er muligt at udregnet hvor lang en tekst er i pixels" ' Teststreng tmp = "" num = 0
ab = split(b, ",") ap = split(p, ",")
for i = Lbound(ab) to Ubound(ab) tmp = split(t, ab(i)) num = num + cint(ubound(tmp) * ap(i)) next
response.write "Til teksten skal der bruges " & num & " pixels" %>
Husk lige at tilføje andre tegne der må bruges.. f.eks. ".", "," (her skal du ha' fat på enten ASC eller CHR koden), "!#¤%&/()=?`+-_:;" osv.. Hust at tegnet " er lig med """" , eller bare chr(34) (som jeg mener er nemmere at overskue)..
Hej René Nu ved jeg ikke hvad du skal bruge det til, men der er en del usikkerhed forbundet med at gemme længden af et ord i databasen, bl.a. browserversioner, browserindstillinger, installerede skrifttyper osv.
Hvis du har mulighed for at beregne bredden i forbindelse med præsentationen at teksten, vil det være at foretrække imho.
Uanset hvad du gør med resultatet er her en måde at aflæse længden (eller bredden) af et ord: Anbring ordet i en div og brug dhtml til at aflæse bredden af denne:
Og en hel anden mulighed er (hvis man må installere ActiveX komponenter på serveren) er et lille program der kaldes med set TextLength = Server.CreateObject("Mitprogram.TextLength") hvorefter man kan sætte nogle variabler, fx for fontname, fontsize m.m.
Jeg lavede sådan et på et tidspunkt, til at bryde en tekst efter fx 150 pixel og så smide "..." på til sidst hvis teksten var længere end 150 pixels. Det virker fortrineligt. Men ja igen, så er det jo sådan at hvis brugeren ikke har den brugte font, så kan det gå galt.
Jeg synes at det er lidt overkill, at lave en komponent, for at dele en tekst efter 150 tegn.. Det er det man har funktioner til.. som kan gemmes i en fil (f.eks. funk.asp), og inkluderes på de sider, hvor de forskellige funktioner skal bruges..
Normalt vil "150 tegn + ..."-scriptet blive lavet i RegExp, som kan bruges i ASP..
For der er mange, der bare smider et svar, som det første indlæg.. dette er både godt og skidt: godt - Hvis svaret er korrekt, skal spørgeren ikke vente (længe?), på at kunne acceptere svarens svar skidt - Mange newbies accepterer et svar så snart de ser et.. så skal man ofte oprette spm, for at give points tilbage
- Jeg går ud fra at det var en hentydning, til at lægge et svar.. :-) Hvis ikke, kan svaret afvises.. :-)
Der findes skrifttyper (bruges b.l.a i notepad) hvor afstanden mellem hvert tegn er lige stor. evt. en mulighed
Synes godt om
Ny brugerNybegynder
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.