---
title: "jämföra två strängar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/80149-jämföra-två-strängar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "doggelito"
published: "2003-06-19T12:07:22.000Z"
updated: "2003-06-19T13:49:49.000Z"
replies: 7
views: 355
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/80149-jämföra-två-strängar"
---

# jämföra två strängar

## #1 — doggelito, 2003-06-19T12:07Z

hur löser man detta smidigast?
har två strängar, en "statisk" och en "dynamisk"

ex. 
varabel1 = "1234567" 'statisk, ändras aldrig
variabel2 = "136" 'dynamisk, kan variera

nu vill jag i en 3:e variabel få värdet som skiljer dessa åt, men hur gör jag?

variabel3 = "2457"

obs! värdena är i strängformat, inte tal!

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

## #2 — Engine^, 2003-06-19T12:33Z

Så här månne?

```
For i = [b]1[/b] To Len(variabel1)
  If InStr(variabel2, Mid(variabel1, i, 1)) = 0 Then variabel3 = variabel3 & Mid(variabel1, i, 1)
Next
```

**Red.** Ändrade en nolla till en etta...

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

## #3 — Palle, 2003-06-19T13:03Z

Jag fick inte Engines' kod att fungera..  :l 
Ogiltigt proceduranrop eller argument.: 'Mid'

Frestade på med en egen lösning som jämnför bägge strängarna.
Den torde lösa problemet (hoppas jag) ;) :

```
[red]<%

Function checkDiff(value1, value2)

	For i = 1 To Len(value1)
		x = Mid(value1, i, 1)
		If InStr(value2,x) = False Then newStr = newStr & x
	Next

	For i = 1 To Len(value2)
		x = Mid(value2, i, 1)
		If InStr(value1,x) = False Then newStr = newStr & x
	Next

	checkDiff = newStr

End Function

variabel1 = "1234567"
variabel2 = "136"
variabel3 = checkDiff(variabel1,variabel2)

%>[/red]
```

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

## #4 — Engine^, 2003-06-19T13:11Z

Ops... jag har lite svårt för VBScripts indexhantering...

Sätt att loopen ska börja på 1 istället för 0, så fungerar det finfint.

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

## #5 — Palle, 2003-06-19T13:19Z

> **Engine^ skrev:**
>
> Ops... jag har lite svårt för VBScripts indexhantering...
> 
> Sätt att loopen ska börja på 1 istället för 0, så fungerar det finfint.

Förstod det, men jag får den inte att fungera riktigt ändå, man måste ju kolla 
genom bägge strängarna för att hitta alla skillnader.

Testa följande scenario: 

```
[red]<%

variabel1 = "1234567"
variabel2 = "13689"

For i = 1 To Len(variabel1)
  If InStr(variabel2, Mid(variabel1, i, 1)) = 0 Then variabel3 = variabel3 & Mid(variabel1, i, 1)
Next

Response.Write variabel3

%>[/red]
```

I Variabel2 finns 8 och 9, dessa finns inte med i variabel1..
Dessa kommer ju inte med i variabel3 trots att de borde det.

Därför måste man köra en dubbelkoll av bägge strängarna.

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

## #6 — doggelito, 2003-06-19T13:30Z

glömde skriva, de dynamiska talen är alltid mellan de statiska talen!

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

## #7 — doggelito, 2003-06-19T13:36Z

Engine^, din kod funkar utmärkt!
Palle, helt rätt, dock behöver jag inte det i detta fall! :)

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

## #8 — Engine^, 2003-06-19T13:49Z

Trevligt... det går att göra habrovinkellösningar ibland. Förutsättningen är nog att herr Murphy tittar åt ett annat håll :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/80149-jämföra-två-strängar
