webForumDet fria alternativet

Jämföra kolonseparerad variabel med inkommande värde!!

ASP

28 svar · 307 visningar · startad av brw

Medlem sedan juli 2000619 inlägg
Frågan#1

Hej

Jag har en variabel med värden som är kolon-separerade som t ex ser ut såhär:

bildids= 121:145:101:14:18

sedan får jag ett värde från ett forumlär så vill jag kolla om det redan finns med i den här variabeln och det är det som är frågan.

Tillexempel:
nyttvarde = "167" (från formular)

Hur jämför jag om jag får tex 167 som ovan, om det redan finns med i bildids variabeln annars ska den lägga till den längst ut på raden med kolonseparering.

If nyttvarde "finns med i" bildids Then

'den finns redan med

Else

bildid = bildid &":"&nyttvarde
End If

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan dec. 19998 577 inlägg
#2

Nått sånthär:

aBildids  = Split(bildids,":")

For i = 0 To Ubound(aBildids)
If Cstr(nyttvarde) = Cstr(aBildids(i)) Then
chk = true
Exit For
End If
Next

If NOT chk Then bildids & ":" & nyttvarde

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan juli 2000619 inlägg
#3

Alltså såhär ser det ut.. hade inte koden först.

Det fungerar inte.. jag får liksom med ett ":" före första värdet.. alltså om jag kommer in på sidan och inte har något värde så sätter den såhär: extrabilderform2 = extrabilderform2 &":"&extrabilderform

jag har försökt med alla möjliga variblar längre ned.. isnumeric mm..

alltså om jag kommer in på sidan utan värde och väljer ett och sidan laddas om så blir värdet typ:

vardet = :113:234:67

om det nu kan vara det som stör ut att det inte fungerar?

Denna skickas med när man väljer ett nytt värde:
extrabilderform = FixaTecken(Request.Form("extrabilderform"))

Denna skickas med som hidden hela tiden:
extrabilderform2 = FixaTecken(Request.Form("extrabilderform2"))

If IsNumeric(extrabilderform) Then
If Len(Trim(extrabilderform)) <= 0 Then
If extrabilderform <> "ej" Then

extrabilderform = Cint(extrabilderform)

aBildids = Split(extrabilderform2,":")
For i = 0 To Ubound(aBildids)
'If Cstr(extrabilderform) = Cstr(aBildids(i)) Then
If Cint(extrabilderform) = Cint(aBildids(i)) Then
chk = true
Exit For
End If
Next

If NOT chk Then 
extrabilderform2 = extrabilderform2 &":"&extrabilderform
End If

End If
End If
End If

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan juli 2000619 inlägg
#4

Ingen som har nån idé om varför den inte funkar?

;(

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan mars 20002 836 inlägg
#5

Borde inte denna koll:

If Len(Trim(extrabilderform)) <= 0

se ut så här istället:

If Len(Trim(extrabilderform)) >= 0

dvs, du kollar om extrabilderform är större än eller lika med noll och ej tvärtom....
plus, denna if-sats:

If extrabilderform <> "ej" Then

kan du ta bort eftersom det ej kommer att komma in någon sträng då du kollar om det är ett numeriskt värde före denna koll.

cya,
PatrikB

------------------
*Det tar sig sa han som hade eld i håret*

Medlem sedan juli 2000619 inlägg
#6

Jihooo nu har jag fått det att fungera så långt men nu har jag en liten till fundering som jag skulle vilja ha hjälp med.

Låt oss säga att strängen ser ut såhär:

extrabilderform = 114:118:45:67:89

och då när jag plockar fram dessa poster med hjälp av en loop som splittar upp det så kommer ju posterna komma i den ordning som står dvs. först nr 114, 118, 45 osv...

Om jag nu i redigeringsläget vill med hjälp av typ länkar ändra ordningen på dem.

Tillexempel byta plats på 45 och 118 eller 89 och 67.

Som jag har nu så listar jag upp alla i den ordning som strängen är i redigeringsläget. Går det att lösa detta på något smidigt sätt med nån enkel kodsnutt?

Vore mycket tacksam om någon kan hjälpa mig med detta.

Säg till om ni inte förstår så ska jag försöka beskriva bättre.

/brw

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan dec. 200012 464 inlägg
#7

Lite oklart vad du menar. Vill du byta plats på två godtyckliga element eller vill du ha någon speciell sortering?

Om du vill byta plats så kan du använda denna rutin


sub swapp(bef,aft,vals)
dim befind,aftind,i

befind = -1
aftind = -1
for i = 0 to Ubound(vals)
    if  vals(i) = bef then
        befind = i
    elseif vals(i) = aft then
        aftind = i
    end if
    if  befind >= 0 and aftind >= 0 then
        vals(aftind) = bef
        vals(befind) = aft
        exit sub
    end if
next
end sub

anropas med


swapp 45,118,aBildIds

------------------
essentitia preter non sans multiplicandum

Medlem sedan juli 2000619 inlägg
#8

Förstod inte riktigt din den där..

Kolla på denna bild http://195.198.110.218/ordningspryl2.gif så kanske du förstår bättre vad jag menar så kanske vi kan få fram en lösning. :)

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan dec. 200012 464 inlägg
#9

Jag missförstod fullständigt vad du var ute efter. Det låter som du får skriva något i javascript för att hantera det. (Jag kan för lite om javascript för att kunna hjälpa.)

------------------
essentitia preter non sans multiplicandum

Medlem sedan juli 2000619 inlägg
#10

Ok! Jag har pulat lite granna nu och bestämt mig för att jag ska ha så att man får lägga in dem i den ordning man vill ha dem. Men man måste ju självklart kunna plocka bort dem oxå.. och då tänkte jag att man på det sista värdet i strängen .. låt oss säga att strängen ser ut såhär:

bildid = 34:67:78

så listar den ju upp dem med en vanlig loop med for each efter jag splittat upp dem...

Då vill jag att man skall kunna köra nån funktion som känner av typ right på sista siffervärdet på strängen fram till kolonet alltså ":78" skall gå att ta bort.

På så vis skulle man kunna skapa en länk på som heter "Ta bort" men bara då på den som är den sista i ordningen.

Problemet är bara hur jag ska få den att känna av vilken som är sista och hur jag ska kunna trimma bort det.

bildids = Trim(right(bildids,:,-3)) Detta blir ju fel eftersom ID kan ju vara i princip hur långt som helst..

nån som är bra på det?

/brw

------------------
Ingenting är omöjligt, bara en utmaning.

[Redigerat av brw den 03 jul 2001]

Medlem sedan juli 2000619 inlägg
#11

Ingen som har nån idé om hur jag ska göra? :)

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan juni 200032 967 inlägg
#12

vad är din fråga egentligen?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juli 2000619 inlägg
#13

Jag behöver hjälp med att trimma en variabel lite.. kanske var en aning oklar i mitt förra inlägg ;)

Ska försöka ta det kortfattat.

Jag har följande kod:

extrabilder = 45:50:67:89:15

If instr(extrabilder, ":") > "" then
arrTEST = split(extrabilder, ":")

For each siffra in arrTEST

response.write siffra

Next

Det jag behöver veta är vilket nummer som kommer sist i ordningen samt hur jag ska bära mig åt med en kod för att kunna plocka bort det. Antar att det är enklare att plocka bort en från slutet på variabeln än att ta en mitt i?

Alltså

Jag behöver kunna veta vilken som blir den sista

extrabilder = 45:50:67:89:15

sistasiffran = Right (extrabilder,: numeric)
eller nå hehe =)

samt hur jag plockar bort den från variabeln så att om jag tar bort nr 15 så ska variabeln bli:
extrabilder = 45:50:67:89

och då ska den tala om att 89 är sist och om jag plockar bort den så ska det självklart bli:
extrabilder = 45:50:67

och så vidare..

Hoppas du är med i svängarna nu.. :)

/brw

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan juni 200032 967 inlägg
#14

det är inga problem att plocka bort en mitt i heller.

if instr(extrabilder, siffran & ":") then
extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if

vet inte om du hade mer bekymmer än så?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan dec. 2000399 inlägg
#15

Du kanske kan göra så här:

extrabilder_trimmad = left(extrabilder,len(extrabilder)-3)

------------------
mvh André,
http://www.sigmafarg.se

Medlem sedan juli 2000619 inlägg
#16

Aha det var inte svårare än så...

Tackar! :h

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan juli 2000619 inlägg
#17

Jag måste skicka med värdet via en submittknapp för att behålla de andra värdena som ligger som hidden i formuläret.

Frågan är då nu hur jag kollar vilken som det kommer ifrån smartast.

Knappen ser ut såhär:

<%
extrabilder = 50:55:66:18

siffran som står är id på posten.. en sån här knapp listas alltså på varje post som finns i variabeln:

If instr(extrabilder, ":") > "" then
arrTEST = split(extrabilder, ":")

For each siffra in arrTEST
%>
<INPUT TYPE=image NAME="tabortbild-<%=siffra%>" SRC="images/papperskorg.gif" WIDTH=16 HEIGHT=16 BORDER=0 ALT="Ta bort">

<%
Next
%>

och så vidare...

Kan jag då på mottagande sida köra nå i denna stil:

If request.form("tabortbild-*") <> "" Then
(där * naturligtvis på något vis ska vara id't från variabeln)

if instr(extrabilder, request.form("tabortbild-") & "-") <> "" Then

extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if

End If

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan juni 200032 967 inlägg
#18

hrrg?

varför använder du <> "" med instr()????

instr returnerar tal, teckenposition där sträng2 återfinns i sträng1.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juli 2000619 inlägg
#19

hmm hehe jag vet inte.. visste inte vad instr returnerade och hur det fungerar..

hur bör jag skriva då för att den ska köra som jag vill? nu kommer det från ett formulär som ska trimma bort det som står till höger om "-" det är det den ska ta bort från extrabildersträngen alltså siffervärdet där.

Alltså det som kommer från submitknappen eller rättare sagt submitknappens namn är följande:

tabortbild- +idnummret..

hur ska jag kolla ifall jag tryckt på någon av dom i det här fallet 4 submitknappar som jag hade på sidan innan jag skickade formuläret.

När sedan mottangande sida vet ifall jag tryckt på någon utav knapparna så ska den ju börja ta bort.

då måste den ju trimma bort "tabortbild-" och bara få fram siffervärdet så att jkag kan köra nedanstående kod som jag fick av dig:

if instr(extrabilder, siffran & ":") then
extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if

JAg kan ju inte köra med value på en submitknapp när jag har en bild det är ju det som är lite klurigt.. annars hade jag ju bara kunnat kolla med en enkel ifsats:

If request.form("tabortbild") <> "" Then
'Utför det som skall göras
siffran = request.form("tabortbild")

if instr(extrabilder, siffran & ":") then
extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if

end If

------------------
Ingenting är omöjligt, bara en utmaning.

[Redigerat av brw den 03 jul 2001]

[Redigerat av brw den 03 jul 2001] 13:43

[Redigerat av brw den 03 jul 2001]

Medlem sedan juni 200032 967 inlägg
#20

varför skickar du konstiga saker i namnet på fältet? varför inte bara ett värde som säger vad du ska ta bort för något?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)