Gå til innhold

Anbefalte innlegg

    Private Sub btnUtfor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUtfor.Click

       'Deler opp, og plasserer delene i de rette tekstboksene.

       Dim skriv_inn As String

       Dim ansattnr As String

       Dim fornavn As String

       Dim etternavn As String

       Dim adresse As String

       Dim aarslonn As String

       Dim n As Integer

       skriv_inn = txtSkriv_inn.Text

       n = skriv_inn.IndexOf("#")

       ansattnr = skriv_inn.Substring(0, n)

       fornavn = skriv_inn.Substring(?)

       etternavn = skriv_inn.Substring(?)

       adresse = skriv_inn.Substring(?)

       aarslonn = skriv_inn.Substring(?)

       txtAnsattnr.Text = ansattnr

       txtFornavn.Text = fornavn

       txtEtternavn.Text = etternavn

       txtAdresse.Text = adresse

       txtAarslonn.Text = aarslonn

   End Sub

 

Hva skal stå det stå der det er spørsmålstegn? :shrug:

txtSkriv_inn er da en lang string med Ansattnr#Fornavn#Etternavn#Adresse#Årslønn#

Lenke til kommentar
Videoannonse
Annonse

IndexOf henter jo bare indeksen til ett #-tegn. I mellom hvert av dine Substring-kall må du kjøre en ny n = IndexOf... men med spesifisert startindeks. Noe slikt (ikke testet...):

 


n = skriv_inn.IndexOf("#") 

ansattnr = skriv_inn.Substring(0, n) 

n = skriv_inn.IndexOf("#", n + 1) 

fornavn = skriv_inn.Substring(?) 

n = skriv_inn.IndexOf("#", n + 1)

etternavn = skriv_inn.Substring(?) 

n = skriv_inn.IndexOf("#", n + 1) 

adresse = skriv_inn.Substring(?) 

n = skriv_inn.IndexOf("#", n + 1) 

aarslonn = skriv_inn.Substring(?) 

 

.Ø.

Lenke til kommentar

1. Først finne plassen til alle # ved bruk av IndexOf (krever like mange

variabler som det er #). Deretter klippe ut basert på posisjonen til kryssene.

 

2. Finne plassen til første kryss og klippe ut ansattnr. Deretter oppdaterer

du variabelen skriv_inn slik at den inneholder det som står til høyre for

første kryss [skriv_inn = skriv_inn.substring(n+1)]

 

3. En metode basert på at vi ved bruk av 2 variabler lagrer plasseringen til

de 2 kryssene lengst til venstre og klipper ut det som står i mellom.

 

---

 

Hva vil du anbefale, og hvordan vil det se ut?

Lenke til kommentar

Sorry, jeg var litt kjapp i forrige eksempel. Dersom du bruker det må du ta vare på forrige n i en annen variable. Jeg fant en enklere måte dersom du bruker VB.NET.

 

String[] deler = skriv_inn.Split(new Char[] {'#'})

ansattnr = deler[0]

fornavn = deler[1]

etternavn = deler[2]

adresse = deler[3]

aarslonn = deler[4]

 

Jeg har ikke testet dette, men tror det skal fungere.

 

.Ø.

Lenke til kommentar

    Private Sub btnUtfor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUtfor.Click

       'Deler opp, og plasserer delene i de rette tekstboksene.

       Dim skriv_inn As String

       Dim ansattnr As String

       Dim fornavn As String

       Dim etternavn As String

       Dim adresse As String

       Dim aarslonn As String

       Dim k, l, m, n, o As Integer

       skriv_inn = txtSkriv_inn.Text

       k = skriv_inn.IndexOf("#")

       ansattnr = skriv_inn.Substring(0, k)

       skriv_inn = skriv_inn.Substring(k + 1)

       l = skriv_inn.IndexOf("#")

       fornavn = skriv_inn.Substring(0, l)

       skriv_inn = skriv_inn.Substring(l + 1)

       m = skriv_inn.IndexOf("#")

       etternavn = skriv_inn.Substring(0, m)

       skriv_inn = skriv_inn.Substring(m + 1)

       n = skriv_inn.IndexOf("#")

       adresse = skriv_inn.Substring(0, n)

       skriv_inn = skriv_inn.Substring(n + 1)

       o = skriv_inn.IndexOf("#")

       aarslonn = skriv_inn.Substring(0, o)

       txtAnsattnr.Text = ansattnr

       txtFornavn.Text = fornavn

       txtEtternavn.Text = etternavn

       txtAdresse.Text = adresse

       txtAarslonn.Text = aarslonn

   End Sub

 

Slik ble min ferdige kode seende ut, mulig den er litt rotete, men den funker iallefall! :woot:

Lenke til kommentar
' gjør vel #'}) bare til en kommentar?

Kan ikke sette String[] på den måten heller  :-?  

Men metoden virker ganske lovende hvis jeg får den første linjen korrekt

 

Sorry, jeg brukte C# syntaks :-?

Prøv med dette:

 


Din deler() As String = skriv_inn.Split(New Char() {"#"C}) 

ansattnr = deler(0) 

fornavn = deler(1)

etternavn = deler(2)

adresse = deler(3)

aarslonn = deler(4)

 

Håper dette går... jeg har aldri brukt VB.NET, kun C#.

Du fikk det jo til med Substring eksempelet, men dette er vel litt lekrere 8)

 

.Ø.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...