(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Slownie zlotych po niemiecku - utknalem
Paweł Hałas
2004-08-11 17:49:29 UTC
Witam...
Przerabiam moduł "SlownieZlotych" na moduł, który będzie zamieniał
cyfrę na słownie po niemiecku. Udało mi się wszystko poza jednym. Dziesiatki
i jednostki po niemiecku pisze sie odwrotnie niż po polsku...
Po polsku: "setki dziesiątki jedności"
po niemiecku: "setki jedności i dziesiątki"

np:

cyfra 21 - po polsku - "dwadzieścia jeden"
- po niemiecku - "jeden i dwadzieścia"
cyfra 138 - po polsku - sto trzydzieści osiem
- po niemiecku - sto osiem i trzydzieści

Może ktoś z Was mógłby pomóc...
Z góry dzięki
Paweł



Oto ten moduł:

Option Compare Database
Option Explicit

Public Function slownie(L) As String
Dim C As Currency, S As String, G As String, Liczba000 As String
Dim i As Byte, Wynik As String, L1 As Byte, L10 As Byte, L100 As Byte
If Not IsNumeric(L) Then
Wynik = "???"
ElseIf L > 999999999999# Then
Wynik = "+++"
ElseIf L < -999999999999# Then
Wynik = "---"
Else
C = CCur(L)
Wynik = Switch(C < 0, "minus") & ""
If Fix(C) = 0 Then
Wynik = Wynik & " " & "null Euro"
ElseIf Int(Abs(C)) = 1 Then
Wynik = Wynik & " " & "ein Euro"
Else
S = Right(Format(Fix(C), "000000000000"), 12) '----euro
For i = 0 To 3
Liczba000 = Mid(S, 3 * i + 1, 3)
If CInt(Liczba000) = 1 Then
Wynik = Trim(Wynik) & " " & Trim("ein " & Choose(i +
1, "milliarde", "million", "tausend", "Euro"))
Else
L1 = Right(Liczba000, 1)
L10 = Mid(Liczba000, 2, 1)
L100 = Left(Liczba000, 1)
If L1 + L10 + L100 > 0 Then

Wynik = Trim(Wynik) & " " & Trim(Stringi("Setki", L100)

& " " & Stringi("dziesiatki", L10))
If L10 = 1 Then
Wynik = Trim(Wynik) & " " & Stringi("nastki", L1)
& " " & Choose(i + 1, "milliarden", "millionen", "tausend", "Euro")
Else

Wynik = Trim(Wynik) & " " & Trim(Stringi("jednostki",

L1) & " " & Stringi("sekcja" & i, L1))
End If
End If
If (i = 3) And (L10 <> 1) Then Wynik = Trim(Wynik) & " " &
Stringi("zlote", Right(S, 1))
End If
Next i
End If
G = Right(Format(C, "0.00"), 2) '---centy
If G = 0 Then
Wynik = Trim(Wynik) & " null Cent"
ElseIf G = 1 Then
Wynik = Trim(Wynik) & " ein Cent"
Else
If Left(G, 1) = 1 Then

Wynik = Trim(Wynik) & " " & Stringi("nastki", Right(G, 1)) & "

Cent"
Else
Wynik = Trim(Wynik) & " " & Trim(Stringi("jednostki", Right(G,
1)) & " und " & Stringi("dziesiatki", Left(G, 1)))
Wynik = Trim(Wynik) & " " & Stringi("grosze", Right(G, 1))
End If
End If
End If
slownie = Wynik
End Function


Public Function Stringi(NrStringu As String, Cyfra As Byte)
Select Case NrStringu
Case "jednostki"
Stringi = Choose
(Cyfra, "ein",
"zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neu

n")
Case "nastki"
Stringi = Choose(Cyfra +
1, "zehn",
"elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechszehn", "s

iebzehn", "achtzehn", "neunzehn")
Case "dziesiatki"
Stringi = Choose
(Cyfra, "",
"zwanzig", "dreißig", "vierzig", "fünfzig", "sechszig", "siebzig",

"achtzig", "neunzig")
Case "setki"
Stringi = Choose
(Cyfra,
"hundert", "zweihundert", "dreihundert", "vierhundert", "fünfhundert",

"sechshundert", "siebenhundert", "achthundert", "neunhundert")
Case "sekcja2"
Stringi = Choose(Cyfra +
1,
"tausend", "tausend", "tausend", "tausend", "tausend", "tausend", "tausend"

, "tausend", "tausend", "tausend")
Case "sekcja1"
Stringi = Choose(Cyfra +
1,
"Millionen", "Millionen", "Millionen", "Millionen", "Millionen", "Millionen

", "Millionen", "Millionen", "Millionen", "Millionen")
Case "sekcja0"
Stringi = Choose(Cyfra +
1,
"Milliarden", "Milliarden", "Milliarden", "Milliarden", "Milliarden", "Mill

iarden", "Milliarden", "Milliarden", "Milliarden", "Milliarden")
Case "zlote"
Stringi = Choose(Cyfra +
1, "Euro",
"Euro", "Euro", "Euro", "Euro", "Euro", "Euro", "Euro", "Euro", "Eu

ro")
Case "grosze"
Stringi = Choose(Cyfra +
1, "Cent",
"Cent", "Cent", "Cent", "Cent", "Cent", "Cent", "Cent", "Cent", "Ce

nt")
End Select
End Function
--
============= P o l N E W S ==============
archiwum i przeszukiwanie newsów
http://www.polnews.pl
Paweł Hałas
2004-08-11 18:04:32 UTC
Zapomniałem dodać, że grosze podaje prawidłowo.
Wystrarczyło zamienić Right na Left i wszystko gra.

Nie mogę sobie tylko poradzić pełnymi cyframi.

Z góry dzięki
Paweł
--
============= P o l N E W S ==============
archiwum i przeszukiwanie newsów
http://www.polnews.pl
Rafał Posmyk
2004-08-12 07:00:54 UTC
Post by Paweł Hałas
Zapomniałem dodać, że grosze podaje prawidłowo.
Wystrarczyło zamienić Right na Left i wszystko gra.
Nie mogę sobie tylko poradzić pełnymi cyframi.
http://groups.google.pl/groups?q=betrag+in+worten&meta=group%3Dde.comp.datenbanken.ms-access

Ciao, Smyk
--
Fju fju ..., powiedział  Ćwirek.
Paweł Hałas
2004-08-12 15:30:49 UTC
Post by Paweł Hałas
Zapomniałem dodać, że grosze podaje prawidłowo.
Wystrarczyło zamienić Right na Left i wszystko gra.
Nie mogę sobie tylko poradzić pełnymi cyframi.
http://groups.google.pl/groups?q=b etrag+in+worten&meta=group%
3Dde.comp.datenbanken.ms-access
Ciao, Smyk
Wielkie dzięki...
Znalazłem, działa idealnie!
Nie znam niemieckiego więc tym bardziej miałem z tym problem.

Pozdrawiam
Paweł
--
============= P o l N E W S ==============
archiwum i przeszukiwanie newsów
http://www.polnews.pl
Rafał Posmyk
2004-08-12 16:32:57 UTC
Post by Paweł Hałas
Znalazłem, działa idealnie!
Nie znam niemieckiego więc tym bardziej miałem z tym problem.
Widzialem tam gotowca, dlatego wyslalem tylko link :-)

Ciao, Smyk
--
Fju fju ..., powiedział  Ćwirek.