Avatar billede snebolle Nybegynder
04. juni 2004 - 23:46 Der 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.


Mvh René
Avatar billede thesurfer Nybegynder
04. juni 2004 - 23:52 #1
hmm.. det ved jeg ikke om man kan..
Men man kan sætte en/nogle fast(e) værdier til bogstaver..

f.eks:
num = len(streng) ' smider antallet af tegn fra strengen "streng", over i variablen "num"
Avatar billede thesurfer Nybegynder
04. juni 2004 - 23:54 #2
hovsa..
num = len(streng)

hvis vi så siger, at der sættes en fast bredde på 5 pixels, per tegn:
num = cint(num) * 5

Nu indeholder "num" antal pixels..
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:24 #3
<%
dim b,p,s,tmp,num

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"
%>
Avatar billede snebolle Nybegynder
05. juni 2004 - 10:19 #4
Hej, ja det var måske en mulighed. Jeg vil lige prøve at lege med din kode og så vender jeg tilbage.
Avatar billede thesurfer Nybegynder
05. juni 2004 - 11:10 #5
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)..
Avatar billede kimovitch Nybegynder
05. juni 2004 - 11:12 #6
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:

<div style='padding:0px;position:absolute;' id='div_01'>Kalejdoskop</div>

<script language=javascript>
  alert(document.all.div_01.clientWidth);
</script>

-Kim
Avatar billede fixxxer Nybegynder
05. juni 2004 - 19:48 #7
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.
Avatar billede thesurfer Nybegynder
05. juni 2004 - 20:25 #8
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..
Avatar billede fixxxer Nybegynder
05. juni 2004 - 22:12 #9
hvem snakker om 150 tegn? Jeg snakker pixel, for at lave den mest præcise bredde på et ord/sætning. Det kan du ikke lave med regExp eller ASP.
Avatar billede thesurfer Nybegynder
05. juni 2004 - 22:20 #10
min fejl :-)
Avatar billede snebolle Nybegynder
07. juni 2004 - 12:44 #11
Den skal bruges til en dropdown menu hvor jeg vil sikre mig en bestemt afstand i mellem top-links ved at kende tekst længden.

Men jeg takker for begge jeres svar. Er det endelig normalt at man altid skal sige folk skal afgiv et svar :)
Avatar billede thesurfer Nybegynder
07. juni 2004 - 15:40 #12
Det håber jeg :-)

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.. :-)
Avatar billede voirsous Nybegynder
10. juni 2004 - 01:54 #13
Der findes skrifttyper (bruges b.l.a i notepad) hvor afstanden mellem hvert tegn er lige stor. evt. en mulighed
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging