Tema: Re: skaiciai i zodzius MS worde
Autorius: Jornada Del Muerto
Data: 2011-10-25 17:50:49

Public Function Zodis(ByVal Suma As Double) As String
    Dim I As Integer, J As Integer, K As Integer, N As Integer, Str As String
    Dim Narys(8) As Integer, Nedesimt As Boolean
    Dim Vienas, Lika, Desimt, Simtas, Tukst, Milion

    Vienas = Array("vienas ", "du ", "trys ", "keturi ", "penki ", "ei ", "septyni ", "atuoni ", "devyni ")
    Lika = Array("vienuolika ", "dvylika ", "trylika ", "keturiolika ", "penkiolika ", "eiolika ", "septyniolika ", "atuoniolika ", "devyniolika ")
    Desimt = Array("deimt ", "dvideimt ", "trisdeimt ", "keturiasdeimt ", "penkiasdeimt ", "eiasdeimt ", "septyniasdeimt ", "atuoniasdeimt ", "devyniasdeimt ")
    Simtas = Array("imtas ", "imtai ")
    Tukst = Array("tkstantis ", "tkstaniai ", "tkstani ")
    Milion = Array("milijonas ", "milijonai ", "milijonu ")
    Str = CStr(Int(Abs(Suma)))
    N = Len(Str)

    If N < 10 Then
        For I = N To 1 Step -1
            Narys(N - I) = Mid(Str, I, 1)
        Next I
        If Suma < 0 Then Str = "minus " Else Str = ""
        K = 0
        For J = Int((N - 1) / 3) To 0 Step -1
            Nedesimt = False
            For I = N - 1 - K To J * 3 Step -1
                Select Case I - J * 3
                    Case 2
                        If Narys(I) <> 0 Then
                            Str = Str & Vienas(Narys(I) - 1)
                            If Narys(I) = 1 Then Str = Str & Simtas(0) Else Str = Str & Simtas(1)
                        End If
                    Case 1
                        If Narys(I) = 1 And Narys(I - 1) <> 0 Then
                            Nedesimt = True
                        Else
                            If Narys(I) <> 0 Then Str = Str & Desimt(Narys(I) - 1)
                        End If
                    Case 0
                        If Nedesimt Then
                            Str = Str & Lika(Narys(I) - 1)
                        Else
                            If Narys(I) <> 0 Then Str = Str & Vienas(Narys(I) - 1)
                        End If
                End Select
            Next I
            K = N - J * 3
            Select Case J
                Case 0
                    If Str = "" Or Str = "minus " Then Str = Str & "nulis "
                    Str = Str & "Lt " & Format((Abs(Suma) - Int(Abs(Suma))) * 100, "00") & " ct"
                Case 1
                    If K = 1 Or (Narys(J * 3) <> 0 And Narys(1 + J * 3) <> 1) Then
                        If Narys(J * 3) = 1 Then Str = Str & Tukst(0) Else Str = Str & Tukst(1)
                    Else
                        If Narys(3) + Narys(4) + Narys(5) <> 0 Then Str = Str & Tukst(2)
                    End If
                Case 2
                    If K = 1 Or (Narys(J * 3) <> 0 And Narys(1 + J * 3) <> 1) Then
                        If Narys(J * 3) = 1 Then Str = Str & Milion(0) Else Str = Str & Milion(1)
                    Else
                        Str = Str & Milion(2)
                    End If
            End Select
        Next J
        Zodis = Chr(Asc(Str) - 32) & Right(Str, Len(Str) - 1)
    Else
        Zodis = "Tiek negali buti"
    End If
End Function


3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser