Jag har gjort en kodsnutt så här: Ska det vara till en QueryString, får jag rekommendera ? istället för | Det är tyvärr inte jag som vill ha det så, utan en prisjämförelsesite. Men Jag tror inte det skall vara någon avslutande siffra i prodktnamnet. productName1 är bara exempel data. Helt Korrekt Andreas Som du ser lägger min kod pip teckne framför varje post. Tack än en gång! Då är det bara att placera det efter istället för före och ta bort mid(): Hej Igen Upptäckte att om jag lägger outstring i en cookie, på kodsidan, och hämtar den på nästa sida, så fungerar det ?Skriva en Pipe separerad sträng
Select Artno. Artname, Pris, Antal From Databas where persno = Session.SessionID
orderNumber = Rs("PERSNO")
Do while not rs.eof
a1 = Rs("Artname")
a2 = Rs("Pris")
a3 = Rs("Antal")
Rs.MoveNext
Loop
Så långt är allting ok men resultaten skall skrivas till en sträng formaterad så här:
a1=Rs("Artname")1&a2=Rs("Pris")&a3=Rs("Antal")|a1=Rs("Artname")2&a2=Rs("Pris")&a3=Rs("Antal")
osv. vad jag har förstått skall jag använda en counter på just Rs("Artname") för att få detta resultat, men jag får inte kläm på det hela ändå :-(
Någon vänlig själ som kan tipsa mig om detta
TPFH
PeterSv: Skriva en Pipe separerad sträng
Annars:
<code>
Select Artno.ArtName,Pris,Antal, FROM Databas WHERE persno = Session.SessionID
orderNumber = rs("PERSNO")
Do While Not rs.eof
a1=Rs("Artname")1&a2=Rs("Pris")&a3=Rs("Antal")|a1=Rs("Artname")2&a2=Rs("Pris")&a3=Rs("Antal")
rs.MoveNext
Loop
</code>
En synnerligen bra fråga är varför du vill ha det sådär.. Skall det vara någon form av tabell, eller liknande, varför inte slänga ett getöga på begreppet Array, http://www.devguru.com/technologies/vbscript/13898.asp , och sen knöla in arrayen som en Session variabel så du kan anropa den mellan olika sidor.
som borde passa ditt syfte utmärkt.
Det är lite knepigt att hjälpa dig utan att veta vilket mål du har med strängen.
//JohannesSv:Skriva en Pipe separerad sträng
Dom använder en sk. tracker och min sida måste generera den rapportsträng som nämndes.
Deras kodex. ser ut så här
' Purchase info report
' Use| as a separator, example: (a1...&a2...&a3…|a1...&a2...&a3))
' a1 is the product name
' a2 is the product price. Use dot (.) as decimal sign and no thousand separators.
' a3 is product quantity
reportInfo = "a1=ProdName1&a2=700&a3=2|a1=ProdName2&a2=100.50&a3=1"
// $reportInfo must be URLEncoded in UTF-8 format
reportInfo=Server.URLEncode(reportInfo)
Mvh
PeterSv: Skriva en Pipe separerad sträng
<code>
sql = "Select Artno.ArtName,Pris,Antal, FROM Databas WHERE persno = "& Session.SessionID
set conn = rs.execute(sql)
orderNumber = rs("PERSNO")
x = 1
Do While Not rs.eof
outstring = outstring & "a1="& Rs("Artname") & x &"&a2="& Rs("Pris") &"&a3="& Rs("Antal") &"|"
x=x+1
rs.MoveNext
Loop
</code>
Och sen om pipen inte får finnas som sista tecken, varför inte:
<code>
outstring = Left(outstring,Len(OutString)-1)
</code>
Typ nåt sånt??
//JohannesSv:Skriva en Pipe separerad sträng
Alltså skall det vara:
<code>
sql = "Select Artno, ArtName, Pris, Antal, FROM Databas WHERE persno = "& Session.SessionID
Set rs = conn.execute(sql)
Set Artname = Rs("Artname")
Set Pris = Rs("Pris")
Set Antal = Rs("Antal")
orderNumber = rs("PERSNO")
Do Until rs.eof
outstring = outstring & "|a1=" & Artname & _
"&a2="& Pris & _
"&a3="& Antal
rs.MoveNext
Loop
rs.Close
conn.Close
outstring = Mid(outstring, 2)
</code>Sv: Skriva en Pipe separerad sträng
Jag fick det att funka på ett kanska roligt (läs underligt sätt)
Pipe skall sitt sist enl. nya uppgifter.
Det konstiga sker att när jag på den sidan som genererar kodem skriver ut "outstring" så visas den rätt,
men när jag skicka den vidare till nästa sida via kod typ nästasida.asp?reportInfo=" & outstring &"
så följer endast värdet från a1 med?
Har detta med att göra med Mid kommandot du skrev sist? har provat både med och utan men får samma resultat
Tack så länge
PeterSv:Skriva en Pipe separerad sträng
Det ger:
""
"|a1=data&a2=data&a3=data"
"|a1=data&a2=data&a3=data|a1=data&a2=data&a3=data"
"|a1=data&a2=data&a3=data|a1=data&a2=data&a3=data|a1=data&a2=data&a3=data"
Mid(Sträng, Start, längd) funktionen tar ut en delsträng.
Den börjar alltså på andra tecknet och skippar där med första piptecknet.
JAg tror det har med hur du skriver ut strängen. Borde vara något sånt här:
Granska eller vad det nu skall stå.
Sv: Skriva en Pipe separerad sträng
Detta med pipen är att den skall sitta sist dvs
"a1=data&a2=data&a3=data|"
Men skall prova under natten nu får vi se
Tack o bockSv:Skriva en Pipe separerad sträng
sql = "Select Artno, ArtName, Pris, Antal, FROM Databas WHERE persno = "& Session.SessionID
Set rs = conn.execute(sql)
Set Artname = Rs("Artname")
Set Pris = Rs("Pris")
Set Antal = Rs("Antal")
orderNumber = rs("PERSNO")
Do Until rs.eof
outstring = outstring & "a1=" & Artname & _
"&a2="& Pris & _
"&a3="& Antal & "|"
rs.MoveNext
Loop
rs.Close
conn.Close
Sv: Skriva en Pipe separerad sträng
Det är fortfarande samma problem,
på sidan som genererar din kod visas värdena a1,a2,a3
men på sidan dit det redirectar till visas bara värde a1
redir. ser ut så här
<%
response.redirect "new_basket_del.asp?Pno=" & (C_Persno) &"&Pnpts=" & (C_Points)&"&Pnnewpts=" & (Round(Subtotal-Pointkr))&"&Pnptsuse="&Request.Form("Pnptsuse")&"&report=" & Server.URLEncode(outstring) &""
%>
sidan new_basket_del.asp skiver ut värdet report i querystringen, men dock bara värdet a1
Mvh
PeterSv:Skriva en Pipe separerad sträng