Private Function TriadToStr(ByVal Triad As Integer, Cl As Byte) As String Dim N1 As Byte, N2 As Byte, N3 As Byte, TTS As String TriadToStr = "" If Triad = 0 Then Exit Function ' выход при нулевой триаде '---------------------------- ' Выделение разрядов триады. '---------------------------- N1 = Triad Mod 10 ' единицы Triad = Int(Triad * 0.1) N2 = Triad Mod 10 ' сотни N3 = Int(Triad * 0.1) ' тысячи '--------------------------------------- ' Формирование текстовой записи триады. '--------------------------------------- TTS = "" ' текстовая запись триады If N2 = 1 Then '-------------------------------------- ' Обработка разрядов десятков и единиц ' для 9 < N2*10+N1 < 20. '-------------------------------------- If N1 = 0 Then TTS = SN(1, 2) Else TTS = SN(N1, 4) Else '--------------------------- ' Обработка разряда единиц. '--------------------------- If N1 > 0 Then If N1 = 1 Then Select Case Cl Case 0 TTS = "одно" Case 1 TTS = SN(N1, 1) Case 2 TTS = "одна" End Select ElseIf N1 = 2 Then Select Case Cl Case 0, 1 TTS = SN(N1, 1) Case 2 TTS = "две" End Select Else TTS = SN(N1, 1) End If End If '----------------------------- ' Обработка разряда десятков. '----------------------------- If N2 > 0 Then If N1 > 0 Then TTS = " " + TTS TTS = SN(N2, 2) + TTS End If End If '-------------------------- ' Обработка разряда сотен. '-------------------------- If N3 > 0 Then If N1 > 0 Or N2 > 0 Then TTS = " " + TTS TTS = SN(N3, 3) + TTS End If TriadToStr = TTS End Function Private Function GetDeterm(ByVal Triad As Integer, Item1 As String, Item2 As String, Item3 As String) As String Dim N1 As Byte, N2 As Byte N1 = Triad Mod 10 Triad = Int(Triad * 0.1) N2 = Triad Mod 10 If N2 <> 1 Then Select Case N1 Case 1 GetDeterm = Item1 Case 2 To 4 GetDeterm = Item2 Case Else GetDeterm = Item3 End Select Else GetDeterm = Item3 End If End Function