Πρόταση ReDim

Δηλώνει ή ξαναορίζει μεταβλητές ή πίνακες.

Σύνταξη:

Διάγραμμα πρότασης ReDim


ReDim [Preserve] μεταβλητής [(έναρξη έως τέλος)] [ως όνομα τύπου][, μεταβλητή2 [(έναρξη έως τέλος)] [ως όνομα τύπου][,...]]

Προαιρετικά, προσθέστε τη λέξη-κλειδί Preserve για να διατηρήσετε τα περιεχόμενα του πίνακα που επαναπροσδιορίζει τις διαστάσεις. Το ReDim μπορεί να χρησιμοποιηθεί μόνο σε υπορουτίνες.

Παράμετροι:

μεταβλητή: Οποιαδήποτε μεταβλητή ή όνομα πίνακα.

όνομα τύπου: Λέξη-κλειδί που δηλώνει τον τύπο δεδομένων μεταβλητής.

πρωτογενές τμήμα τύπων δεδομένων

Byte (ψηφιολέξη): μεταβλητή ψηφιολέξης (0-255)

Μπουλ: Μεταβλητή Μπουλ (Αληθές, ψευδές)

Νόμισμα: Μεταβλητή νομίσματος (Νόμισμα με 4 δεκαδικά)

Date: Μεταβλητή ημερομηνίας

Διπλό: Μεταβλητή κινητής υποδιαστολής διπλής ακρίβειας (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Ακέραια μεταβλητή (-32768 - 32767)

Long: Ακέραια μεταβλητή μεγάλου μήκους (-2.147.483.648 - 2.147.483.647)

Αντικείμενο: Μεταβλητή αντικειμένου (Σημείωση: αυτή η μεταβλητή μπορεί να οριστεί μόνο μετά με Set!)

Single: Μεταβλητή κινητής υποδιαστολής απλής ακριβείας (3,402823 x 10E38 - 1,401298 x 10E-45).

String: Μεταβλητή συμβολοσειράς που αποτελείται από 64.000 χαρακτήρες ASCII το μέγιστο.

Παραλλαγή: Τύπος μεταβλητής παραλλαγής (περιέχει όλους τους τύπους, καθορίζεται με ορισμό). Εάν ένα όνομα τύπου δεν καθορίζεται, οι μεταβλητές ορίζονται ως τύπος παραλλαγής, εκτός και χρησιμοποιείται πρόταση από DefBool έως DefVar.

αντικείμενο: Αντικείμενο Universal Network object (UNO) ή στιγμιότυπο αντικειμένου ClassModule.

char (χαρακτήρας): Ειδικός χαρακτήρας που δηλώνει τον τύπο δεδομένων μεταβλητής.

Τμήμα χαρακτήρων δήλωσης τύπου

Στη Basic του LibreOffice, δεν χρειάζεται να δηλώσετε ρητά τις μεταβλητές. Όμως, χρειάζεται να δηλώσετε πίνακες πριν να μπορέσετε να τους χρησιμοποιήσετε. Μπορείτε να δηλώσετε μεταβλητή με την πρόταση Dim, χρησιμοποιώντας κόμματα (,) για να ξεχωρίσετε πολλαπλές δηλώσεις. Για να δηλώσετε τύπο μεταβλητής, εισάγετε χαρακτήρα δήλωσης τύπου ακολουθούμενο από το όνομα ή χρησιμοποιήστε αντίστοιχο όνομα λέξης-κλειδιού τύπου.

Declaration character

Variable type name

%

Integer

&

Long

!

Single

#

Double

$

String

@

Currency


πίνακας: Δήλωση πίνακα.

τμήμα πίνακα

έναρξη, τέλος: Αριθμητικές τιμές ή σταθερές που καθορίζουν τον αριθμό των στοιχείων (NumberElements=(end-start)+1) και την περιοχή δείκτη.

έναρξη και τέλος μπορούν να είναι αριθμητικές εκφράσεις εάν εφαρμόζεται ReDim στο επίπεδο διεργασίας.

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

Οι πίνακες δηλώνονται με την πρόταση Dim. Υπάρχουν πολλοί τρόποι ορισμού της περιοχής δείκτη:


  Dim text(20) As String ' 21 στοιχεία αριθμημένα από 0 έως 20
  Dim value(5 to 25) As Integer ' 21 τιμές αριθμημένες από 5 έως 25
  Dim amount(-15 to 5) As Currency ' 21 ποσότητες (συμπεριλαμβανομένου του 0), αριθμημένες από -15 έως 5
  REM Δισδιάστατο πεδίο δεδομένων
  Dim table$(20,2) ' 63 στοιχεία· από ο έως 20 επιπέδου 1, από 0 έως 20 επιπέδου 2 και από ο έως 20 επιπέδου 3.

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

Παράδειγμα:


Sub ExampleRedim
    Dim iVar() As Integer, iCount As Byte
    ReDim iVar(5) As Integer
    For iCount = 1 To 5
        iVar(iCount) = iCount
    Next iCount
    ReDim iVar(10) As Integer
    For iCount = 1 To 10
        iVar(iCount) = iCount
    Next iCount
End Sub

Παρακαλούμε, υποστηρίξτε μας!