webForumDet fria alternativet

instr med  

ASP

20 svar · 445 visningar · startad av i-or

Medlem sedan nov. 2001294 inlägg
Frågan#1

Jag vill veta positionen för ett mellanslag i en sträng.

instr(sträng," ")
fungerar bara för "riktiga" mellanslag och inte & n b s p ;

Hur gör jag?

Medlem sedan juni 200032 967 inlägg
#2

Fungerar inte...

Response.write instr(strText, " ")

?

mvh

Medlem sedan nov. 2001294 inlägg
#3

Nej det fungerar inte.

Medlem sedan juni 200032 967 inlägg
#4

För mig fungerar det alldeles utmärkt när jag testar.

Response.Write instr("Jag testar lite bara", " ")

Resultatet är 4.

Medlem sedan nov. 2001294 inlägg
#5

Jo då fungerar det. Men då har du använt vanliga mellanslag och inte & n b s p ;. Du kanske inte såg min redigering i det första inlägget.

Medlem sedan juni 200032 967 inlägg
#6

Du ser ju i min kod att jag använt   eller :q

Medlem sedan nov. 2001294 inlägg
#7

Problemet är nog att jag hämtar strängen från en databas (Access) och då fungerar inte din kod.

Edit: Jag såg det inte första gången då jag skrev svaret.

Medlem sedan juni 20019 519 inlägg
#8

kan man inte göra replace och sen instr... kanske inte den bästa lösningen :e

Medlem sedan juni 200032 967 inlägg
#9

Varför skulle det inte fungera när du hämtar från en databas? Gör du dina kontroller både mot vanligt mellanslag och  ?
Exakt hur ser strängarna som är lagrade i databasen ut?

Medlem sedan juni 20019 519 inlägg
#10

Förlåt för dubbel posten nu men:
Din databas.. har du   i den? och sen kör typ html.encode.. då blir ju & = &amp:

Medlem sedan nov. 2001294 inlägg
#11

Så här har jag gjort:

Jag kopierade en tabell från nätet (vars kod har & n b s p; som mellanslag) till Excel och sedan till Access.

Från Access kör jag sedan instr utan att använda Server.HTMLEncode eller något annat.

Jag vet inte vad som kan ha ändrats på vägen till databasen.

Medlem sedan nov. 2001294 inlägg
#12

Om jag kopierar direkt från htmlsidan till Access så fungerar det. Men jag behöver modifiera tabellen i Excel först. Har någon nån aning om vilket tecken Excel ändrar & n b s p ; till?

Det fungerar alltså varken med " " eller med & n b s p ;.

Medlem sedan dec. 20003 887 inlägg
#13
strText = [i]din text[/i]
strText = Replace(strText, " ", " ")

Response.Write InStr(strText, Chr(32))
Medlem sedan juni 200032 967 inlägg
#14

Kan du inte kika i Access, och se vad som ligger lagrat där?

Medlem sedan nov. 2001294 inlägg
#15

Engines kod fungerade inte.

@nders: Hur kan jag se skillnad mellan ett mellanslag och ett mellanslag i Access?

Medlem sedan juni 200032 967 inlägg
#16

Det borde gå att se skillnad, tycker jag? Exempelvis; har du   lagrat i tabellen istället för vanliga mellanslag så står det   där. Du kan annars prova att på en asp-sida skriva ut innehållet i fältet mha server.htmlencode, då borde du får rätt bra koll på vad som ligger lagrat.

mvh

Medlem sedan nov. 2001294 inlägg
#17

Tack så jättemycket för all hjälp.

Det konstiga tecknet var: & # 1 6 0 ; :)

Medlem sedan dec. 20003 887 inlägg
#18

Känns som om Micro$oft gjort så bara för att jäklas med oss hederliga användare... ;)

Medlem sedan nov. 2001294 inlägg
#19

Ytterligare problem :(

För att jag ska kunna köra

instr(sträng,"& # 1 6 0 ;")

måste jag först ta Server.HTMLEncode för att instr ska hitta det konstiga tecknet.

Om det finns andra tecken som HTMLEncode gör om blir positionen fel.

Kan man på något sätt köra Server.HTMLEncode baklänges för jag vill egentligen inte köra HTMLEncode? Eller kan man på något sätt köra HTMLEncode bara på ett visst tecken (& # 1 6 0 ; )?

Medlem sedan nov. 2001294 inlägg
#20

Glöm det! Det lättaste var att ersätta konstiga tecknet redan i Excel så slapp jag det bekymret.

262 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)