Avatar billede para7 Nybegynder
11. maj 2003 - 15:18 Der er 28 kommentarer og
2 løsninger

inStr i streng fra form

Jeg henter data fra en formsamling, hvor jeg pille noget ud af strengen og viderbehandler. Placeringen bliver fundet, men vil ikke virke, kun i teststrengen.

reqStreng0 = request.form 'det her input dur ikke
'reqStreng0 = "LukkedagDelA=13&LukkedagDelB=04&LukkedagDelA=17&LukkedagDelB=04&LukkedagD" 'det her test input dur

LukkedagStrengX0slut = instr(reqStreng0, "DelA=17")
LukkedagStrengX0 = mid(reqStreng0, instr(reqStreng0, "LukkedagDelA"), LukkedagStrengX0slut)

response.write LukkedagStrengX0
Avatar billede erikjacobsen Ekspert
11. maj 2003 - 15:21 #1
reqStreng0 = request.form("DITFELTNAVN")
Avatar billede para7 Nybegynder
11. maj 2003 - 15:22 #2
Altså, jeg får ikke skåret resten af strengen væk, hvis input er fra form.
Avatar billede erikjacobsen Ekspert
11. maj 2003 - 15:23 #3
og hvis du vil alle variabler igennem, så

  for each n in request.form
    response.write n & " " & request.form(n) & "<br>"
  next
Avatar billede para7 Nybegynder
11. maj 2003 - 15:24 #4
Fidusen ved request.form uden feltnavne, er at jeg får en lang streng, som jeg kan navigere fundt i.
Avatar billede para7 Nybegynder
11. maj 2003 - 15:28 #5
LukkedagDelA=13&LukkedagDelB=04&LukkedagDelA=17&LukkedagDelB=04& o.s.v skulle gerne blive til datoer: 13-04,17-04 osv. Så har jeg strengen, der skal lægges i databasen.
Avatar billede erikjacobsen Ekspert
11. maj 2003 - 15:30 #6
Det kan være det virker, men det er ikke klogt.

De felter du putter i databasen, bør være enkeltværdier, så du kan
bruge SQL til at hente ting frem igen.
Avatar billede para7 Nybegynder
11. maj 2003 - 15:34 #7
Som regel ja, men det er en måde, der virker godt i de her tilfælde. Det eneste jeg mangler er at kunne indsætte placeringen fra instr.
Avatar billede erikjacobsen Ekspert
11. maj 2003 - 15:40 #8
Fair nok - så må du jo hellere afvise mit svar. Jeg håber
ikke det er noget du laver som arbejde for andre ;)
Avatar billede para7 Nybegynder
11. maj 2003 - 15:46 #9
Ja men jeg vil prøve med for each. Så tror jeg det lykkes. Så du er ikke afvist. Det er i høj grad noget jeg laver for andre. Og når sådan noget omend snørklet, som jeg har lavet bliver testet ordentligt igennem virker det bare, det er min erfaring. ;o)
Avatar billede erikjacobsen Ekspert
11. maj 2003 - 15:47 #10
Glem det - jeg hopper ud af spørgsmålet - du afviser bare.
Avatar billede para7 Nybegynder
11. maj 2003 - 15:49 #11
Det snørklede er nu nødvendigt af og til. Det var da også point værd men du vil jo ikke have nogen.
Avatar billede mortrr Praktikant
11. maj 2003 - 16:07 #12
Hvis du ikke vil bruge Request.Form(n), var det så ikke nemmere at bruge fx:

reqStreng0 = request.form
arrReq=split(reqStreng0,"&")
for i=lbound(arrReq) to ubound(arrReg)
  arrReq(i)=split(arrReq(i),"=")
next

Så får du et array med navn og værdi, som du kan gå igennem.
?
Avatar billede para7 Nybegynder
11. maj 2003 - 16:18 #13
Det lyder rigtigt. Bare jeg får alt med. Så kan det være at jeg kan pille det ud ved at bruge instr. Men jeg forstår bare ikke at jeg ikke fik cuttet resten af strengen væk med instr. Jeg prøver det lige...
Smid lige et svar for point.
Avatar billede para7 Nybegynder
11. maj 2003 - 16:23 #14
Hov:
Typer stemmer ikke overens: 'ubound'
Avatar billede mortrr Praktikant
11. maj 2003 - 16:24 #15
Den anden virker formentligt ikke, fordi du bruger mid forkert.
mid skal have en start position og en længde, ikke en start og slut position.

og den med typer er fordi jeg lavede en stavebøf.
Det skal selvfølgelig være arrReq ikke reg
Avatar billede para7 Nybegynder
11. maj 2003 - 16:26 #16
Ved test: i=for 1 to 20: En datatype, der ikke kunne håndteres, blev fundet.
Avatar billede para7 Nybegynder
11. maj 2003 - 16:32 #17
Ok men stadig: En datatype, der ikke kunne håndteres, blev fundet.
Avatar billede mortrr Praktikant
11. maj 2003 - 16:33 #18
Hvad tester du med?

Den rigtige måde at kigge på den er fx:

arrReq=split(reqStreng0,"&")
for i=lbound(arrReq) to ubound(arrReq)
  arrReq(i)=split(arrReq(i),"=")
next
for i=lbound(arrReq) to ubound(arrReq)
Response.Write "<br>" & arrReq(i)(0) & " : " & arrReq(i)(1)
next
Avatar billede erikjacobsen Ekspert
11. maj 2003 - 16:35 #19
Jeg bad dig om at afvise: http://www.eksperten.dk/spm/351202
Avatar billede para7 Nybegynder
11. maj 2003 - 16:39 #20
Ok igen, jeg er lidt for forjavet. Det ser rigtigt ud. Så vil jeg prøve at pille lukkedatoerne ud..
Avatar billede para7 Nybegynder
11. maj 2003 - 16:41 #21
Nu er det vel bare om at sige if for at sortere fra:

EmailSendt : on
LukkedagDelA : 13
LukkedagDelB : 04
LukkedagDelA : 17
LukkedagDelB : 04
LukkedagDelA : 18
LukkedagDelB : 04
LukkedagDelA : 20
LukkedagDelB : 04
LukkedagDelA : 22
LukkedagDelB : 04
LukkedagDelA : 23
LukkedagDelB : 04
LukkedagDelA : 21
LukkedagDelB : 04
LukkedagDelA : 16
LukkedagDelB : 05
LukkedagDelA : 29
LukkedagDelB : 05
LukkedagDelA : 08
LukkedagDelB : 06
LukkedagDelA : 09
LukkedagDelB : 06
LukkedagDelA : 25
LukkedagDelB : 12
LukkedagDelA : 26
LukkedagDelB : 12
BookingtidDelA1 : 09
BookingtidDelB1 : 00
Avatar billede para7 Nybegynder
11. maj 2003 - 16:47 #22
Jeg får ikke udskrevet sidste post: LukkedagDelB : 12

Jeg bruger:

arrReq=split(reqStreng0,"&")
for i=lbound(arrReq) to ubound(arrReq)
  arrReq(i)=split(arrReq(i),"=")
next
for i=lbound(arrReq) to ubound(arrReq)
if instr(arrReq(i)(0) ,"LukkedagDelA") or instr(arrReq(i)(1),"LukkedagDelB") then
    Response.Write "<br>" & arrReq(i)(0) & " : " & arrReq(i)(1)
end if
next
Avatar billede mortrr Praktikant
11. maj 2003 - 16:50 #23
Det skal være arrReq(i)(0) i begge to.

Men det burde være nok med:
if arrReq(i)(0)="LukkedagDelA" or arrReq(i)(0)="LukkedagDelB" then
    Response.Write "<br>" & arrReq(i)(0) & " : " & arrReq(i)(1)
end if
Avatar billede para7 Nybegynder
11. maj 2003 - 16:53 #24
Fint og mange tak. Jeg gennemskuer det ikke lige i farten, men nu vises alle poster. Skal lige sammensætte strengen, der skal puttes i db feltet.
Avatar billede para7 Nybegynder
11. maj 2003 - 17:00 #25
Det ser ud til at jeg skal lave hverandet komma om til bindestreg for at få dd-mm,dd-mm,dd-mm, osv..
Avatar billede para7 Nybegynder
11. maj 2003 - 17:01 #26
Udfra denne:
if arrReq(i)(0)="LukkedagDelA" or arrReq(i)(0)="LukkedagDelB" then
       
        LukkedagStrengX = LukkedagStrengX & arrReq(i)(1) & ","
       
end if
Avatar billede mortrr Praktikant
11. maj 2003 - 17:09 #27
Hvad med:

LukkedagStrengX=""
for i=lbound(arrReq) to ubound(arrReq)
  if arrReq(i)(0)="LukkedagDelA" then
    LukkedagStrengX = LukkedagStrengX & arrReq(i)(1) & "-"
  elseif arrReq(i)(0)="LukkedagDelB" then
    LukkedagStrengX = LukkedagStrengX & arrReq(i)(1) & ","
  end if
next
' og så lige for at fjerne det overskydende komma:
if len(LukkedagStrengX)>0 then
  LukkedagStrengX=left(LukkedagStrengX,len(LukkedagStrengX)-1)
end if
Avatar billede para7 Nybegynder
11. maj 2003 - 17:10 #28
Tak igen. Jeg har:

arrReq=split(reqStreng0,"&")
for i=lbound(arrReq) to ubound(arrReq)
  arrReq(i)=split(arrReq(i),"=")
next
for i=lbound(arrReq) to ubound(arrReq)
if arrReq(i)(0)="LukkedagDelA" or arrReq(i)(0)="LukkedagDelB" then
    taeller=taeller+1
    if taeller mod 2 = 1 then   
        LukkedagStrengX = LukkedagStrengX & arrReq(i)(1) & "-"
        else
        LukkedagStrengX = LukkedagStrengX & arrReq(i)(1) & ","
    end if
end if
next
Avatar billede para7 Nybegynder
11. maj 2003 - 17:11 #29
Det kan være din er mere sikker.
Avatar billede para7 Nybegynder
11. maj 2003 - 17:15 #30
Ja, den er vist også simplere. Mission complete... Flere point værd, men jeg er løbet tør.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester