webForumDet fria alternativet

Plocka ut sträng

ASP

7 svar · 245 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Min hjärna är seg, brukar klara sådant här men nu står det helt still

jag har en sträng som ser ut på följande sätt

namn,nummer| osv osv

den kan innehålla x antal sådana

Låt oss säga att jag har en sträng som ser ut så här
Jonas Andersson,2|Pelle Ljungberg,13|Anna Andersson,45|

Det enda jag vet är att personen med id x (nu tar vi nr 13) ska bort ur strängen, alltså måste måste jag plocka radera denna del av strängen Pelle Ljungberg,13| och sedan slåihop strängen igen utan Pelle Ljungberg,13|

Jag vet inte om man ska köra en replace eller kolla på reg.exp. Någon som är snabbtänkt i hjärnan inatt ?

:)

tacksam

Medlem sedan apr. 2001425 inlägg
#2

Gör så här:

<%
intRaderaId=1  'Väljer vilket id du vill radera
strTexten = "Jonas Andersson,2|Pelle Ljungberg,13|Anna Andersson,45|sven johansson,45 |sven johansson,45 |sven johansson,21 |sven johansson,22" 

arrOrd =Split(strTexten, "|",-1,1)
	For Each strEttord in arrOrd : a=a+1	 
	 IF Not a=intRaderaId Then 
		strResult = strResult & strEttord & "|"
	 END IF
	Next
	

Response.Write strResult 
%>
Medlem sedan dec. 19996 522 inlägg
#3

Funkade inte direkt

intRaderaId=13  'Väljer vilket id du vill radera
strTexten = "Jonas Andersson,2|Pelle Ljungberg,13|Anna Andersson,45|sven johansson,45 |sven johansson,45 |sven johansson,21 |sven johansson,22|" 

arrOrd =Split(strTexten, "|",-1,1)
	For Each strEttord in arrOrd : a=a+1	 
	 IF Not a=intRaderaId Then 
		strResult = strResult & strEttord & "|"
	 END IF
	Next
	

Response.Write strTexten &"<br>"& strResult

skriver jag 13 ska ju "Pelle Ljungberg,13|" raderas ut strängen, tack iaf

Medlem sedan apr. 2001425 inlägg
#4

Oops du missuppfattade jag dig, trodde det var nr 13 i ordningen i strängen...

Har du löst det än ?

Medlem sedan apr. 2001425 inlägg
#5

Om du inte löst det:

<%
intRaderaId=13  'Väljer vilket id du vill radera
strTexten = "Jonas Andersson,2|Pelle Ljungberg,13|Anna Andersson,45|sven johansson,12" 

arrOrd =Split(strTexten, "|",-1,1)
    For Each strEttord in arrOrd	
                 intID = Split(strEttord, ",",-1,1)
	 IF NOT intID(1)=cstr(intRaderaId) THEN
		strResult = strResult & strEttord & "|"
                 END IF	
     Next
	

Response.Write strResult 
%>
Medlem sedan dec. 19996 522 inlägg
#6

Nej jag har inte löst det ännu, dock blir det fel på din senaste kod eftersom du har sett på på originalsträngen, varje person och id slutar alltid med ett | tecken, även den sissta.

så strängen är
strTexten = "Jonas Andersson,2|Pelle Ljungberg,13|Anna Andersson,45|sven johansson,12|"

Du hade glömt ett | tecken, och då fungerar det som sagt inte. Vad betyder -1,1 som du har när du skapar arrayen?

Tack så mycket för hjälpen

Medlem sedan apr. 2001425 inlägg
#7

-1,1 betyder att man tar bort "avdelartecknet"

Denna lösning fungerar i så fall

<%
intRaderaId=12  'Väljer vilket id du vill radera
strTexten = "Jonas Andersson,2|Pelle Ljungberg,13|Anna Andersson,45|sven johansson,12|" 

    arrOrd =Split(Mid(strTexten,1,Len(strTexten)-1), "|",-1,1)
     For Each strEttord in arrOrd	
         intID = Split(strEttord, ",",-1,1)
	  IF NOT intID(1)=cstr(intRaderaId) THEN
		strResult = strResult & strEttord & "|"
      END IF	
     Next

Response.Write strResult 
%>
Medlem sedan dec. 19996 522 inlägg
#8

danke!

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