Avatar billede lightbrain Nybegynder
15. juni 2002 - 12:17 Der er 5 kommentarer og
1 løsning

Endnu en simpel udvidelse

Hej

Nedenstående kode kan håndtere strenge fra Request.form("aendret") - f.eks. 26-1,65-3,84-4 - men nu skal den udvides til også at kunne håndtere endnu en oplysning - 26-1-3,65-3-2,84-4-4 eller 26-1/3,65-3/2,84-4/4 eller ved brug af en helt anden seperator end "-" og "/" (ovenstående var kun forslag).

Man hvordan gøres det? Kan du udbygge min kode?


if Request.form("valg") = "ArrangerArtikel" then
   
       
        Dim aendret, MyArray, bound, i, artikel
        MyString = Request.form("aendret")
        response.write(MyString)
       
        MyArray = Split(MyString, ",", -1, 1)
       
        for i = lbound(myarray) to ubound(myarray)
            artikel = Split(MyArray(i), "-")

              strSQL = "select * from ARTIKLER WHERE ARTIKELNR = " & artikel(0)
              set rs = Conn.execute(strSQL)
 
              if rs.EOF then
                status = "En eller flere af artiklerne er IKKE blevet arrangeret, da den eller de ikke i forvejen eksisterede!"
              else
                strSQL = "UPDATE ARTIKLER set emnenr = '" & artikel(1) & "' WHERE artikelnr = " & artikel(0)
                Conn.execute(strSQL)
                status = "Artiklerne er nu blevet arrangeret!"
              end if
        next
    end if
    response.redirect ("index.asp?status=" & status)
Avatar billede eagleeye Praktikant
15. juni 2002 - 16:22 #1
26-1-3  er 1 og 3 begge emne numre ?
Avatar billede lightbrain Nybegynder
15. juni 2002 - 16:30 #2
Nej. Det manglede jeg vidst at fortælle: 26 er artikelnr, 1 er emnenr og - som det nye - så 3 er niveau.

Måske kan følgende give dig bedre forståelse af det, som jeg tænker på:
strSQL = "UPDATE ARTIKLER set emnenr = '" & artikel(1) & "', niveau = '" & ???????? & "' WHERE artikelnr = " & artikel(0)
Avatar billede lightbrain Nybegynder
15. juni 2002 - 16:31 #3
så 3 er niveau = så er 3 niveau.
Avatar billede eagleeye Praktikant
15. juni 2002 - 16:37 #4
Hvis den altid ser sådan ud 26-3-5 altså allle tre tal er der så kan dette bruges:

Du kan stadig bruge - hvis det altid gælder: artilnr-emnnr-niveau



if Request.form("valg") = "ArrangerArtikel" then
  Dim aendret, MyArray, bound, i, artikel
  MyString = Request.form("aendret")
  response.write(MyString)

  MyArray = Split(MyString, ",", -1, 1)

  for i = lbound(myarray) to ubound(myarray)
    artikel = Split(MyArray(i), "-")

    strSQL = "select * from ARTIKLER WHERE ARTIKELNR = " & artikel(0)
    set rs = Conn.execute(strSQL)

    if rs.EOF then
      status = "En eller flere af artiklerne er IKKE blevet arrangeret, da den eller de ikke i forvejen eksisterede!"
    else
      strSQL = "UPDATE ARTIKLER set emnenr = '" & artikel(1) & "', niveau = '" & artikel(2) & "' WHERE artikelnr = " & artikel(0)
      Conn.execute(strSQL)
      status = "Artiklerne er nu blevet arrangeret!"
    end if
  next
end if
Avatar billede tjacob Juniormester
16. juni 2002 - 12:10 #5
Linien: artikel = Split(MyArray(i), "-")  skal blot ændres så artikel() kommer til at indeholde de forskellige elementer, uanset hvad separatoren er:

Det nemmeste er at ensrette separatoren; (laver først alle om til ","):

Dim TempStr    'sættes udenfor loops

TempStr = MyArray(i)
TempStr = Replace(TempStr, "-", ",")    'her kan du jo tjekke for alle de tegn du ønsker
TempStr = Replace(TempStr, "/", ",")
TempStr = Replace(TempStr, ".", ",")
TempStr = Replace(TempStr, "_", ",")

artikel = Split(TempStr, ",")

/tjacob
Avatar billede lightbrain Nybegynder
16. juni 2002 - 12:13 #6
Ok, jeg kigger på begge løsninger og vender så tilbage :-)
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