Hurley Skrevet 6. februar 2003 Del Skrevet 6. februar 2003 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? txtSkriv_inn er da en lang string med Ansattnr#Fornavn#Etternavn#Adresse#Årslønn# Lenke til kommentar
oyvind_b Skrevet 6. februar 2003 Del Skrevet 6. februar 2003 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
Hurley Skrevet 6. februar 2003 Forfatter Del Skrevet 6. februar 2003 Helt uten å kjøre koden, så vil jeg tro at den vil komme opp med ansattnr hver gang. Lenke til kommentar
Hurley Skrevet 6. februar 2003 Forfatter Del Skrevet 6. februar 2003 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
oyvind_b Skrevet 6. februar 2003 Del Skrevet 6. februar 2003 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
Hurley Skrevet 6. februar 2003 Forfatter Del Skrevet 6. februar 2003 ' 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 Lenke til kommentar
Hurley Skrevet 7. februar 2003 Forfatter Del Skrevet 7. februar 2003 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! Lenke til kommentar
oyvind_b Skrevet 7. februar 2003 Del Skrevet 7. februar 2003 ' 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå