Λειτουργίες & Διαδικασίες VBScript με Παράδειγμα
Διαδικασίες VBScript
Οι διαδικασίες VBScript χρησιμοποιούνται κυρίως για οργάνωση και επαναχρησιμοποίηση κώδικα. Χρησιμοποιούμε απλά παραδείγματα μέχρι τώρα καθώς εδώ ο σκοπός είναι η εκμάθηση VBScript. Αλλά σε πραγματικό σενάριο, ο κώδικας δεν είναι τόσο απλός. Όταν προσπαθείτε να εφαρμόσετε κάτι που είναι χρήσιμο, ο κώδικας μπορεί να γίνει πιο περίπλοκος. Θα μπορούσαν να υπάρχουν εκατοντάδες γραμμές που εκτείνονται σε πολλές σελίδες.
Εάν δεν οργανώσετε σωστά τον κώδικα, η όλη διαδικασία κωδικοποίησης, εντοπισμού σφαλμάτων και διαχείρισης του κώδικα θα γίνει πραγματικά πολύπλοκη. Επομένως, θα πρέπει να οργανώσετε ή να διαμορφώσετε τον κώδικα προσεκτικά, ώστε ο κώδικάς σας να γίνεται εύκολα διαχειρίσιμος.
Επιπλέον, ας υποθέσουμε ότι έχετε ένα σύνολο εντολών που εκτελεί μια συγκεκριμένη ενέργεια. Θέλετε η ίδια ενέργεια να επαναλαμβάνεται πολλές φορές. Τότε, γιατί πρέπει να γράφετε τον ίδιο κωδικό ξανά και ξανά; Χρησιμοποιώντας αποτελεσματικές τεχνικές, μπορείτε να κάνετε τον κώδικά σας επαναχρησιμοποιήσιμο. Αυτό θα βοηθήσει τους προγραμματιστές να οργανώσουν όμορφα τον κώδικα και τους δοκιμαστές να εντοπίσουν εύκολα σφάλματα. Εν ολίγοις, η σπονδυλοποίηση και η επαναχρησιμοποίηση κώδικα είναι πολύ σημαντική για να γίνει ο κώδικας πιο ισχυρός, αξιόπιστος και ευκολότερος στη συντήρηση. Εδώ έρχονται οι διαδικασίες σε μια εικόνα.
Τύποι διαδικασιών σε VBScript
Μια διαδικασία είναι ένα μπλοκ κώδικα που εκτελεί ιδανικά μια μεμονωμένη λειτουργία. Ένα μπλοκ κώδικα που επεξεργάζεται μια είσοδο ή χειρίζεται ένα αρχείο είναι ένα καλό παράδειγμα συνάρτησης. Υπάρχουν δύο τύποι διαδικασιών σε Vbscript.
- Υποδιαδικασία: Η δευτερεύουσα διαδικασία δεν επιστρέφει τιμή.
- Διαδικασία συνάρτησης: Η διαδικασία συνάρτησης χρησιμοποιείται εάν θέλετε να επιστρέψετε μια τιμή.
Υποδιαδικασίες
Εάν θέλετε να εκτελέσετε μια σειρά από εντολές χωρίς να επιστρέψετε καμία τιμή, τότε μπορείτε να χρησιμοποιήσετε υποδιαδικασίες.
Οι υποδιαδικασίες ξεκινούν και τελειώνουν με προτάσεις Sub και End Sub αντίστοιχα. Οι δευτερεύουσες διαδικασίες μπορούν να λάβουν ορίσματα, αλλά δεν μπορούν να επιστρέψουν μια τιμή. Οι δευτερεύουσες διαδικασίες ενδέχεται να λάβουν ή όχι στοιχεία.
Sub outputMessage() document.write("Welcome") End Sub
Απλά γράφοντας αυτόν τον κώδικα δεν θα βγει τίποτα. Εδώ έχετε δημιουργήσει μια διαδικασία Sub με το όνομα outputMessage. Στη συνέχεια, πρέπει να το καλέσετε.
call outputMessage()
Συνδυάστε και τα δύο αυτά σετ κωδικών μέσα tag like this.
<script type="text/vbscript"> Sub outputMessage() document.write("Welcome") End Sub call outputMessage() </script>
Η έξοδος αυτού του κώδικα θα είναι
Λειτουργίες VBScript
Εάν θέλετε να εκτελέσετε μια σειρά από εντολές και να επιστρέψετε μια τιμή, τότε πρέπει να χρησιμοποιήσετε διαδικασίες συνάρτησης, κοινώς γνωστές ως συνάρτηση.
Οι διαδικασίες συνάρτησης ξεκινούν και τελειώνουν με εντολές Function και End Function αντίστοιχα.
Μια διαδικασία συνάρτησης μπορεί να λάβει ή όχι είσοδο.
Οι διαδικασίες συνάρτησης επιστρέφουν μια τιμή εκχωρώντας την τιμή στο όνομά της.
<script type="text/vbscript"> Function findArea(radius) const pi=3.14 area = pi*radius*radius findArea = area End Function document.write("The area of the circle when the radius is 20 is " & findArea(20) &"<br/>") document.write("The area of the circle when the radius is 10 is " & findArea(10)) </script>
Η έξοδος αυτού του κώδικα θα είναι
Παράμετροι ByRef και ByVal
Μπορείτε να μεταβιβάσετε ορίσματα VBScript στις διαδικασίες με αναφορά ή με τιμή.
Εάν δεν προσδιορίζετε τίποτα όταν καλείτε μια διαδικασία, τότε το όρισμα/ορίσματα μεταβιβάζονται ως αναφορά από προεπιλογή.
Εάν οι αλλαγές που έγιναν στα ορίσματα παραμένουν ακόμη και μετά την κλήση της διαδικασίας, τότε πρέπει να μεταβιβάσετε τα ορίσματα VBScript με αναφορά.
Όταν ένα όρισμα μεταβιβάζεται με τιμή, τυχόν αλλαγές που κάνει η καλούμενη διαδικασία στην τιμή του μεταβλητή μην επιμείνετε μετά την κλήση της διαδικασίας.
Οι λέξεις-κλειδιά ByRef και ByVal χρησιμοποιούνται για τη μεταβίβαση ορισμάτων με αναφορά και με τιμή αντίστοιχα.
Για να κατανοήσετε τη διαφορά, πρώτα εκτελέστε τον παρακάτω κώδικα και δείτε την έξοδο.
Βήμα 1) Αντιγράψτε τον κώδικα στον επεξεργαστή σας
<script type="text/vbscript"> Function returnResult(ByRef value) value = value +1 returnResult = value End Function Dim x x=5 call returnResult(x) document.write(x) </script>
Βήμα 2) η έξοδος είναι 6.
Βήμα 3) Αλλάξτε τη συνάρτηση returnResult (τιμή ByRef) σε Function returnResult (τιμή ByVal)
Βήμα 4) Τώρα η έξοδος σας θα είναι 5.
Σύνοψη
- Οι διαδικασίες VBScript χρησιμοποιούνται κυρίως για καλύτερη οργάνωση και επαναχρησιμοποίηση κώδικα.
- Υπάρχουν δύο τύποι διαδικασιών VBS: Υποδιαδικασίες και Διαδικασίες λειτουργίας.
- Εάν θέλετε να εκτελέσετε μια σειρά από εντολές χωρίς να επιστρέψετε καμία τιμή, τότε μπορείτε να χρησιμοποιήσετε υποδιαδικασίες.
- Εάν θέλετε να εκτελέσετε μια σειρά από εντολές και να επιστρέψετε μια τιμή, τότε πρέπει να χρησιμοποιήσετε διαδικασίες συνάρτησης.
- Μπορείτε να μεταβιβάσετε ορίσματα στις διαδικασίες με αναφορά ή με τιμή. Τα επιχειρήματα περνούν ως αναφορά από προεπιλογή.
- Εάν θέλετε να κάνετε τις αλλαγές που συνέβησαν στα ορίσματα να παραμείνουν ακόμη και μετά την κλήση της διαδικασίας, τότε πρέπει να μεταβιβάσετε τα ορίσματα με αναφορά και διαφορετικά με τιμή.