If timi >20 Then Print ok Else Print ng EndIf. a = IIF(a>=20, 0, a)

Σχετικά έγγραφα
Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Υπολογιστικά Συστήματα

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

S, (5, -3, 34, -23, 7) ( *, _

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ-MSGBOX ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά

ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ

Κεφάλαιο 8ο: Αρχεία. 8.1 Τι είναι αρχείο;

Υπολογιστικά Συστήματα

4. Επιλογή και Επανάληψη

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Προγραμματισμός και Εφαρμογές Υπολογιστών

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

for for for for( . */

Προγραµµατισµός στην Basic

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

5. MΑΚΡΟΕΝΤΟΛΕΣ. Η δηµιουργία Μακροεντολής γίνεται µε δύο τρόπους :

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

Κων/νου Στυλιάδη. Visual Basic στην Access Κλήρωση Εξεταστών Υποψηφίων Οδηγών

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

Εισαγωγή στον Προγραμματισμό

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΚΕΦΑΛΑΙΟ Web Services

ΛΥΚΕΙΟ ΠΑΡΑΛΙΜΝΙΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ: ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ: Πληροφορική Κατεύθυνσης ΗΜΕΡΟΜΗΝΙΑ: 10/06/2014

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Ανάπτυξη εφαρμογής Input-Output

scanf() scanf() stdin scanf() printf() int float double %lf float

Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Οδηγίες για το Βιβλίο Κοστολογίου στα Γ κατηγορίας βιβλία

Προγραµµατιστικές Τεχνικές

Κεφάλαιο 5ο: Εντολές Επανάληψης

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΛΥΚΕΙΟ ΑΓΙΑΣ ΦΥΛΑΞΕΩΣ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ. Ονοµατεπώνυµο :... Τµήµα :... Αριθµός :...

ΥΠΗΡΕΣΙΑ WEBMAIL ΚΥΠΕΣ

Ανάπτυξη εφαρμογής Input-Output

MESSAGE EDITOR FOR WINDOWS Ο ΗΓΙΕΣ ΧΡΗΣΕΩΣ

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Εντολή If-Then-Else Σκοπός Μαθήματος

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: Υλοποίηση προγράµµατος σε Visual Basic µε σκοπό τη δηµιουργία του προγράµµατος εξεταστικής του Τ.Ε.Ι.

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Name (.: lblname Caption (. : 0 = BorderStyle ( 1 = 0 = Alignment ( ) 2 = Font ( Times New, Bold, 12

Χρήση του Ηλεκτρονικού Ταχυδροµείου µεαποµακρυσµένη σύνδεση

char name[5]; /* define a string of characters */

Διαδικασιακός Προγραμματισμός

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Σημειωματάριο Δευτέρας 20 Νοε. 2017

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Εισαγωγή στην πληροφορική

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6.

ΒΙΒΛΙΟ ΠΑΓΙΩΝ Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΓΙΑ ΤΟ CALCULUS ULTRA.

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

o AND o IF o SUMPRODUCT

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

ΠΕΡΙΕΧΟΜΕΝΑ. Εικονίδια ιαχείρισης Φορολογικών ηλώσεων. ηµιουργία Φορολογούµενου. ηµιουργία και υπολογισµός του εντύπου ΕΣΠ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Προγραμματισμός Η/Υ (ΤΛ2007 )

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP

Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility. (διαδικτυακή εφαρμογή)

Version X. Οδηγίες χρήσης

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Επεξεργασία Αρχείων Κειµένου

Σχήµα 4.1: Εισαγωγή βρόγχου while-loop.

Εισαγωγή στην πληροφορική

Υπολογιστικά Συστήματα

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Αρχή ή τέλος ή κοµβικό σηµείο. Λειτουργία εισόδου / εξόδου. Έλεγχος. Πράξεις / ενέργειες. Βρόχος R7 φορές

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Μεθόδων Επίλυσης Προβλημάτων

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties)

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

παράθυρα ιδακτικό υλικό µαθητή Πλήκτρα για να το παράθυρο Λωρίδα τίτλου Πλαίσιο παραθύρου

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Εφαρµογή EXTRA. ιαδικασία ιαχείρισης Εκτύπωσης Ισοζυγίου Γενικού - Αναλυτικών Καθολικών

Transcript:

Visual Basic (µέρος 3 ο ) 1

Περιεχόµενα Χρονόµετρο (Timer)...3 Εντολές...3 Εντολή If... End If...3 Εντολή Select Case... End Select...4 Βρόχοι...4 Συνάρτηση MsgBox() και ιαδικασία MsgBox...6 Συνάρτηση InputBox()...8 Πίνακες (Arrays)...10 Αρχεία στη Visual Basic...11 Σειριακά Αρχεία...13 Αρχεία Τυχαίας Προσπέλασης...15 Visual Basic (µέρος 3 ο ) 2

Χρονόµετρο (Timer) Το Timer είναι ένα αόρατο για τον τελικό χρήστη event (συµβάν) αλλά είναι χρήσιµος για την επεξεργασία στο παρασκήνιο. Tο συµβάν Timer καθορίζει τι θα γίνει µόλις περάσει το χρονικό διάστηµα που ορίζει ο χρονοδιακόπτης. Λειτουργεί παρασκηνιακά, ανεξάρτητα και συνεχώς. Με το συµβάν Timer καλούµε υπορουτίνες επαναληπτικά σε τακτά χρονικά διαστήµατα, όπου η συχνότητα των κλήσεων καθορίζεται από την ιδιότητα Interval σε msec. Αν ορίσουµε την ιδιότητα Enable του Timer σε False ή κάνουµε την ιδιότητα Interval 0, µπορούµε να σταµατήσουµε τη λειτουργία του Timer. Η τιµή της Interval µπορεί να αλλάξει και κατά τη διάρκεια της εκτέλεσης του κώδικα. Εντολές Εντολή If... End If Η εντολή αυτή είναι γνωστή και από την Qbasic και η σύνταξή της είναι απλή : If timi >20 Then Print ok Else Print ng EndIf Μπορούµε να χρησιµοποιήσουµε και τη συνάρτηση του άµεσου If (Immediate If), την IIF(), η οποία επιστρέφει µια τιµή που µπορούµε να αποθηκεύσουµε σε µια µεταβλητή και δέχεται τρία ορίσµατα : τη συνθήκη, την τιµή που θα επιστραφεί αν η συνθήκη είναι αληθής και την τιµή που θα επιστραφεί αν η συνθήκη είναι ψευδής. Ακολουθεί ένα παράδειγµα : a = IIF(a>=20, 0, a) Η τιµή της µεταβλητής a θα παραµείνει η ίδια αν a<20, ενώ αν a>=20, θα γίνει ίση µε 0. Visual Basic (µέρος 3 ο ) 3

Εντολή Select Case... End Select Με την ευέλικτη εντολή αυτή µπορούµε να επιλέξουµε να εκτελέσουµε µία ή περισσότερες εντολές από πολλές οµάδες εντολών, ανάλογα µε την τιµή που θα έχει µια παράσταση. Η επιλογή Case Else εκτελείται όταν δεν ισχύει κάποια από τις υπάρχουσες συνθήκες. Ακολουθεί παράδειγµα : Select Case itemperature Case 10 'τιµή ακριβώς 10 icategory = " έκα βαθµοί" Case 20 To 30 'τιµή µεταξύ 20 και 30 iιcategory = "Κανονική Θερµοκρασία" Case 30 To 35, 50, 60 To 65 'µία ακριβής τιµή και δύο περιοχές τιµών icategory = "Υψηλή Θερµοκρασία" Case Is > 65 'τιµή µεγαλύτερη από 65 icategory = "Πολύ Υψηλή Θερµοκρασία" Case Else ' άλλο icategory = "Άλλο" End Select Βρόχοι Η Visual Basic διαθέτει τις εξής τρεις τύπους βρόχων : For... Next, While... Wend και Do... Loop γνωστοί και αυτοί από την Qbasic. Με την For... Next µπορούµε να επαναλάβουµε ένα σύνολο εντολών συγκεκριµένες φορές. For i = 1 To 10 Print i 'Το i παίρνει τιµές από 1 έως 10 µε βήµα=1 εξ ορισµού 'εκτύπωση ενός πεδίου Next For i = 1 To 100 Step 5 To i παίρνει τιµές από 1 έως 100 µε βήµα 5 Print I εκτύπωση του i στην οθόνη Next Υπάρχει και η εντολή Exit For για πρόωρη έξοδο από ένα For... Next. Visual Basic (µέρος 3 ο ) 4

Η σύνταξη της While... Wend έχει ως εξής: While <συνθήκη>... εντολές... Wend Αν η <συνθήκη> είναι αληθής (true), οι εντολές που ακολουθούν θα εκτελεστούν µέχρι να συναντήσουν την εντολή Wend και ο έλεγχος θα επιστραφεί στην εντολή While για να ελεγχθεί και πάλι η <συνθήκη>. Όταν η <συνθήκη> γίνει ψευδής, το πρόγραµµα θα συνεχίσει µε την εντολή που βρίσκεται µετά από την εντολή Wend. Κατά την εκτέλεση της Do... Loop ένα σύνολο εντολών επαναλαµβάνεται όσο µια συνθήκη είναι ψευδής ή µέχρι η συνθήκη να γίνει αληθής. Με τη δοµή αυτή µπορούµε να βγούµε από τον βρόχο όποια στιγµή θέλουµε, χωρίς να χρειασθεί να φθάσουµε στο τέλος του βρόχου. Έχει σηµασία αν θα τοποθετήσουµε την εντολή Until του βρόχου στην αρχή ή στο τέλος. Παραδειγµα: Do Until InputFile.EOF αρχείου input #1, X print x Loop 'επανάληψη µέχρι να βρεθούµε στο τέλος του 'εκτύπωση ενός πεδίου 'µετάβαση στην επόµενη εγγραφή Στο παράδειγµα, η εντολή Until βρίσκεται αµέσως µετά την εντολή Do οπότε υπάρχει περίπτωση να µην µπούµε στον βρόχο αν η συνθήκη που ακολουθεί είναι αληθής. Ο βρόχος θα επαναλαµβάνεται όσο η συνθήκη είναι ψευδής. Ακολουθεί µια παραλλαγή της Do... Loop: Do If InputFile.EOF Exit Do nput #1, X print x Loop Until InputFile.EOF EOF (End Of File) 'εισαγωγή πεδίου από το αρχείο 'εκτύπωση του πεδίου 'επανάληψη της διαδικασίας Visual Basic (µέρος 3 ο ) 5

Στο παράδειγµα ο βρόχος µας θα εκτελεστεί µία τουλάχιστον φορά γιατί ο έλεγχος της συνθήκης γίνεται στο τέλος του βρόχου και όχι στην αρχή. Η εντολή Exit Do µεταφέρει τον έλεγχο του προγράµµατος στην εντολή που βρίσκεται αµέσως µετά τον βρόχο (πρόωρη έξοδος). Συνάρτηση MsgBox() και ιαδικασία MsgBox Η διαδικασία MsgBox καθώς και οι συναρτήσεις MsgBox() και InputBox() είναι ενσωµατωµένες στη Visual Basic και είναι χρήσιµες για λειτουργίες εισόδου/εξόδου δεδοµένων µέσα από προκαθορισµένα πλαίσια διαλόγου. Η συνάρτηση MsgBox() και η διαδικασία MsgBox εµφανίζουν ένα µήνυµα σ' ένα πλαίσιο διαλόγου και περιµένουν από τον χρήστη να πατήσει ένα πλήκτρο. Η συνάρτηση MsgBox() επιστρέφει µια ακέραια τιµή για να µπορούµε να γνωρίζουµε ποιο πλήκτρο πάτησε ο χρήστης, ενώ η διαδικασία MsgBox εµφανίζει απλά και µόνο ένα µήνυµα σ' ένα παράθυρο και δεν δέχεται επιλογή από τον χρήστη. Η σύνταξή τους γίνεται ως εξής : RetValue% = MsgBox (µήνυµα, τύπος, τίτλος, βοηθητικό αρχείο, συµφραζόµενα) MsgBox µήνυµα, τύπος, τίτλος, βοηθητικό αρχείο, συµφραζόµενα Το µήνυµα είναι ένα string που εµφανίζεται µέσα στο πλαίσιο διαλόγου, ενώ ο τίτλος είναι ένα string που εµφανίζεται στη µπάρα τίτλου του πλαισίου διαλόγου. Ο τύπος είναι ένας αριθµός και είναι ίσος µε το άθροισµα των τιµών που καθορίζουν τον αριθµό και τον τύπο των πλήκτρων που εµφανίζονται στο πλαίσιο διαλόγου. Το όρισµα µήνυµα είναι το µόνο υποχρεωτικό να χρησιµοποιηθεί. Visual Basic (µέρος 3 ο ) 6

Ο παρακάτω πίνακας εµφανίζει τις τιµές που χρησιµοποιούνται για το όρισµα τύπος της συνάρτησης MsgBox() : Τιµή Σηµασία Συµβολική Σταθερά 0 Μόνο το πλήκτρο ΟΚ vbokonly 1 Τα πλήκτρα ΟΚ και Cancel vbokcancel 2 Τα πλήκτρα Abort, Retry, Ignore vbabortretryignore 3 Τα πλήκτρα Yes, No, Cancel vbyesnocancel 4 Τα πλήκτρα Yes, No vbyesno 5 Τα πλήκτρα Retry, Cancel vbretrycancel 16 Το εικονίδιο Critical vbcritical 32 Το εικονίδιο? vbquestion 48 Το εικονίδιο! vbexclamation 64 Το εικονίδιο i vbinformation 0 Default είναι το 1ο πλήκτρο vbdefaultbutton1 256 Default είναι το 2ο πλήκτρο vbdefaultbutton2 512 Default είναι το 3ο πλήκτρο vbdefaultbutton3 0 Λειτουργικότητα εφαρµογής vbapplicationmodal 4096 Λειτουργικότητα συστήµατος vbsystemmodal Στο πιο πάνω παράδειγµα έχουµε το Μήνυµα οκιµή µε το εικονίδιο! και τίτλο του Message Box Τίτλος του MsgBox Ο πίνακας χωρίζεται σε 4 οµάδες, όπου η πρώτη οµάδα (0-5) καθορίζει τον αριθµό και τον τύπο των πλήκτρων που θα εµφανισθούν στο πλαίσιο διαλόγου, η δεύτερη οµάδα (16-64) το στυλ του εικονιδίου, Visual Basic (µέρος 3 ο ) 7

η τρίτη οµάδα ποιο θα είναι το προκαθορισµένο (default) πλήκτρο και η τέταρτη οµάδα τη λειτουργικότητα του πλαισίου µηνύµατος. Από κάθε οµάδα επιλέγουµε έναν αριθµό και το συνολικό άθροισµα και των 4 αριθµών καθορίζει το είδος του πλαισίου διαλόγου που θέλουµε να εµφανισθεί. Για παράδειγµα, η τιµή 49 (1+48+0+0) εµφανίζει τα πλήκτρα ΟΚ και Cancel και το εικονίδιο!. Default είναι το πλήκτρο ΟΚ. Εξ ορισµού τιµή για το συνολικό άθροισµα είναι το 0, δηλ. εµφανίζεται µόνο το πλήκτρο ΟΚ, το οποίο είναι και Default. Αντί για αριθµούς, µπορούµε να χρησιµοποιήσουµε και τις συµβολικές σταθερές. Η συνάρτηση MsgBox() επιστρέφει µια τιµή, η οποία καθορίζει το πλήκτρο που έχει επιλέξει ο χρήστης, σύµφωνα µε τον παρακάτω πίνακα : Τιµή Σηµασία Συµβολική Σταθερά 1 Πατήθηκε το πλήκτρο ΟΚ vbok 2 Πατήθηκε το πλήκτρο Cancel vbcancel 3 Πατήθηκε το πλήκτρο Abort vbabort 4 Πατήθηκε το πλήκτρο Retry vbretry 5 Πατήθηκε το πλήκτρο Ignore vbignore 6 Πατήθηκε το πλήκτρο Yes vbyes 7 Πατήθηκε το πλήκτρο No vbno Ο παραπάνω πίνακας χρησιµεύει για την κατασκευή προγράµµατος έτσι ώστε να γίνονται ενέργειες ανάλογα µε τις επιλογές του χρήστη. Συνάρτηση InputBox() Η συνάρτηση InputBox() εµφανίζει πλαίσια διαλόγου και ο χρήστης του προγράµµατος πρέπει να γράψει κάποιο κείµενο ή να πατήσει ένα πλήκτρο και επιστρέφει τα περιεχόµενα του πλαισίου κειµένου. Η τιµή που επιστρέφει η συνάρτηση είναι Variant ή String, ανάλογα µε τη σύνταξη που θα χρησιµοποιήσουµε : RetValue = InputBox(δείκτης, τίτλος, προκαθορισµένη τιµή, xpos, ypos, βοηθητικό αρχείο, συµφραζόµενα) 'επιστρέφει τύπο Variant RetValue$ = InputBox(δείκτης, τίτλος, προκαθορισµένη τιµή, xpos, ypos, βοηθητικό αρχείο, συµφραζόµενα) 'επιστρέφει τύπο String Visual Basic (µέρος 3 ο ) 8

Από τα παραπάνω ορίσµατα, υποχρεωτικό είναι ο δείκτης. Ο δείκτης είναι κείµενο και εµφανίζεται δίπλα στο πλαίσιο κειµένου όπου θα γράψει ο χρήστης. Ο τίτλος είναι ένα κείµενο που εµφανίζεται στη µπάρα τίτλου του πλαισίου διαλόγου. Η προκαθορισµένη τιµή είναι ένα String που εµφανίζεται στο πλαίσιο κειµένου και αποτελεί και την επιστροφόµενη τιµή της συνάρτησης αν δεν γράψει τίποτα ο χρήστης. Τα ορίσµατα xpos και ypos είναι αριθµοί που καθορίζουν την οριζόντια και την κατακόρυφη απόσταση από την πάνω αριστερή γωνία του πλαισίου διαλόγου έως την πάνω αριστερή γωνία της οθόνης. Αν τα παραλείψουµε και τα δύο, το πλαίσιο διαλόγου θα κεντραριστεί οριζόντια. Αν ο χρήστης επιλέξει το πλήκτρο ΟΚ ή αν πατήσει το πλήκτρο enter, η συνάρτηση InputBox() θα επιστρέψει το κείµενο που υπάρχει καταχωρηµένο στο πλαίσιο κειµένου, ενώ αν ο χρήστης δεν καταχωρήσει κείµενο ή πατήσει το πλήκτρο Cancel, η συνάρτηση θα επιστρέψει ένα String µηδενικού µήκους (" "). Ακολουθεί ένα παράδειγµα κώδικα µε χρήση των συναρτήσεων MsgBox() και InputBox() και της διαδικασίας MsgBox : Παράδειγµα: Dim dname As String dname = InputBox$(" ώστε Όνοµα : ", "Η Συνάρτηση InputBox()") If sname = "" Then MsgBox " εν δώσατε κάποια τιµή!", vbcritical End If Dim dmsg As String Dim iretval As Integer iretval = MsgBox("Καταχωρήσατε " & dname, 35, "Τιµή του dname") If iretval = 6 Then dmsg = "Πατήθηκε το Yes" ElseIf iretval = 7 Then dmsg = "Πατήθηκε το No" ElseIf iretval = 2 Then smsg = "Πατήθηκε το Cancel" End If MsgBox dmsg, 64, "Η ιαδικασία MsgBox" Visual Basic (µέρος 3 ο ) 9

Πίνακες (Arrays) Οι πίνακες (arrays), δηλ. οι µεταβλητές µε δείκτη, στη Visual Basic δηλώνονται ως εξής : Private Sub CmdRun_Click() Dim arname(3) As String arname(0) = "Test1" arname(1) = "Test2" arname(2) = "Test3" arname(3) = "Test4" For i = 0 To 3 Print arname(i) Next End Sub 'δηλώνουµε όνοµα, µέγεθος και τύπο τιµών του πίνακα 'δίνουµε τιµές στις µεταβλητές του πίνακα 'εκτυπώνουµε τα στοιχεία του πίνακα Visual Basic (µέρος 3 ο ) 10

Αρχεία στη Visual Basic Με τη χρήση της Visual Basic έχουµε τη δυνατότητα να χειριστούµε αρχεία Για να διαβάσουµε στοιχεία ενός αρχείου ή να γράψουµε σ' αυτό (προσθήκη ή τροποποίηση εγγραφών), θα πρέπει πρώτα να το ανοίξουµε µε την εντολή Open. Η Open στην ουσία εκχωρεί έναν ενδιάµεσο καταχωρητή µνήµης (buffer) στο αρχείο και καθορίζει και τον τρόπο προσπέλασής του. Μπορούµε να ανοίξουµε έναν αρχείο µ' έναν από τους εξής τρεις τρόπους : υαδικά, Σειριακά και Τυχαία. Η εντολή Open συντάσσεται ως εξής : Open FileName for Mode As #FileNumber Len=RecLength Το FileName είναι µια συµβολοσειρά που περιέχει τη διαδροµή, δηλ. µονάδα δίσκου και κατάλογο, και το όνοµα του αρχείου που θέλουµε να ανοίξουµε. Αν το αρχείο δεν υπάρχει, θα δηµιουργηθεί ως κενό σε µια από τις λειτουργίες Append, Binary, Output ή Random. Visual Basic (µέρος 3 ο ) 11

Αν ήδη υπάρχει και το ανοίξουµε σε λειτουργία Output, τότε θα διαγραφεί το παλιό αρχείο και θα δηµιουργηθεί ένα καινούργιο µε το ίδιο όνοµα, ενώ αν ήδη υπάρχει και το ανοίξουµε σε λειτουργία Append, τότε θα παραµείνει το παλιό αρχείο και οι καινούργιες εγγραφές θα προστεθούν στο τέλος του αρχείου. Το Mode ορίζει τη λειτουργία για την οποία θα ανοίξουµε το αρχείο. Για σειριακή (ακολουθιακή) προσπέλαση, µπορούµε να ορίσουµε Append (για προσθήκη δεδοµένων) ή Input (µόνο για διάβασµα από το αρχείο) ή Output (για δηµιουργία καινούργιου αρχείου για καταχώρηση στοιχείων). Για να ανοίξουµε ένα αρχείο σε λειτουργία Binary (δυαδικό) ή Random (τυχαίας προσπέλασης), χρησιµοποιούµε την αντίστοιχη λέξη. Το FileNumber πρέπει να είναι ένας έγκυρος ακέραιος αριθµός αρχείου, µε δυνατές τιµές µεταξύ 1 και 511. Το RecLength είναι ένας αριθµός <=32767 και καθορίζει το συνολικό µήκος της εγγραφής αλλά µόνο αν πρόκειται για τα αρχεία τυχαίας προσπέλασης. Τέλος για να κλείσουµε ένα αρχείο, χρησιµοποιούµε την εντολή Close : Close FileName Το FileName είναι προαιρετικό. Αν το παραλείψουµε και χρησιµοποιήσουµε την εντολή Close χωρίς όρισµα, θα κλείσουν όλα τα ενεργά (ανοικτά) αρχεία. Με την εντολή Close τερµατίζει ο συσχετισµός ενός αρχείου µε τον αριθµό που του είχε αποδοθεί και απελευθερώνεται όλη η µνήµη που του είχε εκχωρηθεί. Visual Basic (µέρος 3 ο ) 12

Σειριακά Αρχεία Σ' ένα αρχείο που ανοίγει για σειριακή ή ακολουθιακή προσπέλαση, µπορούµε να κάνουµε εισαγωγή (διάβασµα) και εξαγωγή (γράψιµο) µε τις εντολές Line Input # και Print # αντίστοιχα, αλλά όχι και τις δύο λειτουργίες ταυτόχρονα. Με την εντολή Line Input # διαβάζουµε µια ολόκληρη γραµµή αρχείου και την καταχωρούµε σε µια µεταβλητή συµβολοσειράς, ενώ µε την εντολή Print # γράφουµε τα περιεχόµενα µιας µεταβλητής σε µια γραµµή του αρχείου. Η σειριακή προσπέλαση χρησιµοποιείται όταν έχουµε να κάνουµε µε αρχεία που αποτελούνται από γραµµές (εγγραφές) µεταβλητού µεγέθους, όπως είναι για παράδειγµα τα αρχεία κειµένου. Τα σειριακά αρχεία έχουν το µειονέκτηµα ότι για να µπορέσουµε να διαβάσουµε µια εγγραφή, θα πρέπει να διατρέξουµε όλες τις προηγούµενες εγγραφές του αρχείου, αλλά έχουν και το πλεονέκτηµα ότι καταλαµβάνουν λιγότερο χώρο στον δίσκο από τα αρχεία τυχαίας προσπέλασης, στα οποία, όµως, η αναζήτηση στοιχείων είναι πολύ πιο γρήγορη. Ακόµη, σ' ένα σειριακό αρχείο, δεν µπορούµε να διαβάσουµε και να γράψουµε ταυτόχρονα, αλλά πρέπει πρώτα να γράψουµε, µετά να το κλείσουµε, για να µπορέσουµε να διαβάσουµε κοκ. Η εντολή Line Input # διαβάζει µια ολόκληρη γραµµή από ένα ανοικτό αρχείο σειριακής προσπέλασης, το οποίο έχει ανοιχθεί µε την επιλογή Input, και καταχωρεί τα περιεχόµενα της γραµµής σε µια µεταβλητή συµβολοσειράς (string). Η σύνταξή της είναι ως εξής : Line Input #FileNumber, ivarname όπου το FileNumber είναι ο αριθµός του αρχείου από το οποίο θα διαβάσουµε και το ivarname είναι η µεταβλητή συµβολοσειράς στην οποία θα καταχωρηθεί αυτό που θα διαβάσουµε. Η εντολή θα διαβάσει ότι βρει µέχρις ότου συναντήσει έναν χαρακτήρα Visual Basic (µέρος 3 ο ) 13

επαναφοράς (enter, Chr(13)) ή επαναφοράς-τροφοδότησης γραµµής (Chr(13)+Chr(10)). Παράδειγµα : ifilenumber = 1 'απόδοση τιµής στη µεταβλητή αριθµού αρχείου. Open "C:\Data01.dat" for Input As #ifilenumber 'άνοιγµα του σειριακού αρχείου Data1.dat µόνο για διάβασµα (ανάγνωση). For i=1 To 10 Line Input #ifilenumber, istringline$ Print istringline$ Next Close #ifilenumber 'διάβασµα και εµφάνιση των περιεχοµένων των 10 πρώτων γραµµών του αρχείου. 'κλείσιµο του αρχείου Η εντολή Print # γράφει (καταχωρεί) δεδοµένα σ' ένα ανοικτό αρχείο σειριακής προσπέλασης, το οποίο ανοίχθηκε µε µια από τις επιλογές Output ή Append, για µία γραµµή κάθε φορά που την χρησιµοποιούµε. Η σύνταξή της είναι ως εξής : Print #FileNumber, OutputList όπου το FileNumber είναι ο αριθµός του αρχείου στο οποίο θα γράψουµε π.χ. FileNumber = 1 και το OutputList είναι µια µεταβλητή συµβολοσειράς ή αριθµητική παράσταση που θα καταχωρηθεί στο αρχείο OutputList = Nikos Αν παραλείψουµε το OutputList, αλλά γράψουµε το κόµµα (,) µετά το FileNumber, θα γραφεί µια κενή γραµµή στο αρχείο. Ακολουθεί ένα παράδειγµα : ifilenumber = 1 'απόδοση τιµής στη µεταβλητή αριθµού αρχείου Open "C:\Data01.dat" for Output As #ifilenumber 'άνοιγµα του σειριακού αρχείου Data01.dat µόνο για γράψιµο (καταχώρηση) και διαγραφή του παλιού αρχείου, αν τυχόν υπήρχε Visual Basic (µέρος 3 ο ) 14

For i=1 To 10 Print #ifilenumber, istringline$ Next Close #ifilenumber 'γράψιµο 10 γραµµών (εγγραφών) στο αρχείο 'κλείσιµο του αρχείου Αρχεία Τυχαίας Προσπέλασης Στα αρχεία τυχαίας προσπέλασης (random files) τα δεδοµένα είναι αποθηκευµένα σε εγγραφές σταθερού µήκους, τις οποίες µπορούµε να προσπελάσουµε απευθείας και µε τυχαία σειρά, χωρίς να χρειασθεί να διαβάσουµε όλες τις προηγούµενες εγγραφές, όπως συµβαίνει µε τα σειριακά αρχεία. Με την εντολή Put # καταχωρούµε µια εγγραφή σ' ένα αρχείο τυχαίας προσπέλασης, ενώ µε την εντολή Get # διαβάζουµε µια εγγραφή. Ένα αρχείο τυχαίας προσπέλασης είναι οργανωµένο σε εγγραφές (records) και πεδία (fields). Στα αρχεία τυχαίας προσπέλασης διαβάζουµε και να γράφουµε ταυτόχρονα, χωρίς να πρέπει να κλείσουµε πρώτα το αρχείο, όπως συµβαίνει µε τα σειριακά αρχεία. Η εντολής Put # συντάσσεται ως εξής : Put # FileNumber, RecNumber, VarName όπου το FileNumber είναι ο αριθµός του αρχείου στο οποίο θα γράψουµε, το RecNumber είναι ο αριθµός της εγγραφής και το VarNumber είναι το όνοµα της µεταβλητής τύπου εγγραφής που περιέχει τα δεδοµένα που θέλουµε να γραφούν στο αρχείο. Η σύνταξη της εντολής Get # είναι ως εξής : Get # FileNumber, RecNumber, VarName όπου το FileNumber είναι ο αριθµός του αρχείου από το οποίο θα διαβάσουµε, το RecNumber είναι ο αριθµός της εγγραφής και το Visual Basic (µέρος 3 ο ) 15

VarNumber είναι το όνοµα της µεταβλητής τύπου εγγραφής στην οποία θα καταχωρηθούν τα δεδοµένα της αντίστοιχης εγγραφής του αρχείου. Παράδειγµα : Type ClientRecord Name As String * 20 Address As String * 20 Phone As String * 10 End Type Dim CurrentRecord As ClientRecord Open "C:\File01.dat" for Random As #10 Len=100 'άνοιγµα του αρχείου τυχαίας προσπέλασης File01.dat στη θέση 10 RecNumber = 1 'ξεκινάµε από την πρώτη εγγραφή Do While RecNumber < 100... CurrentRecord.Name = "Ισµίρογλου Ροβινσών" CurrentRecord.Address = "Λεωφ.Ψαχνών 50" CurrentRecord.Phone = "2221012345"... RecNumber = RecNumber + 1 Put #10, RecNumber, CurrentRecord 'καταχώρηση ολόκληρης της εγγραφής στο αρχείο... Get #10, RecNumber, CurrentRecord 'διάβασµα ολόκληρης της εγγραφής του αρχείου σε µια µεταβλητή New_Name = CurrentRecord.Name New_Address = CurrentRecord.Address New_Phone = CurrentRecord.Phone RecNumber = RecNumber + 1... Loop Close #10 'κλείσιµο του αρχείου Visual Basic (µέρος 3 ο ) 16