---
title: "Räkna vissa tecken?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/135215-räkna-vissa-tecken"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "voigtann1"
published: "2005-10-04T12:34:24.000Z"
updated: "2005-10-29T19:03:44.000Z"
replies: 12
views: 518
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/135215-räkna-vissa-tecken"
---

# Räkna vissa tecken?

## #1 — voigtann1, 2005-10-04T12:34Z

Om jag har en text sträng som ser ut såhär:
"xx xx xxxx dd mmmmmm" kan man på något sätt få reda på hur många x,d och m det finns? (det kommer handla om flera olika tecken inte bara dessa 3...

Permalänk: https://www.webforum.nu/p/135215

## #2 — Peter S, 2005-10-04T12:41Z

Det här kan man lösa på ett flertal sätt, t.ex:

```
function countchar(s,c)
    countchar = ubound(split(s,c))
end function
```

Där *s* är strängen du vill söka igenom och *c* är det tecken som skall räknas.

Permalänk: https://www.webforum.nu/p/1681273

## #3 — voigtann1, 2005-10-04T12:52Z

men om man inte vet vilket tecken det är? kör man någon regular utryck då?

Kanske skapa en array och sen kontrollera alla i array(1) vilket tecken det är och hur många det är?

Permalänk: https://www.webforum.nu/p/1681274

## #4 — Peter S, 2005-10-04T14:40Z

Du kan låta funktionen returnera en array a, där a(0) innehåller tecknet och a(1) antalet förekomster:

```
s = "xx xx xxxx dd mmmmmm"

function countchar(s,c)
    countchar = array(c,ubound(split(s,c)))
end function

dim res
res = countchar(s,"m")
response.write res(0) & ": " & res(1)
```

Permalänk: https://www.webforum.nu/p/1681311

## #5 — voigtann1, 2005-10-04T15:07Z

men den kontroll blir ju 24 rader om jag kan tänka mig kolla igenom alla tecken från a-z... ska kolla vidare på dina koder :D

Permalänk: https://www.webforum.nu/p/1681318

## #6 — Peter S, 2005-10-04T17:05Z

Jag är lite osäker på hur du menar, men några olika varianter kan vara:

```
s = "xx xx xxxx dd mmmmmm"

function countchar(s,c)
    countchar = ubound(split(s,c))
end function

for i = asc("a") to asc("z")
  response.write chr(i) & ": " & countchar(s, chr(i)) & "<br>"
next
```

```
s = "xx xx xxxx dd mmmmmm"

function countchar(s,c)
    countchar = ubound(split(s,c))
end function

function findchars(s)
    tmp = s
    for i = 1 to len(tmp)
	tmp = left(tmp, i) & replace(tmp, mid(tmp, i, 1), "", i + 1)
    next
    findchars = tmp
end function

str = findchars(s)

for i = 1 to len(str)
  response.write mid(str, i, 1) & ": " & countchar(s, mid(str, i, 1)) & "<br>"
next
```

Permalänk: https://www.webforum.nu/p/1681361

## #7 — Erik Juhlin, 2005-10-04T17:44Z

Jag hänger inte riktigt med vad det är du vill åstadkomma. Men det verkar som att ett regulärt utryck nog hade varit smidigast. Ganska mycket snyggare och bättre prestandamässigt om man jämför med att loopa en massa...

Permalänk: https://www.webforum.nu/p/1681374

## #8 — voigtann1, 2005-10-05T01:02Z

jag försöker rita upp platser till ett lan... där platser är exempel D1-D20 på en rad... men det kan också vara att det är D1-D5 sen kommer E1-E4 sen kommer flera D... då vill jag ju ha D5-\> osv.. därför vill jag få någon Reg.exp lösning...

Permalänk: https://www.webforum.nu/p/1681494

## #9 — Erik Juhlin, 2005-10-05T06:41Z

Och detta gör du i en textsträng?
Hur ser den textsträngen ut?

Permalänk: https://www.webforum.nu/p/1681519

## #10 — voigtann1, 2005-10-05T09:16Z

Det vet jag inte...eftersom man skall kunna ändra den men exempel

```
AAA CCC
BBB DDD
xxxxxxx
```

Permalänk: https://www.webforum.nu/p/1681553

## #11 — voigtann1, 2005-10-05T21:25Z

DVS i slut kanten kommer det vara tabeller med A1 A2 A3 \[mellanrum\] C1 C2 C3

Permalänk: https://www.webforum.nu/p/1681825

## #12 — voigtann1, 2005-10-06T13:25Z

Snurrar i huvudet hos mig här :e men jag har lite idéer:

```
<table cellspacing=1 cellpadding=2>
  <tr>
<%
u = 1
myString = s
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true

objRegExp.Pattern = " "
myString = objRegExp.Replace(myString,chr(2))
objRegExp.Pattern =  vbCrLf
myString = objRegExp.Replace(myString,chr(1))
objRegExp.Pattern = "([a-z])"
myString = objRegExp.Replace(myString,"    <td style=""width:20PX;background-color:#339;border:1px solid #000;text-align:center;"">$1</td>"& vbCrLf)
objRegExp.Pattern = chr(2)
myString = objRegExp.Replace(myString,"    <td style=""width:20PX;background-color:#fff;"">&nbsp;</td>"& vbCrLf)

objRegExp.Pattern = chr(1)
myString = objRegExp.Replace(myString,"  </tr>"& vbCrLf &"  <tr>")

response.Write myString
%>
  </tr>
</table>
```

Denna gör nu min "layout" kom på en sak att den egentligen kanske skall ersätta \[bokstav+nummer\] då kan man göra kontroll och se om plats redan är bokad också..

Kanske ska göra en "2D" Array istället?

Permalänk: https://www.webforum.nu/p/1681997

## #13 — voigtann1, 2005-10-29T19:03Z

försöker lista ut en ny sak med regexp men problemet är fortfarande hur ska den veta att:

aaaba
att den kommer att skriva ut
a1a2a3b1a4 ?

Permalänk: https://www.webforum.nu/p/1696740

---

Tråden på webben: https://www.webforum.nu/amne/asp/135215-räkna-vissa-tecken
