Ohjelman teko apua?!!

Ihan aloittelija

Pystyisikö joku tarkka silmäinen löytämään missä on tekeleessäni vika. Itse en ole löytänyt vaikka käynyt useasti läpi.
Ohjelmana minulla pitää olla Visual Basic 2008 Express edition, enkä mitenkään hyvä ole ohjelmoimaan, joten jos joku osaisi neuvoa, neuvoisiko niiiin hel-pos-ti että tyhmäkin tajuaisi.

Tarkoituskenani ohjelmassa hakea tekstitiedosto, johon syötetty allekkain tämän tyyppisiä esim. 219A001214 tai 420L1887092. viimeinen numero on tarkiste jota ei lasketa. Samoin 4 ensimmäistä merkkiä ei lasketa, eli lasku alkaa vasta kirjaimen jälkeen. Alkuun olen saanut ohjelman tekemään niin, että ottaa huomioon vasta kirjaimen jälkeen tulevat merkit, mutta 0:lla kertomista en ole onnistunut estämään..

Laskun pitäisi olla: Kerroin on 2 1 2 1 2 1. Vasemmalta oikealle ja pitäisi vaihtua joka kierroksella, yhtä numeroa kerrallaan kertoen. Näiden kaikkien tulos jaetaan 10, jonka jakojäännös pitäisi olla tarkiste. Eli toisin sanoen, sen summan tuloksen viimeinen numero on tarkiste.

Kerrointa en siis saa vaihtumaan, siten että aloittaa kertomisen 2. osaisiko joku neuvoa mitä pitäisi tehdä.

Kiitokset etukäteen.



Option Strict On
Imports System.Console
Imports System.IO
Module Module1

Sub Main()

Const KORTINPITUUS1 As Integer = 10
'Const KORTINPITUUS2 As Integer = 11

Dim oLukija As StreamReader 'lukijan esittely
Dim oKirjoittaja As New StreamWriter("c:\Tarkastetut.txt")
Dim intLaskettuTm, intSyotettyTm As Integer

'Dim strViesti As String

Dim kortti As String '= "179A005644" testausmateriaalina tekstitiedostossa



WriteLine("tunnistus aloitetaan tekstitiedoston haulla.")
ReadLine()
oLukija = New StreamReader("c:\Haetut.txt") 'Oletetaan tiedoston löytyvän
While oLukija.Peek -1
kortti = oLukija.ReadLine()
intLaskettuTm = LaskeTarkastusmerkki(kortti)

intSyotettyTm = CInt(kortti.Substring(KORTINPITUUS1 - 1, 1))

if intSyotettyTm = intLaskettuTm Then
strViesti = String.Concat("kortti ", kortti, " on oikein.")
WriteLine(strViesti)
oKirjoittaja.WriteLine(strViesti)
'Else
strViesti = String.Concat("kortti ", kortti, " on virheellinen.")
WriteLine(strViesti)
End If
End While
oKirjoittaja.Close()
oLukija.Close()
End Sub

Function LaskeTarkastusmerkki(ByVal kortti As String) As Integer
Const KORTINPITUUS1 As Integer = 10
Dim intSumma, intTulo, intKerroin, i, intNumero, intLaskettuTM As Integer
Dim IntSyotettyTm As Integer
intSumma = 0
intKerroin = 2




For i = 4 To KORTINPITUUS1 - 2 ’aloittaa kirjaimen jälk. kertoo myös 0:lla
intNumero = CInt(kortti.Substring(i, 1))
intTulo = intNumero * intKerroin
intSumma = intSumma intTulo 'kokonaissummaa tarvitaan tarkastusmerkin päättelyssä
Select Case intKerroin ' vaihdetaan kerroin seuraavaa kierrosta varten
Case 1
intKerroin = 1
Case 2
intKerroin = 2
End Select
Next


intLaskettuTM = 10 - (intSumma Mod 10)
If intLaskettuTM = 10 Then 'muunnetaan tarkastusmerkki on yksinumeroiseksi
intLaskettuTM = 0
End If

IntSyotettyTm = CInt(kortti.Substring(KORTINPITUUS1 - 1, 1)) '

If IntSyotettyTm = intLaskettuTM Then
Console.WriteLine(String.Concat("kortti ", kortti, " on oikein."))
Else
Console.WriteLine(String.Concat("kortti ", kortti, " on virheellinen."))
End If
ReadLine()
End Function



End Module

1

986

    Vastaukset 1

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ...

      Select Case-rakenteessa intkerroin ei vaihdu, kun siihen sijoitetaan sama joka siinä jo on.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Gallup: Kansalaiset eivät usko velkajarruun

      Puolet suomalaisista ei usko velkajarrun vaatimien sopeutusten toteutuvan, kertoo Iro Researchin kyselytutkimus. Kokoom
      Maailman menoa
      119
      1285
    2. Mä oon kallistumassa

      Rikosilmoitukseen!
      Suhteet
      225
      1046
    3. Ethän mies vielä

      luovu meistä? Haluaisin jo sun syliin.
      Ikävä
      67
      980
    4. Haaveilen edelleen

      Sinusta aika ajoin
      Ikävä
      58
      942
    5. Sinulle nainen

      En ehkä koskaan osannut sanoa tätä oikein. Minun vaikeuteni luottaa liittyi ennen kaikkea menettämisen pelkoon. Siihen
      Ikävä
      66
      906
    6. Martsusta tuli leuhka

      Ja ylimielinen. Hän ei nosta persettäkään ilmaseksi . Luulempa et nämä ei tee hyvää hyvinvointivalmennuksille.... Nannal
      Kotimaiset julkkisjuorut
      250
      850
    7. Kuisla Group Oy jättänyt yrityssaneeraushakemuksen

      Samalla yrityssaneeraukseen on hakeutunut Kuisla henkilökohtaisesti ja Seinäjoen Motelli Oy, joka omistaa Sorsanpesän ki
      Seinäjoki
      36
      788
    8. Hei rakkaani.

      Kohtaaminen lähestyy. Miten teemme sen? Kumpi ottaa yhteyttä vai törmäämmekö jossain sattumalta? Tuleva vaimosi
      Ikävä
      70
      775
    9. Ethän voinut nainen tietää, että rikot rikotun

      Omaa elämää taas mietin aamuyön tunteina. En vieläkään löytänyt muistin sokkeloista ainuttakaan onnen hetkeä. Kaipuu on
      Ikävä
      72
      752
    10. Tiedätkö sitä

      Että sinun äänesi on ihanan pehmeä
      Ikävä
      42
      726
    11. Uskallanko laittaa sulle viestiä?

      Se viesti on tossa valmiina ja lähettämistä vaille valmis. Kun ei kauhee sti tunneta niin eipä sillä olisi niin väliä. S
      Ikävä
      58
      690
    12. On paha olla

      Kun olen käyttäytynyt aiemmin kaivattua kohtaan kuin joku narsisti.
      Ikävä
      64
      667
    13. Kiulu myynnissä!

      Kiulu hakee taas uutta yrittäjää. https://www.yritysporssi.fi/etela-pohjanmaa-lansi-suomi-finland/myytavat/yritykset/ma
      Ähtäri
      26
      608
    14. Tulisiko naisille asettaa korkeammat eläkemaksut

      Tämä tuli mieleeni kun luin aamun lööppejä. Japanissa alkaa olla "uutta nuorisoa" ihan urakalla, ikä alkaa sadan jälkeen
      Sinkut
      181
      513
    15. Et pysty peittämään minulta

      Sinä olet hyvä peittämään asioita niin halutessasi. Pystyt pitkiäkin aikoja salaamaan juttuja. Juuri mietin tuossa, olet
      Ikävä
      47
      504
    16. Mikä tekee kaivatustasi

      Haluttavan?
      Ikävä
      18
      488
    17. Vieläkin saat

      Sydämen tykyttämään. Vaikka emme näe
      Ikävä
      24
      484
    18. Mies joka on oikeasti kiinnostunut

      Ja näkee sut pitkäaikaisena kumppanina, siirtää vaikka vuoria selvittääkseen asiat eikä ota pienintäkään riskiä menettää
      Ikävä
      102
      483
    19. Onko nyt kaikki asiat käyty läpi?

      Mun mielestä on👍
      Ikävä
      66
      479
    20. Mitä oikein tapahtui? Maajussi-Jetta sai tylyt pakit - Sulhoehdokas selittää: "Ei lentänyt kipinät"

      Maajussille morsian -sarjassa etsitään rakkautta ja rinnalle kumppania. Yksi maajusseista on Jetta - liikunnallinen ja
      Maajussille morsian
      12
      477
    Aihe