Avatar billede jens_k Nybegynder
02. september 2002 - 10:22 Der er 12 kommentarer og
1 løsning

Dele af Streng

Hejsa..

Jeg har en variabel som ser således ud :

Nummer = "1-3"

Længere nede på siden skal jeg bruge det tal som står efter "-", hvilket i dette tilfælde er 3 tallet.

Hvordan får jeg splittet den variable, så det kun er 3 tallet jeg har ?

Jens K
Avatar billede medions Nybegynder
02. september 2002 - 10:24 #1
ArrNummer = Split(Nummer,"-")
Response.Write(ArrNummer(1))

//>Rune
Avatar billede medions Nybegynder
02. september 2002 - 10:24 #2
Ellers kunne du oxo gøre sådan her:

Response.Write(Right(Nummer,1))

//>Rune
Avatar billede jens_k Nybegynder
02. september 2002 - 10:30 #3
Okay. Jeg afsætter lige nogle flere point. Problemet er større end jeg lige regnede med..


Mit Felt i databasen hedder produkter. Dette felt ser f.eks således ud :

0-0,1-1,2-1,410-1

Tallet før "-" angiver hvilket varenummer folk skal bruge. Tallet efter "-" angiver antallet af varen de skal bruge..

Jeg skal nu have lavet en lang liste over disse produkter. Hvordan får jeg lavet en liste hvor der står Produkt Navn og antal på ?

Kolonnen med navnet hente fra en anden tabel, hvor ID = det tal før "-"

Er dette forståligt ? eller skal der gives en bedre forklaring ?

Jens K
Avatar billede medions Nybegynder
02. september 2002 - 10:32 #4
Altså er det komasesperaret eller er det bare hver felt som indeholder et varnummer?

//>Rune
Avatar billede jens_k Nybegynder
02. september 2002 - 10:33 #5
Det er komasesperaret..

Jens K
Avatar billede medions Nybegynder
02. september 2002 - 10:42 #6
Ok fair nok.. jamen så skal du jo først af dem adskildt fra hinanden, altså ha' lagt dem over i et såkalt Array. Det gør du med den indbygget funktion Split(). Lad os antage at objRs("varenummer") er dit recordset.

arrVarenumre = Split(objRs("varenummer"),",")

Nu har du alle varnumrene fra dit field. Prøv fx at skriv:

For i = 0 To UBound(arrVarenumre)
  Response.Write(i & "<br>")
Next

For at du kan se hvad der sker ;o)

Nu hvor du har dem skal du så ha' hevet de for skællige data ud af de enkelte Arrays. Det gør du sådan her:

arrVarenumre = Split(objRs("varenummer"),",")
For i = 0 To UBound(arrVarenumre)
  arrSpecefikt = Split(arrVarenumre(i),"-")
  Response.Write("<b>Varenummer: </b>" & arrSpecefikt(0) & "<br>" & vbCrLf)
  Response.Write("<b>Produktnr: </b>" & arrSpecefikt(1) & "<br>" & vbCrLf)
Next

Hvad siger den så?

//>Rune
Avatar billede jens_k Nybegynder
02. september 2002 - 10:57 #7
Det virker perfekt..

Har bare 2 små spørgsmål..

Alle "poster" starter med 0-0. Dette er pga noget andet ASP kode jeg bruger. Hvordan laver jeg såen at den hopper det første stykke over hver gang ?

En anden ting. Jeg har såen at hver anden tabel har en anden BG farve. Jeg plejer at lave det sådan her

do while not rs.eof
  blablabla
rs.movenext
if not rs.eof then
  blablabla
rs.movenext
end if
loop

Men hvordan gør jeg det når jeg bruger For/Next ?

Jens K
Avatar billede medions Nybegynder
02. september 2002 - 10:59 #8
Det var da godt jeg kunne hjælpe ;o)

Dine andre 2 spm forstår jeg desvære ikke?

//>Rune
Avatar billede medions Nybegynder
02. september 2002 - 11:00 #9
-Og nu vil jeg gerne lige se om jeg kan hjælpe dig, men oprindelig må du kun stille et spm pr. oprettet spm!

//>Rune
Avatar billede jens_k Nybegynder
02. september 2002 - 11:04 #10
Ok. Vi glemmer bare nr 2 af dem så. Det første har jeg vel lov at spørge om da det er omkring dette spørgsmål :)

Min Kode :
<%
    arrVarenumre = Split(Produkter,",")
    For i = 0 To UBound(arrVarenumre)
      arrSpecefikt = Split(arrVarenumre(i),"-")
     
      Set RS2 = Server.CreateObject("ADODB.RecordSet")
    SQL2 = "SELECT * From Produkter where ID =" & arrSpecefikt(0)
    RS2.Open SQL2, strDB
   
    Antal = arrSpecefikt(1)
      %>
    <tr>
      <td width="279" height="18" valign="top"><font face="Verdana" size="1"><%= RS2("Produkt") %></font></td>
      <td width="57" height="18" valign="top" align="center">
      <font face="Verdana" size="1"><%= arrSpecefikt(1) %></font></td>
      <td width="89" height="18" valign="top" align="right">
      <font face="Verdana" size="1">4995,-</font></td>
      <td width="148" height="18" valign="top">
      <p align="right"><font face="Verdana" size="1">4995,-</font></td>
    </tr>
    <% Next %>


Til denne bruger ser Produkter således ud : 0-0, 1-2, 2-1, 210,2

Det er gældende for at alle brugere at der står 0-0 som den første..

Jeg vil gerne have at den hopper denne post over, da der ikke er nogen produkter som har ID nr 0

Hvordan kan dette lade sig gøre ?

Jens K
Avatar billede medions Nybegynder
02. september 2002 - 11:06 #11
Så laver du jo bare en validering...

If Not arrSpecefikt(0) = 0 And arrSpecefikt(1) = 0 Then
-dit index...
End If

//>Rune
Avatar billede jens_k Nybegynder
02. september 2002 - 11:10 #12
Mange tak, du har nu reddet min dag :)

Nu virker det som jeg gerne vil have det :)

Jens K
Avatar billede medions Nybegynder
02. september 2002 - 11:12 #13
Anytime ;o)
Thx 4 Poinz

//>Rune
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