freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Αριθμητική τιμή σε ολογράφως


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [11 Μηνύματα]      Bookmarks Tags: αριθμητικήτιμήευρώ Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
krigas7


Μέλος από: 27 Σεπ 2005
Μηνύματα: 15
Περιοχή: ΧΑΛΚΙΔΑ
View users profile
ΜήνυμαΣτις: 27 Σεπ 2005 13:57    Θέμα: Αριθμητική τιμή σε ολογράφως
Περιγραφή θέματος: Π.Χ. 51 e σε (πεντήντα ένα ευρώ)
Απάντηση με παράθεση  Mark this post and the followings unread

Αγαπητε μου φίλε.
Είμαι νέος στο forum
Ασχολούμε με προγραμματισμός σε περιβάλλον Access και μακροεντολές
Είμαι νέος ακόμη στο χώρο της VBasic

Θέλω σε πλαίσιο φόρμας στην Access να μου μετατρέπει την αριθμητική τιμή ευρώ σε ολογράφως. Π.Χ. 51 E σε (πεντήντα ένα ευρώ)

Μήπως θα μπορούσε να με βοήθήσεις;
Σε ευχαριστώ
alkisg


Μέλος από: 03 Ιουν 2005
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile Visit posters website
ΜήνυμαΣτις: 27 Σεπ 2005 20:11    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Καλωσόρισες στο φόρουμ (φρέσκος κι εγώ όπως βλέπεις). Συνήθως βέβαια χρησιμοποιούμε πληθυντικό στις ερωτήσεις, αφού οι υποψήφιοι... απαντητές είναι πολλοί.

Ο παρακάτω κώδικας είναι σε VBA, υποθέτω ότι θα μπορείς να τον προσαρμόσεις σε Access ή σε ότι άλλο θες...
κώδικας:
Private Function Ολογράφως(ByVal ποσό As Long, Optional ByVal γένος As Integer = 0) As String
'Copyright (c) 2002 - alkisg
'Επιστρέφει ολογράφως το ποσό με ένα κενό στο τέλος του.
'Γένος: (-1 = Θηλυκό, 0 = Ουδέτερο, 1 = Αρσενικό
  Dim Μονάδες, Δεκάδες, Εκατοντάδες, Μύριο, Μύρια As Variant
  Dim μ As Integer, δ As Integer, ε As Integer
  Dim μρ As Integer, εμ As Integer, γ As Integer     'μρ = ΜύΡια, εμ = Εκατοντάδες Μυρίων, γ = Γένος
  Dim ολο As String
 
  Μονάδες = Array("", "ένα ", "δύο ", "τρία ", "τέσσερα ", "πέντε ", "έξι ", _
   "επτά ", "οκτώ ", "εννιά ", "δέκα ", "έντεκα ", "δώδεκα ", "δεκατρία ")
  Δεκάδες = Array("", "δεκα", "είκοσι ", "τριάντα ", "σαράντα ", _
   "πενήντα ", "εξήντα ", "εβδομήντα ", "ογδόντα ", "εννενήντα ")
'Οι Εκατοντάδες ορίζονται ως πίνακας (0 To 2)(0 To 10) ώστε να περιλαμβάνουν και τα τρία γένη
  Εκατοντάδες = Array( _
   Array("", "εκατόν ", "διακόσιες ", "τριακόσιες ", "τετρακόσιες ", _
    "πεντακόσιες ", "εξακόσιες ", "επτακόσιες ", "οκτακόσιες ", "εννιακόσιες ", "χίλιες "), _
   Array("", "εκατόν ", "διακόσια ", "τριακόσια ", "τετρακόσια ", _
    "πεντακόσια ", "εξακόσια ", "επτακόσια ", "οκτακόσια ", "εννιακόσια ", "χίλια "), _
   Array("", "εκατόν ", "διακόσιοι ", "τριακόσιοι ", "τετρακόσιοι ", _
    "πεντακόσιοι ", "εξακόσιοι ", "επτακόσιοι ", "οκτακόσιοι ", "εννιακόσιοι ", "χίλιοι "))
  Μύριο = Array("", "", "ένα εκατομμύριο ", "ένα δισεκατομμύριο ", "ένα τρισεκατομμύριο ")
  Μύρια = Array("", "χιλιάδες ", "εκατομμύρια ", "δισεκατομμύρια ", "τρισεκατομμύρια ")
 
  If ποσό = 0 Then
    Ολογράφως = "μηδέν "
    Exit Function
  End If
  ολο = ""
'Ανάλυση ανά εκατοντάδες "Μυρίων"
  For μρ = 3 To 0 Step -1
    If μρ = 0 Then                                            'Μέχρι το 999 χρησιμοποιείται το γένος
      γ = γένος
    ElseIf μρ = 1 Then                                              'Οι χιλιάδες είναι πάντα θηλυκές
      γ = -1
    Else                                               'Τα εκατομμύρια και πάνω είναι πάντα ουδέτερα
      γ = 0
    End If
    εμ = ποσό \ (1000 ^ μρ) Mod 1000
    If εμ = 1 And μρ <> 0 Then                                     'Π.χ. χίλιοι ή ένα δισεκατομμύριο
      If μρ = 1 Then
        ολο = ολο & Εκατοντάδες(γένος + 1)(10)  'Ειδικά στα χίλια θέλουμε το αληθινό γένος, όχι το γ
      Else
        ολο = ολο & Μύριο(μρ)
      End If
    ElseIf εμ = 100 Then                                                        'Χωρίς το τελικό "ν"
      ολο = ολο & "εκατό "
    ElseIf εμ <> 0 Then                                               'Για εμ = 0 δεν μπαίνει τίποτα
'Ολογράφως κάθε εκατοντάδα "Μυρίων"
      ε = εμ \ 100
      ολο = ολο & Εκατοντάδες(γ + 1)(ε)            'Είναι Array από Array και όχι δισδιάστατο Array
      δ = εμ Mod 100                                  'Πρώτα απομόνωσε και τις μονάδες (μέχρι το 99)
      If δ >= 10 And δ <= 13 Then                  'Επειδή μέχρι το δεκατρείς είναι ειδική περίπτωση
        If δ = 13 And γ <> 0 Then
          ολο = ολο & "δεκατρείς "                                'Ειδική περίπτωση επειδή έχει τόνο
        Else
          ολο = ολο & Μονάδες(δ)
        End If
      Else
        δ = δ \ 10                                                      'Σωστή απομόνωση των δεκάδων
        μ = εμ Mod 10
        ολο = ολο & Δεκάδες(δ)
        If μ = 1 And γ = -1 Then
          ολο = ολο & "μία "
        ElseIf μ = 1 And γ = 1 Then
          ολο = ολο & "ένας "
        ElseIf μ = 3 And γ <> 0 Then
          ολο = ολο & "τρεις "
        ElseIf μ = 4 And γ <> 0 Then
          ολο = ολο & "τέσσερις "
        Else
          ολο = ολο & Μονάδες(μ)
        End If
      End If
      ολο = ολο & Μύρια(μρ)       'Αφού γράφηκαν οι εκατοντάδες προστίθεται και το "εκατομμύρια" κτλ
    End If
  Next μρ
  Ολογράφως = ολο                          'Πάντα μένει ένα κενό από δεξιά. Συνήθως αυτό χρειάζεται.
End Function
[/code]
skeftomilos
Script Master

Μέλος από: 07 Ιαν 2005
Βοηθήματα: 33
Νέα: 1
Μηνύματα: 256+

Περιοχή: Αθήνα
View users profile
ΜήνυμαΣτις: 28 Σεπ 2005 14:39    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Απίστευτος ο κώδικας με τα ελληνικά keywords!

_________________
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
alkisg


Μέλος από: 03 Ιουν 2005
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile Visit posters website
ΜήνυμαΣτις: 28 Σεπ 2005 19:35    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Πάντως σε όσους δείχνω κώδικα με ελληνικούς identifiers μου λένε ότι είναι πιο κατανοητός! Ζήτω λοιπόν το Delphi 2005, η Java, η VBA, η Javascript, η C# και όσες άλλες γλώσσες υποστηρίζουν ελληνικά!

_________________
Ο Διερμηνευτής της ΓΛΩΣΣΑΣ για το μάθημα «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Εγκατάσταση σχολικών εργαστηρίων με λογισμικό ανοικτού κώδικα Ubuntu/LTSP/sch-scripts
skeftomilos
Script Master

Μέλος από: 07 Ιαν 2005
Βοηθήματα: 33
Νέα: 1
Μηνύματα: 256+

Περιοχή: Αθήνα
View users profile
ΜήνυμαΣτις: 01 Οκτ 2005 23:35    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

κώδικας:
...
<script type="text/javascript">
  var δ;
</script>




Οι σύγχρονοι browsers φαίνονται να αποδέχονται χωρίς αντίρρηση τους ελληνικούς identifiers, αλλά δεν ισχύει το ίδιο για τον IE5. Και απ' ό,τι λένε οι στατιστικές υπάρχουν ακόμα κάμποσοι IE5 που κυκλοφορούν στο Internet (περίπου 3%) οπότε ... αυτοσυγκράτηση για κανα-δυό χρόνια ακόμα!

_________________
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 02 Οκτ 2005 03:57    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

το πρόβλημα δεν είναι στο αν δέχονται οι browsers ελληνικές μεταβλητές ή όχι αλλά στο αν θα μπορεί ο κόσμος να τις καταλάβει. Σκέφτείτε να χρειαστεί να ζητήσετε βοήθεια από κάποιον και αυτός απλόχερα δώσει την πληροφορία που θέλετε και μάλιστα σε κώδικα (...με μεταβλητές, functions και σχόλια στα ιαπωνικά, επειδή έτυχε να είναι από την ιαπωνία). Θα μπορείτε να καταλάβετε αν αυτό που πήρατε είναι αυτό που ζητήσατε;
alkisg


Μέλος από: 03 Ιουν 2005
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile Visit posters website
ΜήνυμαΣτις: 02 Οκτ 2005 15:46    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Εξαρτάται κατά πόσο συνεργάζεσαι με ξένους και κατά πόσο με Έλληνες... Φαντάζεσαι να θες να εξηγήσεις τον κώδικά σου σε 100 Έλληνες και κανένας τους να μην ξέρει γρι αγγλικά;
[μου έχει τύχει αρκετές φορές να πρέπει να εξηγήσω τι σημαίνει inc, count, proc, ptr κτλ]

Όποτε υπάρχει περίπτωση να δει και "ξένο μάτι" τον κώδικα, ΟΚ, πάσο, χρησιμοποιώ αγγλικά, αλλά π.χ. την μετατροπή σε ευρώ ολογράφως στα ελληνικά, ποιος ξένος θα την ήθελε;

_________________
Ο Διερμηνευτής της ΓΛΩΣΣΑΣ για το μάθημα «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Εγκατάσταση σχολικών εργαστηρίων με λογισμικό ανοικτού κώδικα Ubuntu/LTSP/sch-scripts
skeftomilos
Script Master

Μέλος από: 07 Ιαν 2005
Βοηθήματα: 33
Νέα: 1
Μηνύματα: 256+

Περιοχή: Αθήνα
View users profile
ΜήνυμαΣτις: 03 Οκτ 2005 04:06    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Το χειρότερό μου πάντως είναι identifiers greeklish. Ορισμένοι λένε ότι έτσι ξεχωρίζουν καλύτερα τις δικές τους ρουτίνες από το υποκείμενο API. Βάσιμο το επιχείρημα, απλά σε μένα δεν αρέσουν καθόλου τα greeklish.

_________________
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
st3F0s


Μέλος από: 08 Νοε 2005
Βοηθήματα: 1
Μηνύματα: 17


View users profile
ΜήνυμαΣτις: 18 Μαη 2006 15:29    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Γεια σας Φίλοι/ες.

Επειδή θέλω να προσθέσω τη δυνατότητα αναγραφής της ημ. γέννησης και ολογράφος σε ένα project, μήπως υπάρχει κάτι αντίστοιχο σε javascript ;

Ευχαριστώ εκ των προτέρων.
ABLADE


Μέλος από: 18 Ιουλ 2007
Μηνύματα: 110
Περιοχή: Θεσσαλονίκη
View users profile Visit posters website
ΜήνυμαΣτις: 20 Ιουλ 2007 14:55    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Χαίρετε!!!
νέος και εγώ στο foroum αλλα και στην access. Αλήθεια πως μπορώ να μετατρέψω τον κώδικα σε Access? Μήπως κάποιος το έκανε ήδη να μου το στείλει?
Ευχαριστώ
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 20 Ιουλ 2007 15:42    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Υπάρχουν έτοιμες υλοποιήσεις αν ψάξεις για VBA+Ολογράφως στο google.
Ενδεικτικά
http://www.dotnetzone.gr/cs/forums/thread/13015.aspx
http://www.dotnetzone.gr/cs/forums/1933/ShowPost.aspx

Ισως χρειαστεί να δεις λίγο τον κώδικα, που προσθέτει την λέξη ευρώ και να την αφαιρέσεις.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [11 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Τώρα είναι 25 Μαρ 2017 05:55 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos