Προγραμματισμός με συμβολοσειρές
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Ο τύπος της συμβολοσειράς
- Μπορούμε να ορίσουμε μεταβλητές με τύπο
συμβολοσειρά
με τον τύπο string:
Dim Name as String
- Οι μεταβλητές αυτές μπορούν να αποθηκεύσουν μεταβλητό αριθμό από
χαρακτήρες.
- Οι σταθερές τύπου συμβολοσειράς γράφονται με τη χρήση των διπλών εισαγωγικών:
Dim Name as String
Name = "Γιώργος"
- Αν θέλουμε να παραστήσουμε εισαγωγικά σε μια σταθερή συμβολοσειρά τα
γράφουμε με δύο διπλά εισαγωγικά:
Dim Msg as String
Msg = "Πατήστε ""Enter"" για να συνεχίσετε"
Συναρτήσεις για συμβολοσειρές
Στη Visual Basic μπορούμε να χειριστούμε συμβολοσειρές με τη χρήση
διάφορων συναρτήσεων
(έχουμε δει πως μπορούμε να ενώσουμε δύο συμβολοσειρές με τον τελεστή +).
Οι πιο σημαντικές συναρτήσεις είναι οι παρακάτω:
- Len(string)
- Επιστρέφει το μήκος μιας συμβολοσειράς
- Left(string, length)
- Επιστρέφει length χαραρακτήρες από αριστερά
- Right(string, length)
- Επιστρέφει length χαραρακτήρες από δεξιά
- Mid(string, start[, length])
- Επιστρέφει length χαρακτήρες από τη
θέση start (ή όλη τη συμβολοσειρά από τη θέση start και μετά).
- LTrim(string)
- Αφαιρεί κενά στο αριστερό μέρος της συμβολοσειράς
- RTrim(string)
- Αφαιρεί κενά στο δεξί μέρος της συμβολοσειράς
- Trim(string)
- Αφαιρεί κενά αριστερά και δεξιά της συμβολοσειράς
Τέλος, η εντολή
Mid(stringvar, start[, length]) = string
επιστρέπει την αλλαγή ενός μέρους μιας συμβολοσειράς (από τη θέση start
και για length χαρακτήρες) με μια άλλη.
Σύγκριση συμβολοσειρών
Με τον τελεστή Like μπορούμε να συγκρίνουμε αν μια συμβολοσειρά
μοιάζει με ένα συγκεκριμένο πρότυπο.
Τα πρότυπα καθορίζονται με τη χρήση των παρακάτω χαρακτήρων:
- ?
- Ταιριάζει με οποιοδήποτε ένα χαρακτήρα
- *
- Ταιριάζει με μηδέν ή περισσότερους χαρακτήρες
- #
- Ταιριάζει με οποιοδήποτε ψηφίο
- [λίστα]
- Ταιριάζει με οποιοδήποτε χαρακτήρα στη λίστα (π.χ. [aeiyuio])
- [!λίστα]
- Ταιριάζει με οποιοδήποτε χαρακτήρα δεν περιέχεται στη λίστα
Η λίστα μπορεί να περιέχει χαρακτήρες ή μια περιοχή χαρακτήρων με τη σύνταξη
χαρακτήρας-χαρακτήρας (π.χ. [A-Z].
Αν θέλουμε η λίστα να περιέχει το -, τότε αυτό πρέπει να εμφανίζεται πρώτο στη
λίστα.
Παράδειγμα (ο βρόχος ελέγχει αν ο ταχυδρομικός κώδικας είναι γραμμένος σωστά):
Sub main()
Dim PostCode As String
Dim CodeOk As Boolean
Do
PostCode = InputBox("Δώστε ταχυδρομικό κώδικα")
CodeOk = (PostCode Like "##[- ]###" Or PostCode Like "###[- ]##")
If Not CodeOk Then
MsgBox "Λάθος ταχυδρομικός κώδικας, δοκιμάστε ξανά."
End If
Loop Until CodeOk
End Sub
Πρόσβαση στο πρόχειρο
Το πρόχειρο (clipboard) των Windows συχνά περιέχει
κείμενο το οποίο έχουμε αντιγράψει, αποκόψει ή θέλουμε να επικολήσουμε
σε άλλες εφαρμογές.
Μπορούμε να έχουμε πρόσβαση στο πρόχειρο με το
αντικείμενο (object) ClipBoard και τη
μέθοδο (method) GetText ως εξής:
Dim Result as String
Result = Clipbboard.GetText
Αντίστοιχα, μπορούμε να κάνουμε το πρόχειρο να περιέχει μια συμβολοσειρά
με τις μεθόδους Clear και SetText:
Clipboard.Clear
Clipboard.SetText("These are the new clipboard contents")
Ασκήσεις
Συμβολοσειρές
- Να γράψετε ένα πρόγραμμα που να εμφανίζει στατιστικά
στοιχεία για το περιεχόμενο του προχείρου.
Το πρόγραμμα πρέπει να εμφανίζει τον αριθμό των χαρακτήρων,
ψηφίων (0-9), λατινικών πεζών χαρακτήρων (a-z),
λατινικών κεφαλαίων χαρακτήρων (A-Z)
και ελληνικών αντίστοιχων χαρακτήρων που βρέθηκαν στο πρόχειρο.
- Εκτελέστε το πρόγραμμά σας με είσοδο τον εαυτό του και με είσοδο ένα
κείμενο από το Microsoft Word.