THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Προγραμματισμός (C, VB, Delphi, PHP, ASP...) => Topic started by: Wade on April 23, 2007, 18:05:13 pm



Title: Απορία σε VBS
Post by: Wade on April 23, 2007, 18:05:13 pm
Έχω μια απορία στη Visual Basic Script...  Μήπως ξέρει κανένας κάποια εντολή που να δέχεται ένα string με αριθμητικούς χαρακτήρες (π.χ. "4") και να επιστρέφει την αριθμητική τιμή (στην προκειμένη περίπτωση 4);


Title: Re: Απορία σε VBS
Post by: JAs0n-X on April 23, 2007, 23:27:48 pm
δεν ξερω visual basic αλλα επειδη δεν σου απανταει και κανενας ας κανω μια προσπαθεια...

ψαξε στην κλαση Int ή Int16 ή οτι εχει τελος παντων μηπως εχει συναρτηση Parse

σε C# για παραδειγμα αυτο που λες γινεται:

Int16.Parse(string);


Title: Re: Απορία σε VBS
Post by: Wade on April 25, 2007, 16:29:46 pm
Αν κανένας ενδιαφέρεται ακόμα, βρήκα μια απλή λύση για το πρόβλημα: Η συνάρτηση Round(expression) κατά κάποιο περίεργο τρόπο δέχεται αυτά τα αριθμητικά strings και επιστρέφει την αριθμητική τιμή τους.  Έχει το μειονέκτημα ότι χειρίζεται σωστά μόνο τους ακέραιους, αλλά μπορεί να γίνει ένα τέχνασμα για να λυθεί το πρόβλημα με τους δεκαδικούς:

Σε νέα μεταβλητή (παράδειγμα dec_digits), εκχωρούμε την τιμή length(expression)-InStr(expression,",") , η οποία δείχνει το πλήθος των δεκαδικών ψηφίων.  Μετά κάνουμε replace(expression, ",", "") στο αρχικό string, το κάνουμε round και διαιρούμε τον ακέραιο που προκύπτει με το 10*dec_digits και έχουμε τον αρχικό αριθμό.


Title: Re: Απορία σε VBS
Post by: JAs0n-X on April 25, 2007, 22:43:50 pm
Αν κανένας ενδιαφέρεται ακόμα, βρήκα μια απλή λύση για το πρόβλημα: Η συνάρτηση Round(expression) κατά κάποιο περίεργο τρόπο δέχεται αυτά τα αριθμητικά strings και επιστρέφει την αριθμητική τιμή τους.  Έχει το μειονέκτημα ότι χειρίζεται σωστά μόνο τους ακέραιους, αλλά μπορεί να γίνει ένα τέχνασμα για να λυθεί το πρόβλημα με τους δεκαδικούς:

Σε νέα μεταβλητή (παράδειγμα dec_digits), εκχωρούμε την τιμή length(expression)-InStr(expression,",") , η οποία δείχνει το πλήθος των δεκαδικών ψηφίων.  Μετά κάνουμε replace(expression, ",", "") στο αρχικό string, το κάνουμε round και διαιρούμε τον ακέραιο που προκύπτει με το 10*dec_digits και έχουμε τον αρχικό αριθμό.

μμ πρακτικο ! :P


Title: Re: Απορία σε VBS
Post by: Wade on April 25, 2007, 22:46:45 pm
...Και κάτι ακόμα: Μόλις ανακάλυψα ότι υπάρχει ειδική συνάρτηση που μετατρέπει τα strings σε integers, η CInt(expression) :P


Title: Re: Απορία σε VBS
Post by: Emfanever on July 31, 2008, 20:29:31 pm
Κάπως αργά (lol!), αλλά for the record η συνάρτηση που ζητάς(ζητούσες) πρέπει να είναι η Val(string)