Microsoft® Visual Basic® Scripting Edition
VBScript Variables
| VBScript Tutorial |
| Previous | Next


Τι είναι μια μεταβλητή ;
 
 

Μια μεταβλητή είναι μια αποθήκη θέσης η οποία αναφέρεται σε μια τοποθεσία της μνήμης του υπολογιστή σας που μπορείτε να αποθηκεύσετε πληροφορίες οι οποίες μπορεί να αλλάξουν κατά τη διάρκεια που η καταγραφή των στοιχείων σας ακόμη συνεχίζεται. Για παράδειγμα, μπορείτε να δημιουργήσετε μια μεταβλητή που ονομάζεται ClickCount ώστε να αποθηκεύσετε πόσες φορές ένας χρήστης έκανε κλικ πάνω σε ένα αντικείμενο, σε μια συγκεκριμένη σελίδα . Η ακριβής τοποθεσία μέσα στη μνήμη του υπολογιστή όπου βρίσκεται η μεταβλητή δεν μας ενδιαφέρει ιδιαίτερα , δεν είναι σημαντικό. Αυτό που είναι σημαντικό είναι ότι μπορεί απλά και μόνο να αναφερθείτε σ’ αυτή με το όνομά της για να δείτε ή και να αλλάξετε την τιμή της. Στο VBScript, οι μεταβλητές είναι μόνο ενός τύπου δεδομένων, Variant.

Πως δηλώνονται οι μεταβλητές
 
 

Μπορείτε να δηλώσετε τις μεταβλητές αναλυτικά μέσα στο κείμενό σας χρησιμοποιώντας τις δηλώσεις Dim, Public, καιPrivate. Για παράδειγμα :
 
 

Dim DegreesFahrenheit
 
 

Μπορείτε να δηλώσετε πολλαπλές μεταβλητές με το να διαχωρίζετε κάθε όνομα μεταβλητής μ’ ένα κόμμα. Για παράδειγμα :

Dim Top, Bottom, Left, Right
 
 

Επίσης μπορείτε να δηλώσετε μια μεταβλητή χωρίς περιορισμούς με το να χρησιμοποιήσετε απλώς το όνομά της κάπου μέσα στο κείμενό σας. Κάτι τέτοιο βέβαια δεν είναι και ότι καλύτερο στην πράξη γιατί μπορεί να γράψετε λάθος το όνομα μιας μεταβλητής σε μια ή περισσότερες θέσεις και έτσι να προκαλέσετε απρόσμενα αποτελέσματα όταν το κείμενό σας τρέξει. Για το λόγο αυτό υπάρχει η δήλωση Option Explicit, για να απαιτήσει ανά πάσα στιγμή ρητή δήλωση όλων των μεταβλητών. Η δήλωση Option Explicit πρέπει, για να λειτουργήσει σωστά , να είναι η πρώτη δήλωση στο κείμενό σας.
 
 

Περιορισμοί
 
 

Τα ονόματα των μεταβλητών ακολουθούν τους κλασικούς κανόνες που υπάρχουν για την ονομασία οτιδήποτε μέσα στο VBScript. Το όνομα μιας μεταβλητής :
 
 


 
 

Εμβέλεια και διάρκεια ζωής των μεταβλητών
 
 
 
 

Όταν δηλώσετε μια μεταβλητή μέσα σε μια διαδικασία (procedure), μόνο ο κώδικας που βρίσκεται μέσα σ’ αυτή μπορεί να έχει πρόσβαση ή ν’ αλλάξει την τιμή αυτής της μεταβλητής . Αυτή η μεταβλητή έχει τοπικήεμβέλεια και είναι γνωστή σαν μεταβλητή επιπέδου-procedure. Μερικές φορές χρειάζεται να χρησιμοποιήσετε μια μεταβλητή με μεγαλύτερη ευελιξία, όπως κάποια της οποίας η τιμή είναι διαθέσιμη σε όλες τις διαδικασίες που βρίσκονται στο ίδιο κείμενο. Αν δηλώσετε μια μεταβλητή έξω από μια διαδικασία, την κάνετε αναγνωρίσιμη σε όλες τις διαδικασίες μέσα στο κείμενό σας . Αυτό το είδος μεταβλητών επιπέδου-script, θεωρείται ότι έχει εμβέλεια όλο το script.
 
 

Το μέγεθος του χρόνου μέσα στο οποίο υφίσταται μια μεταβλητή αντιπροσωπεύει και τη διάρκεια ζωής της. Η διάρκεια ζωής μιας γενικής μεταβλητής ξεκινά από τη στιγμή που αυτή δηλώνεται και τελειώνει τη στιγμή που η εφαρμογή σταματάει να εκτελείται. Η διάρκεια ζωής της τοπικής μεταβλητής ξεκινά όταν ενεργοποιείται η δήλωσή της καθώς αρχίζει η διαδικασία και τελειώνει όταν ολοκληρώνεται η διαδικασία. Οι τοπικές μεταβλητές αποτελούν τον ιδανικό προσωρινό χώρο αποθήκευσης κατά τη διάρκεια εκτέλεσης μιας διαδικασίας. Μπορείτε να έχετε τοπικές μεταβλητές που έχουν το ίδιο όνομα σε πολλές και διαφορετικές διαδικασίες γιατί κάθε μια αναγνωρίζετε μόνο από την διαδικασία μέσα στην οποία έχει δηλωθεί.

Η εμβέλεια μιας μεταβλητής καθορίζεται από το που τη δηλώνετε. Η διάρκεια ζωής μιας μεταβλητής είναι πάντα η ίδια. Υφίσταται για όσο χρόνο τρέχει η εφαρμογή. Μια τοπική μεταβλητή υφίσταται μόνο για όσο χρόνο εκτελείται η συγκεκριμένη διαδικασία. Όταν εγκαταλείπετε τη συγκεκριμένη διαδικασία, η μεταβλητή καταστρέφεται.
 
 

Αποδίδοντας τιμές στις μεταβλητές
 
 

Οι τιμές αποδίδονται στις μεταβλητές με τρόπο που να δημιουργούν μια έκφραση όπως παρακάτω : η μεταβλητή είναι στο αριστερό μέρος της έκφρασης και η τιμή που θέλετε να δώσετε, στο δεξί. Για παράδειγμα :
 
 

Β= 200
 
 
 
 

Βαθμωτές μεταβλητές και Πίνακες (Arrays)
 
 
 
 

Τις περισσότερες φορές απλά επιθυμείτε να αποδώσετε μια μόνο τιμή σε μια μεταβλητή που έχετε δηλώσει. Μια μεταβλητή που περιέχει μια μόνο τιμή, ονομάζεται βαθμωτή μεταβλητή. Υπάρχουν και φορές που είναι περισσότερο βολικό να αποδώσετε περισσότερες από μια τιμές που συσχετίζονται μεταξύ τους σε μια μεταβλητή. Σ’ αυτή την περίπτωση μπορείτε να δημιουργήσετε μια μεταβλητή η οποία μπορεί να περιέχει μια σειρά τιμών. Αυτή ονομάζετε πίνακας. Οι πίνακες δηλώνονται σχεδόν με τον ίδιο τρόπο που δηλώνονται οι βαθμωτές. Η μόνη διαφορά είναι ότι η δήλωση ενός πίνακα χρησιμοποιεί παρένθεση η οποία ακολουθεί μετά το όνομα της μεταβλητής. Στο παρακάτω παράδειγμα δηλώνετε ένας μονοδιάστατος πίνακας που περιέχει 11 στοιχεία :
 
 

Dim A(10)
 
 

Παρ’ όλο που ο αριθμός στην παρένθεση είναι το 10, όλοι οι πίνακες έχουν σαν βάση το 0, οπότε ο συγκεκριμένος πίνακας περιέχει πράγματι 11 στοιχεία. Σε έναν πίνακα που έχει Σα βάση το 0, ο αριθμός των στοιχείων του είναι πάντα ο αριθμός μέσα στην παρένθεση συν ένα. Αυτό το είδος πίνακα ονομάζεται σταθερού μεγέθους πίνακας.
 
 

Μπορείτε να αποδώσετε δεδομένα σε κάθε ένα από τα στοιχεία του πίνακα, χρησιμοποιώντας έναν δείκτη μέσα στον πίνακα. Ξεκινώντας από το 0 και τελειώνοντας στο 10, τα δεδομένα μπορούν να αποδοθούν στα στοιχεία του πίνακα ως εξής :
 
 

Α(0) = 256

Α(1) =324

Α(2) =100

. . .

Α(10) = 55
 
 

Ομοίως, τα δεδομένα αυτά μπορούν ν’ ανακτηθούν από οποιοδήποτε στοιχείο, χρησιμοποιώντας ένα δείκτη στο συγκεκριμένο στοιχείο του πίνακα που επιθυμείτε. Για παράδειγμα :
 
 

someVariable = A(8)

Οι πίνακες δεν είναι περιορισμένοι όσον αφορά τις διαστάσεις τους, δεν είναι δηλαδή μόνο μονοδιάστατοι. Μπορείτε να έχετε μέχρι και 60 διαστάσεις σε έναν πίνακα αν και οι περισσότεροι άνθρωποι δεν μπορούν να κατανοήσουν και να χρησιμοποιήσουν σωστά έναν πίνακα με περισσότερες από 3 ή 4 διαστάσεις. Οι πολλαπλές διαστάσεις δηλώνονται χωρίζοντας τους αριθμούς που δείχνουν το μέγεθος του πίνακα με κόμματα, μέσα σε παρενθέσεις. Στο παράδειγμα που ακολουθεί η μεταβλητή MyTable είναι ένας δυσδιάστατος πίνακας που αποτελείται από 6 γραμμές και 11 στήλες :
 
 

Dim MyTable (5,10)
 
 

Σε ένα δυσδιάστατο πίνακα, ο πρώτος αριθμός είναι πάντα ο αριθμός που δείχνει τις γραμμές και ο δεύτερος αυτός που δείχνει τις στήλες.
 
 

Μπορείτε επίσης να δηλώσετε έναν πίνακα του οποίου το μέγεθος αλλάζει κατά τη διάρκεια που το κείμενό σας τρέχει. Αυτός ονομάζετε δυναμικός πίνακας. Αυτός ο πίνακας δηλώνεται μέσα σε μια διαδικασία χρησιμοποιώντας είτε η δήλωση Dim ( το οποίο χρησιμοποιείται και για οποιοδήποτε άλλο πίνακα), είτε ηReDim. Η διαφορά εδώ είναι ότι δεν χρειάζεται να μπουν σε παρενθέσεις ούτε το μέγεθος, ούτε ο αριθμός των διαστάσεων του πίνακα. Για παράδειγμα :
 
 

Dim MyArray ()

ReDim AnotherArray()
 
 

Για να χρησιμοποιήσετε έναν δυναμικό πίνακα πρέπει να κάνετε χρήση του ReDim, ώστε να καθορίζεται τον αριθμό και το μέγεθος των διαστάσεων. Στο παρακάτω παράδειγμα η ReDim θέτει το αρχικό μέγεθος του δυναμικού πίνακα σε 25. Το ReDim αλλάζει το μέγεθος του πίνακα σε 30, αλλά καθώς γίνεται αυτή η αλλαγή, χρησιμοποιεί τη λέξη κλειδίPreserveγια να διατηρήσει το περιεχόμενα του πίνακα.
 
 
 
 

ReDim MyArray (25)

ReDim Preserve MyArray (30)
 
 
 
 
 
 
 
 

Δεν υπάρχει κάποιο όριο στο πόσες φορές μπορεί να αλλάξετε το μέγεθος ενός δυναμικού πίνακα, αλλά θα πρέπει να ξέρετε ότι όταν αλλάξετε το μέγεθος του κάνοντάς τον μικρότερο, τότε χάνετε αυτομάτως τα δεδομένα που βρισκόταν στα στοιχεία του πίνακα που καταστρέψατε.
 
 


© 1997 Microsoft Corporation. All rights reserved.