webForumDet fria alternativet

Räkna antal tecken i ett formulär

ASP

23 svar · 484 visningar · startad av G8

Medlem sedan jan. 20011 213 inlägg
Frågan#1

Håller på att bygga upp ett internt mailsystem för en sajt och undrar om det är någon som kan säga mig hur jag ska göra för att räkna antal tecken i ett meddelande... själva storleken på meddelandet i kb alltså?

Jag har sökt lite här men har inte hittat nått som hjälper... :(

mvh

//G8

Medlem sedan juni 200032 967 inlägg
#2

Funktionen Len() returnerar längden på en sträng.

Mvh,

Medlem sedan jan. 20011 213 inlägg
#3

Returnerar Len() även mellanslag?

Medlem sedan juni 20019 519 inlägg
#4

ja.. det gör det :e

Medlem sedan mars 20021 889 inlägg
#5

Jag tror det, prova:

String = "Jag heter Martin."
Response.Write Len(String)

:)

Medlem sedan juni 200032 967 inlägg
#6

Om det finns mellanslag i strängen så finns de med i längdberäkningen också. Mellanslag är ju ett tecken precis som å och g.

Mvh,

Medlem sedan sep. 20026 425 inlägg
#7

Om man ska räkna ut ett meddelandes storlek i kilobyte så använder man inte Len() - man använder då LenB().

<%
Text = "En massa text.."
Response.Write LenB(Text)
%>

Länk till ett test:
http://www.valhall.cx/dileno/test.asp

Medlem sedan juni 200032 967 inlägg
#8

m_soderlund skrev:

Om man ska räkna ut ett meddelandes storlek i kilobyte så använder man inte Len() - man använder då LenB().

Nej.

Note The LenB function is used with byte data contained in a string. Instead of returning the number of characters in a string, LenB returns the number of bytes used to represent that string.

Källa

Mvh,

Medlem sedan jan. 20011 213 inlägg
#9

så man måste använda sig av Len() och sedan beräkna bits utifrån det tal man får fram?

Medlem sedan juni 200032 967 inlägg
#10

Japp, Len() räknar bytes.

strMyString = "Det här är min läckra sträng!"
Response.Write Len(strMyString)
Medlem sedan sep. 20026 425 inlägg
#11

Du hade rätt som vanligt @nders - en blunder från min sida..

Medlem sedan juni 200032 967 inlägg
#12

G8 skrev:

så man måste använda sig av Len() och sedan beräkna bits utifrån det tal man får fram?

Varför vill du ha det i bits?

Medlem sedan jan. 20011 213 inlägg
#13

ehh, nu redigerade jag lite... vad är det som stämmer nu LEN() eller LENB()?

mvh

Medlem sedan jan. 20011 213 inlägg
#14

menar bytes... känns som om det är dags att gå hem från jobbet och vila skallen lite nu... ;)

Medlem sedan sep. 20026 425 inlägg
#15

Len() räknar ju fortfarande längden på en sträng medan LenB() räknar strängens storlek i byte??

Medlem sedan jan. 20011 213 inlägg
#16

Det är ju storleken jag vill åt, väl?

Blivit väldigt förvirrad av allt det här nu... hehe

Medlem sedan juni 20019 519 inlägg
#17

om den nu räkna ut vad den tar i byte.. så kan du ju få reda på vad det tar i kb (lenb(string)/1024) ^2 för Mb etc etc

Medlem sedan sep. 20026 425 inlägg
#18

Bra jobbat voigtann! ;)

Medlem sedan juni 200032 967 inlägg
#19

Jag vet inte riktigt vad du vill åt. Om du vill veta hur många tecken som ingår i strängen, använd Len(). Vill du veta hur många bytes av minnet som går åt att lagra strängen, använd LenB(). Så tolkar jag i alla fall Microsofts referens.

Jag gjorde också en liten test för att se vad det är för skillnad, och det verkar som att det tar två bytes att lagra en byte, om jag utgår ifrån funktionsskillnaden jag nämnde. En 64 tecken lång sträng tar tydligen 128 bytes att lagra i minnet, i alla fall är det det värdet som LenB() returnerar.

Mvh,

Medlem sedan juni 20022 599 inlägg
#20

och det verkar som att det tar två bytes att lagra en byte

VBScript hanterar internt enbart strängar i Unicode-format (två bytes per tecken). LenB kommer alltså i detta fall att returnera det dubbla antalet bytes som faktiskt postades (HTTP är ett ascii-protokoll).

301 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
159 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)