Προγραμματισμός με συμβολοσειρές

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Ο τύπος της συμβολοσειράς

Συναρτήσεις για συμβολοσειρές

Στη 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")

Ασκήσεις

Συμβολοσειρές

  1. Να γράψετε ένα πρόγραμμα που να εμφανίζει στατιστικά στοιχεία για το περιεχόμενο του προχείρου. Το πρόγραμμα πρέπει να εμφανίζει τον αριθμό των χαρακτήρων, ψηφίων (0-9), λατινικών πεζών χαρακτήρων (a-z), λατινικών κεφαλαίων χαρακτήρων (A-Z) και ελληνικών αντίστοιχων χαρακτήρων που βρέθηκαν στο πρόχειρο.
  2. Εκτελέστε το πρόγραμμά σας με είσοδο τον εαυτό του και με είσοδο ένα κείμενο από το Microsoft Word.