Νέες λειτουργίες για εργασία με χορδές. Νέες λειτουργίες για εργασία με συμβολοσειρές Τιμή στη συμβολοσειρά 1c

24.07.2023

Οι βασικές δυνατότητες μιας γλώσσας προγραμματισμού συνήθως περιλαμβάνουν την εργασία με αριθμούς και συμβολοσειρές. Συνήθως, αυτές οι δυνατότητες κωδικοποιούνται στον κώδικα του μεταγλωττιστή (ή υλοποιούνται οι «βασικές» κλάσεις της γλώσσας προγραμματισμού).

Στο 1C, η δυνατότητα εργασίας με χορδές προγραμματίζεται στην ίδια την πλατφόρμα. Σήμερα θα εξετάσουμε τα χαρακτηριστικά της εργασίας με συμβολοσειρές 1C σε προγράμματα στην ενσωματωμένη γλώσσα 1C.

Τιμή γραμμής 1C

1. Ας ξεκινήσουμε με το πιο απλό. Η δημιουργία μιας μεταβλητής και η αντιστοίχιση μιας σταθερής τιμής συμβολοσειράς σε αυτήν μοιάζει με αυτό στο 1C:

Μεταβλητή = "Γεια, κόσμο!";

Εάν πρέπει να καθορίσετε έναν χαρακτήρα εισαγωγικού σε μια σταθερή τιμή συμβολοσειράς 1C, τότε πρέπει να τον διπλασιώσετε ""

Μεταβλητή = "Γεια, κόσμο"!;

2. Η αλλαγή γραμμής 1C μπορεί να καθοριστεί με δύο τρόπους ταυτόχρονα. Το πρώτο χρησιμοποιεί το σύμβολο |

Μεταβλητή = "Γεια σας,
| κόσμος! ";

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

Μεταβλητή = "Hello" + Symbols.PS + "peace!";

3. Οι διαμορφώσεις στο 1C μπορούν να αναπτυχθούν όχι μόνο για μία γλώσσα (ρωσικά, αγγλικά ή άλλη) - αλλά ταυτόχρονα για πολλές γλώσσες. Σε αυτήν την περίπτωση, η γλώσσα που χρησιμοποιείται αυτήν τη στιγμή επιλέγεται στο κάτω μέρος του παραθύρου 1C.

Η λίστα των γλωσσών βρίσκεται στο παράθυρο διαμόρφωσης στον κλάδο General/Languages. Κάθε γλώσσα έχει ένα σύντομο αναγνωριστικό όπως ruή eng.

Είναι σαφές ότι κατά τον προγραμματισμό μιας τέτοιας διαμόρφωσης, οι γραμμές 1C μπορούν επίσης να είναι πολύγλωσσες. Για να γίνει αυτό, είναι δυνατό να δημιουργηθεί μια τέτοια γραμμή 1C καθορίζοντας μέσω; επιλογές ανά αναγνωριστικό γλώσσας:

Variable = "ru=""Γεια, κόσμο! ""; en=""Γεια σου, κόσμο! """;

Εάν χρησιμοποιείτε τη γραμμή 1C που σχηματίζεται με αυτόν τον τρόπο ως συνήθως, τότε θα είναι αυτό που γράφεται σε αυτήν. Για να το χωρίσει το σύστημα σε δύο επιλογές και να χρησιμοποιήσει την επιθυμητή, πρέπει να χρησιμοποιήσετε τη συνάρτηση НStr():

//correct για δίγλωσσες διαμορφώσεις
Αναφορά(NStr(Μεταβλητή));

Στηρίγματα με γραμμή τύπου 1C

Το χαρακτηριστικό είναι ένα πεδίο στον κατάλογο/έγγραφο 1C. Διαφέρει από μια μεταβλητή σε ένα πρόγραμμα στη γλώσσα 1C στο ότι για το χαρακτηριστικό υποδεικνύεται επακριβώς ο τύπος της (αριθμός, συμβολοσειρά 1C, κ.λπ.). Εάν θέλετε να ανανεώσετε τη μνήμη σας για το τι είναι ένα στήριγμα, παρακολουθήστε το μάθημα.

Εάν καθορίσετε τον τύπο του χαρακτηριστικού - γραμμή 1C, τότε πρέπει να καθορίσετε επιπλέον τις παραμέτρους.

Οι γραμμές 1C έχουν απεριόριστο μήκος (υποδεικνύεται ως μήκος = 0) και περιορισμένο μήκος, υποδεικνύοντας τον ακριβή αριθμό χαρακτήρων. Οι γραμμές 1C απεριόριστου μήκους αποθηκεύονται σε ξεχωριστό πίνακας SQL, επομένως η χρήση τους είναι λιγότερο παραγωγική παρά περιορισμένη.

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

Εργασία με χορδές 1C

Υπάρχουν πολλές ενσωματωμένες λειτουργίες της πλατφόρμας 1C για εργασία με χορδές.

  • AbbrLP ("Απίστευτο, αλλά αληθινό!")
    Αφαιρείται από τη γραμμή 1C επιπλέον χώρους. Μπορεί επίσης να χρησιμοποιηθεί για τη μετατροπή οποιουδήποτε τύπου σε συμβολοσειρά 1C (για παράδειγμα, αριθμοί).
  • Μεταβλητή = "Vasya" + AbbrLP(" συν") + "Olya"; //θα υπάρξει "Vasya plus Olya"
    Ένα παράδειγμα άθροισης πολλών τιμών συμβολοσειράς 1C. Το αποτέλεσμα θα είναι μία γραμμή 1C.
  • Μεταβλητή = Lev("Music", 2); //θα είναι "Mu"
    Μεταβλητή = Μέσο ("Μουσική", 2, 2); //θα υπάρξει "απειλή"
    Μεταβλητή = Δικαιώματα ("Μουσική", 2); //θα υπάρχει "ka"
    Διάφορες επιλογές για τη λήψη μιας υποσυμβολοσειράς από μια συμβολοσειρά 1C.
  • Variable = Find("Music", "zy"); //θα υπάρξουν 3
    Αναζητήστε μια υποσυμβολοσειρά στη συμβολοσειρά 1C, ξεκινώντας με τον χαρακτήρα 1.
  • Μεταβλητή = StrLength ("Μουσική"); //θα υπάρξουν 6
    Επιστρέφει τον αριθμό των χαρακτήρων στη γραμμή 1C.
  • Αναφορά ("Hello") //στο παράθυρο μηνύματος στο κάτω μέρος του παραθύρου 1C
    Ειδοποίηση ("Hello") //αναδυόμενο παράθυρο διαλόγου
    Status("Hello") //στη γραμμή εμφάνισης κατάστασης κάτω αριστερά
    .

Φέρνοντας αντικείμενα στη γραμμή 1C

Όπως γνωρίζετε, η πιο δημοφιλής μορφή για την ανταλλαγή δομημένων πληροφοριών επί του παρόντος είναι η XML. Ακόμη και τελευταία έκδοση MS Office Wordκαι το Excel αποθηκεύουν αρχεία σε αυτήν τη μορφή (docx και xlsx, αντίστοιχα, αλλάζουν την επέκταση σε zip, ανοίγουν σε αρχειοθέτηση).

Η πλατφόρμα 1C για ανταλλαγή δεδομένων παρέχει πολλές επιλογές, η κύρια από τις οποίες είναι επίσης η XML.

1. Η απλούστερη μέθοδος είναι να χρησιμοποιήσετε τη συνάρτηση Abbreviation() ή String(). Μπορείτε να χρησιμοποιήσετε τη συνάρτηση REPRESENTATION() στο σώμα αιτήματος. Το αποτέλεσμα της δράσης τους είναι το ίδιο - δημιουργούν μια αναπαράσταση συμβολοσειράς οποιουδήποτε αντικειμένου 1C για τον χρήστη.

Για έναν κατάλογο, από προεπιλογή αυτό θα είναι το όνομά του. Για ένα έγγραφο – όνομα εγγράφου, αριθμός και ημερομηνία.

2. Οποιοδήποτε αντικείμενο 1C (με περιορισμούς) μπορεί να μετατραπεί σε XML και αντίστροφα. Η διαδικασία μετατροπής ονομάζεται σειριοποίηση.

StringViewXml = XMLString(Τιμή); //λήψη XML από τιμή 1C
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); //λάβετε την τιμή 1C από τη συμβολοσειρά XML, πρέπει να καθορίσετε τον τύπο 1C που πρέπει να ληφθεί

3. Υπάρχει ο τρόπος της πλατφόρμας 1C να μετατρέψει οποιοδήποτε αντικείμενο 1C σε συμβολοσειρά. Έγινε μετεγκατάσταση από την έκδοση 1C 7.7. Αυτή η μορφή δεν είναι κατανοητή από άλλα προγράμματα, αλλά η άλλη 1C την κατανοεί, γεγονός που καθιστά εύκολη τη χρήση της για ανταλλαγή μεταξύ βάσεων δεδομένων 1C.

Σειρά = ValueInRowInt(Value1C); //λήψη συμβολοσειράς 1C από την τιμή 1C
ValueVFile("C:\MyFile.txt", Value1C); //μια άλλη επιλογή, λαμβάνουμε ένα αρχείο με μια αποθηκευμένη συμβολοσειρά από την τιμή 1C
Value1C = ValueFromStringInt(String); //πίσω από τη γραμμή 1C
Value1C = ValueFile("C:\MyFile.txt"); //επιστροφή από το αρχείο

Επεξεργασία γραμμών 1C στη φόρμα

Εκτός από την εργασία με συμβολοσειρές 1C σε ένα πρόγραμμα στη γλώσσα 1C, φυσικά θα ήθελα ο χρήστης να μπορεί να τις επεξεργαστεί. Υπάρχουν πολλές δυνατότητες για αυτό:

1. Ο ευκολότερος τρόπος είναι να ζητήσετε την είσοδο μιας γραμμής 1C κατ' απαίτηση. Αυτή η μέθοδος χρησιμοποιείται κατά τη διδασκαλία του προγραμματισμού 1C στη ζωή χρησιμοποιείται πολύ λιγότερο συχνά (αλλά χρησιμοποιείται!).

Μεταβλητή = "";
Σειρά = EnterValue(Μεταβλητή, "Εισαγάγετε πλήρες όνομα");

2. Για να εμφανίσετε τις λεπτομέρειες ενός αντικειμένου 1C (κατάλογος/έγγραφο) ή λεπτομέρειες φόρμας (βλ.), χρησιμοποιείται πιο συχνά ένα πεδίο εισαγωγής. Αυτό είναι το πιο συνηθισμένο εργαλείο στο 1C για να δουλεύει ο χρήστης με πεδία επεξεργασίας.

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

  • Πλαίσιο ελέγχου Λειτουργία επεξεργασίας πολλαπλών γραμμών
  • Πλαίσιο ελέγχου Σύνθετη επεξεργασία (διαθέσιμο εάν είναι επιλεγμένο το προηγούμενο πλαίσιο ελέγχου)
  • Πλαίσιο ελέγχου Λειτουργία κωδικού πρόσβασης (βλ.).

4. Εάν όλες οι δυνατότητες του πεδίου εισαγωγής δεν είναι αρκετές για εσάς, υπάρχει ενσωματωμένος επεξεργαστής. Για να το προσθέσετε στη φόρμα, πρέπει να προσθέσετε Πεδίο στο μενού ελέγχου Φόρμα/Εισαγωγή έγγραφο κειμένου. Στις ιδιότητες του μπορείτε να καθορίσετε τον τρόπο λειτουργίας του – την ιδιότητα Επέκταση.

Ένα πεδίο εγγράφου κειμένου δεν μπορεί να συσχετιστεί απευθείας με δεδομένα. Είναι απαραίτητο να γράψετε μια συνάρτηση στον χειριστή συμβάντων OnOpen() της φόρμας (δείτε):

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //here ValueString είναι το κείμενο που λαμβάνεται, για παράδειγμα, από το χαρακτηριστικό

Και στον χειριστή αποθήκευσης - για παράδειγμα, στο κουμπί Αποθήκευση - προσθέστε μια αποθήκευση:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueΗ γραμμή εδώ είναι το χαρακτηριστικό όπου αποθηκεύουμε την τιμή

5. Στην έκδοση 8.2.11 1C, σε ελεγχόμενες μορφές, εμφανίστηκε νέα ευκαιρίαΑναπαράσταση γραμμής 1C – Μορφοποιημένο πεδίο εγγράφου.


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

  • Στο αντικείμενο 1C του οποίου τη μορφή δημιουργούμε (κατάλογος, έγγραφο, επεξεργασία κ.λπ.) - προσθέστε ένα χαρακτηριστικό με τον τύπο αποθήκευσης τιμής
  • Στη συνάρτηση OnReadOnServer() ορίζουμε το κείμενο από το χαρακτηριστικό

    //εδώ το χαρακτηριστικό είναι το προστιθέμενο χαρακτηριστικό του αντικειμένου 1C
    //here FormattedDocument είναι το όνομα του πεδίου στη φόρμα για επεξεργασία
    &Στον διακομιστή

    FormattedDocument = CurrentObject.Attributes.Get();
    Τέλος Διαδικασίας

  • Στη συνάρτηση BeforeWritingOnServer() ή χρησιμοποιώντας το κουμπί, θα γράψουμε το κείμενο από το πεδίο

    &Στον διακομιστή
    Διαδικασία κατά την ανάγνωση στον διακομιστή (Τρέχον αντικείμενο)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Τέλος Διαδικασίας

Ο τύπος String βρίσκεται σε όλες τις γλώσσες προγραμματισμού. Είναι πρωτόγονο και στο 1C υπάρχουν πολλές λειτουργίες για να δουλέψετε μαζί του. Σε αυτό το άρθρο θα ρίξουμε μια πιο προσεκτική ματιά διάφορους τρόπουςεργασία με τύπους συμβολοσειρών στο 1C 8.3 και 8.2 χρησιμοποιώντας παραδείγματα.

Γραμμή

Για να μετατρέψετε μια μεταβλητή οποιουδήποτε τύπου σε συμβολοσειρά, υπάρχει μια συνάρτηση με το ίδιο όνομα "String()". Η παράμετρος εισόδου θα είναι η ίδια η μεταβλητή, η παράσταση συμβολοσειράς της οποίας πρέπει να ληφθεί.

String(False) // επιστρέφει "Όχι"
Το String(12345) // επιστρέφει "12.345"
String(Τρέχουσα Ημερομηνία()) //"07/21/2017 11:55:36″

Είναι δυνατή η μετατροπή όχι μόνο πρωτόγονων τύπων σε συμβολοσειρά, αλλά και άλλων, για παράδειγμα, στοιχείων καταλόγων και εγγράφων.

SokrLP, SokrL, SokrP

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

Συντομογραφία (" Τα κενά θα αφαιρεθούν και στις δύο πλευρές ") // "Τα κενά θα αφαιρεθούν και στις δύο πλευρές"
Συντομογραφία (" Τα κενά και στις δύο πλευρές θα αφαιρεθούν ") // " Τα κενά στα αριστερά θα αφαιρεθούν "
Συντομογραφία (" Τα κενά και στις δύο πλευρές θα αφαιρεθούν ") // " Τα κενά στα δεξιά θα αφαιρεθούν"

Λέων, Δεξιά, Μεσαίο

Αυτές οι λειτουργίες σάς επιτρέπουν να κόψετε μέρος μιας συμβολοσειράς. Η συνάρτηση "Left()" θα επιστρέψει το τμήμα μιας συμβολοσειράς από την αριστερή πλευρά του καθορισμένου μήκους. Η συνάρτηση "Right()" είναι παρόμοια, αλλά γίνεται περικοπή από τα δεξιά. Η συνάρτηση "Avg()" σάς επιτρέπει να καθορίσετε τον αριθμό του χαρακτήρα από τον οποίο θα επιλεγεί η γραμμή και το μήκος της.

Lev("String variable", 4) // επιστρέφει "Str"
Right("String variable", 7) // επιστρέφει "variable"
Medium("String variable", 2, 5) // επιστρέφει "troco"

StrLength

Η συνάρτηση καθορίζει τον αριθμό των χαρακτήρων που περιέχονται σε μια μεταβλητή συμβολοσειράς.

StrLength("Word") // το αποτέλεσμα της εκτέλεσης θα είναι ο αριθμός 5

Εύρημα

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

Λάβετε υπόψη ότι η αναζήτηση γίνεται με διάκριση πεζών-κεφαλαίων. Εάν υπάρχουν περισσότερες από μία εμφανίσεις της υποσυμβολοσειράς αναζήτησης στην αρχική συμβολοσειρά, η συνάρτηση θα επιστρέψει την αρχή της πρώτης εμφάνισης.

Εύρεση ("ένα, δύο, ένα, δύο, τρία", "δύο") // η συνάρτηση θα επιστρέψει τον αριθμό 6

EmptyString

Η χρήση αυτής της συνάρτησης σάς επιτρέπει να προσδιορίσετε εάν μια συμβολοσειρά είναι κενή. Οι δευτερεύοντες χαρακτήρες, όπως το διάστημα, η επιστροφή και άλλοι δεν λαμβάνονται υπόψη.

Η συνάρτηση EmptyString("Pupkin Vasily Ivanovich") // θα επιστρέψει την τιμή False
Η συνάρτηση EmptyString(" ") // θα επιστρέψει την τιμή True

VReg, NReg, Treg

Αυτές οι συναρτήσεις είναι πολύ χρήσιμες κατά τη σύγκριση και τη μετατροπή μεταβλητών συμβολοσειρών. Το "Vreg()" θα επιστρέψει την αρχική συμβολοσειρά με κεφαλαία, το "HPreg()" με πεζά και το "Treg()" θα το μορφοποιήσει έτσι ώστε ο πρώτος χαρακτήρας κάθε μεμονωμένης λέξης να γράφεται με κεφαλαία και όλοι οι επόμενοι χαρακτήρες να γράφονται με κεφαλαία.

Vreg("ΓΕΝΙΚΟΣ ΔΙΕΥΘΥΝΤΗΣ") // τιμή επιστροφής - "ΓΕΝΙΚΟΣ ΔΙΕΥΘΥΝΤΗΣ"
NReg ("CEO DIRECTOR") // τιμή επιστροφής - "CEO"
TREG ("CEO DIRECTOR") // τιμή επιστροφής - "Γενικός Διευθυντής"

Αντικατάσταση σελίδας

Αυτή η λειτουργία είναι ανάλογη με την αντικατάσταση σε συντάκτες κειμένου. Σας επιτρέπει να αντικαταστήσετε έναν χαρακτήρα ή σύνολο χαρακτήρων με ένα άλλο σε μεταβλητές συμβολοσειράς.

StrReplace("κόκκινο, λευκό, κίτρινο", ","", ";") // επιστρέφει "κόκκινο; λευκό; κίτρινος"

StrNumberLines

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

Ο βρόχος στο παρακάτω παράδειγμα θα περάσει από τρεις γύρους επειδή η συνάρτηση LineNumberRow θα επιστρέψει την τιμή 3:

Για ind = 1 κατά StrNumber of Strings("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") Κύκλος
<тело цикла>
EndCycle;

StrGetString

Αυτή η συνάρτηση λειτουργεί με κείμενο πολλών γραμμών με τον ίδιο τρόπο όπως η προηγούμενη. Σας επιτρέπει να λαμβάνετε μια συγκεκριμένη συμβολοσειρά από μια μεταβλητή κειμένου.

StrGetString("String1" + Characters.PS + "String2" + Characters.PS + "String3", 2) // επιστροφή "String2"

ΣελίδαΑριθμόςΕκδηλώσεις

Η συνάρτηση μετράει τον αριθμό των εμφανίσεων ενός χαρακτήρα ή υποσυμβολοσειράς στη συμβολοσειρά αναζήτησης.

Η συνάρτηση StrNumberAttachments("a;b;c;d; ", ";") // θα επιστρέψει τον αριθμό 4

Σύμβολο και κωδικός συμβόλου

Αυτές οι λειτουργίες σάς επιτρέπουν να αποκτήσετε έναν χαρακτήρα από τον κωδικό του στην κωδικοποίηση Unicode, καθώς και να προσδιορίσετε αυτόν τον κωδικό από τον ίδιο τον χαρακτήρα.

Η συνάρτηση SymbolCode("A") // θα επιστρέψει τον αριθμό 1.040
Η συνάρτηση CharacterCode(1040) // θα επιστρέψει "A"

Συνήθεις εργασίες κατά την εργασία με χορδές

Συνδεόμενες χορδές

Για να συνδυάσετε πολλές χορδές (για να πραγματοποιήσετε συνένωση), αρκεί να χρησιμοποιήσετε τον τελεστή πρόσθεσης.

"Γραμμή 1″ + "Γραμμή 2" //το αποτέλεσμα της προσθήκης δύο γραμμών θα είναι "Γραμμή 1 Γραμμή 2"

Μετατροπή τύπου

Για να μετατρέψετε έναν τύπο σε συμβολοσειρά, για παράδειγμα, έναν σύνδεσμο προς ένα στοιχείο καταλόγου, έναν αριθμό κ.λπ., αρκεί να χρησιμοποιήσετε τη συνάρτηση "String()". Συναρτήσεις όπως η "ScrLP()" θα μετατρέψουν επίσης τις μεταβλητές σε μια συμβολοσειρά, αλλά αμέσως με αποκοπή ασήμαντων χαρακτήρων.

Το String(1000) // επιστρέφει "1.000"

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

StrReplace(String(1000),Characters.NPP,"") // επιστρέφει "1000"

String(Format(1000,"HG=")) // επιστρέφει "1000"

Εισαγωγικά σε μια συμβολοσειρά

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

Header = String("Horns and Hooves LLC - that's us!") // θα επιστρέψει "Horns and Hooves LLC - that's us!"

Πολλαπλή γραμμή, αλλαγή γραμμής

Για να δημιουργήσετε κείμενο πολλών γραμμών, απλώς προσθέστε αλλαγές γραμμής (Symbols.PS) σε αυτό.

MultilineText = "First Line" + Symbols.PS + "Second Line"

Πώς να αφαιρέσετε κενά

Για να αφαιρέσετε κενά στα δεξιά ή στα αριστερά, μπορείτε να χρησιμοποιήσετε τη συνάρτηση "ScrAP()" (καθώς και "ScrL()" και "ScrP()"):

StringNoSpaces = Συντομογραφία (" Πολλά γράμματα ") // η συνάρτηση θα επιστρέψει την τιμή "Πολλά γράμματα"

Εάν, μετά τη μετατροπή ενός αριθμού σε συμβολοσειρά, πρέπει να αφαιρέσετε κενά που δεν διακόπτουν, χρησιμοποιήστε την ακόλουθη κατασκευή:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // επιστρέφει "99999"

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

StringNoSpaces = StrReplace("hello","") // επιστρέφει "γεια"

Σύγκριση χορδών μεταξύ τους

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

"Hello" = "γεια" // επιστρέφει False
"Hello" = "Hello" // επιστρέφει True
"Hello" = "Αντίο" // θα επιστρέψει False

Σημειώσεις από το Through the Looking Glass

18/08/2014 Νέες λειτουργίες για εργασία με χορδές

Υλοποιήθηκε στην έκδοση 8.3.6.1977.

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

Θα μπορούσατε να εκτελέσετε όλες τις ενέργειες που εκτελούν νέες λειτουργίες πριν. Χρησιμοποιώντας περισσότερο ή λιγότερο πολύπλοκους αλγόριθμους γραμμένους σε μια ενσωματωμένη γλώσσα. Επομένως, οι νέες λειτουργίες δεν σας δίνουν ουσιαστικά νέες δυνατότητες. Ωστόσο, σας επιτρέπουν να μειώσετε την ποσότητα του κώδικα και να κάνετε τον κώδικα απλούστερο και πιο κατανοητό. Επιπλέον, σας επιτρέπουν να επιταχύνετε την εκτέλεση των ενεργειών. Επειδή οι λειτουργίες που υλοποιούνται στην πλατφόρμα λειτουργούν, φυσικά, πιο γρήγορα από έναν παρόμοιο αλγόριθμο γραμμένο σε μια ενσωματωμένη γλώσσα.

Συνάρτηση μορφοποίησης StrTemplate()

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

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>- αυτή είναι η συμβολοσειρά στην οποία πρέπει να αντικαταστήσετε τις παραμέτρους.

<Значение1> , ... <Значение10>- αυτές είναι παράμετροι (το πολύ δέκα), οι αναπαραστάσεις των οποίων πρέπει να αντικατασταθούν στη συμβολοσειρά.

Για να υποδείξετε μια συγκεκριμένη θέση στο πρότυπο όπου θέλετε να πραγματοποιήσετε την αντικατάσταση, πρέπει να χρησιμοποιήσετε δείκτες όπως %1, ... %10. Ο αριθμός των δεικτών που εμπλέκονται στο πρότυπο και ο αριθμός των παραμέτρων που περιέχουν τιμές πρέπει να ταιριάζει.

Για παράδειγμα, το αποτέλεσμα της εκτέλεσης ενός τέτοιου τελεστή:

θα υπάρχει μια γραμμή:

Σφάλμα δεδομένων στη γραμμή 2 (απαιτείται τύπος ημερομηνίας)

Λειτουργία για εργασία με συμβολοσειρές StrCompare()

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

Θα μπορούσατε να εκτελέσετε την ίδια ενέργεια νωρίτερα χρησιμοποιώντας το αντικείμενο Σύγκριση Αξιών:

Ωστόσο, η χρήση της νέας δυνατότητας φαίνεται πιο εύκολη. Και εκτός από αυτό, μια συνάρτηση, σε αντίθεση με ένα αντικείμενο Σύγκριση Αξιών, λειτουργεί σε thin clientκαι στο πρόγραμμα-πελάτη Ιστού.

Λειτουργίες για εργασία με συμβολοσειρές StrStartsWith(), StrEndsAt()

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

Για παράδειγμα, είναι βολικό να τα χρησιμοποιείτε στον χειριστή Αν:

Λειτουργίες για εργασία με συμβολοσειρές StrDivide(), StrConnect()

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

Λειτουργία για εργασία με συμβολοσειρές StrFind()

Αντί για την παλιά λειτουργία Εύρημα()υλοποιήσαμε νέο χαρακτηριστικό, το οποίο διαθέτει επιπλέον χαρακτηριστικά:

  • Αναζήτηση σε διαφορετικές κατευθύνσεις (από την αρχή, από το τέλος).
  • Αναζήτηση από μια καθορισμένη θέση.
  • Εύρεση περιστατικού με καθορισμένο αριθμό(δεύτερο, τρίτο κ.λπ.).

Στην πραγματικότητα, αντιγράφει τις δυνατότητες της παλιάς λειτουργίας. Αυτό γίνεται για να διατηρηθεί η συμβατότητα με ενότητες που έχουν μεταγλωττιστεί σε παλαιότερες εκδόσεις. Παλιά λειτουργία Εύρημα()Συνιστάται να μην χρησιμοποιηθεί ξανά.

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

Υλοποιήθηκε στην έκδοση 8.3.6.1977.

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

Θα μπορούσατε να εκτελέσετε όλες τις ενέργειες που εκτελούν νέες λειτουργίες πριν. Χρησιμοποιώντας περισσότερο ή λιγότερο πολύπλοκους αλγόριθμους γραμμένους σε μια ενσωματωμένη γλώσσα. Επομένως, οι νέες λειτουργίες δεν σας δίνουν ουσιαστικά νέες δυνατότητες. Ωστόσο, σας επιτρέπουν να μειώσετε την ποσότητα του κώδικα και να κάνετε τον κώδικα απλούστερο και πιο κατανοητό. Επιπλέον, σας επιτρέπουν να επιταχύνετε την εκτέλεση των ενεργειών. Επειδή οι λειτουργίες που υλοποιούνται στην πλατφόρμα λειτουργούν, φυσικά, πιο γρήγορα από έναν παρόμοιο αλγόριθμο γραμμένο σε μια ενσωματωμένη γλώσσα.

Συνάρτηση μορφοποίησης StrTemplate()

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

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>- αυτή είναι η συμβολοσειρά στην οποία πρέπει να αντικαταστήσετε τις παραμέτρους.

<Значение1> , ... <Значение10>- αυτές είναι παράμετροι (το πολύ δέκα), οι αναπαραστάσεις των οποίων πρέπει να αντικατασταθούν στη συμβολοσειρά.

Για να υποδείξετε μια συγκεκριμένη θέση στο πρότυπο όπου θέλετε να πραγματοποιήσετε την αντικατάσταση, πρέπει να χρησιμοποιήσετε δείκτες όπως %1, ... %10. Ο αριθμός των δεικτών που εμπλέκονται στο πρότυπο και ο αριθμός των παραμέτρων που περιέχουν τιμές πρέπει να ταιριάζει.

Για παράδειγμα, το αποτέλεσμα της εκτέλεσης ενός τέτοιου τελεστή:

θα υπάρχει μια γραμμή:

Σφάλμα δεδομένων στη γραμμή 2 (απαιτείται τύπος ημερομηνίας)

Λειτουργία για εργασία με συμβολοσειρές StrCompare()

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

Θα μπορούσατε να εκτελέσετε την ίδια ενέργεια νωρίτερα χρησιμοποιώντας το αντικείμενο σύγκρισης τιμών:

Ωστόσο, η χρήση της νέας δυνατότητας φαίνεται πιο εύκολη. Και εκτός από αυτό, η συνάρτηση, σε αντίθεση με το αντικείμενο Σύγκρισης τιμών, λειτουργεί τόσο στον thin client όσο και στον web-πελάτη.

Λειτουργίες για εργασία με συμβολοσειρές StrStartsWith(), StrEndsAt()

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

Για παράδειγμα, είναι βολικό να χρησιμοποιηθούν στη δήλωση If:

Λειτουργίες για εργασία με συμβολοσειρές StrDivide(), StrConnect()

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

Λειτουργία για εργασία με συμβολοσειρές StrFind()

Αντί για την παλιά συνάρτηση Find(), έχουμε εφαρμόσει μια νέα συνάρτηση που έχει πρόσθετες δυνατότητες:

  • Αναζήτηση σε διαφορετικές κατευθύνσεις (από την αρχή, από το τέλος).
  • Αναζήτηση από μια καθορισμένη θέση.
  • Αναζήτηση για ένα περιστατικό με έναν καθορισμένο αριθμό (δεύτερο, τρίτο, κ.λπ.).

Στην πραγματικότητα, αντιγράφει τις δυνατότητες της παλιάς λειτουργίας. Αυτό γίνεται για να διατηρηθεί η συμβατότητα με ενότητες που έχουν μεταγλωττιστεί σε παλαιότερες εκδόσεις. Συνιστάται να μην χρησιμοποιείτε πλέον την παλιά συνάρτηση Find().

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