Κόβει τη γραμμή μέχρι τον χαρακτήρα 1c. Νέες λειτουργίες για εργασία με χορδές. Συνάρτηση μορφοποίησης StrTemplate()

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

Προσθήκη χορδής

Για να προσθέσετε σειρές σε ένα ερώτημα, χρησιμοποιείται η λειτουργία "+". Μπορείτε να προσθέσετε μόνο χορδές περιορισμένου μήκους.

ΕΠΙΛΕΞΤΕ "Όνομα: " + Αντισυμβαλλόμενοι. Όνομα ΩΣ Στήλη 1 ΑΠΟ τον Κατάλογο. Αντισυμβαλλόμενοι ΩΣ Αντισυμβαλλόμενοι WHERE Αντισυμβαλλόμενοι. Σύνδεσμος = &Σύνδεσμος

Συνάρτηση υποσυμβολοσειράς

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

Ένα ανάλογο της συνάρτησης Environment() από το μοντέλο αντικειμένου. Η συνάρτηση Substring() μπορεί να εφαρμοστεί σε δεδομένα συμβολοσειράς και σας επιτρέπει να επιλέξετε ένα τμήμα <Строки> , ξεκινώντας από τον αριθμό χαρακτήρα <НачальнаяПозиция> (οι χαρακτήρες σε μια γραμμή αριθμούνται ξεκινώντας από το 1) και το μήκος <Длина> χαρακτήρες. Το αποτέλεσμα του υπολογισμού της συνάρτησης έχει τύπο συμβολοσειράς μεταβλητού μήκους και το μήκος θα θεωρείται απεριόριστο εάν <Строка> έχει απεριόριστο μήκος και παράμετρο <Длина> δεν είναι σταθερά ή μεγαλύτερη από 1024.

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

Προσοχή!Η χρήση της συνάρτησης SUBSTRING() για τη μετατροπή συμβολοσειρών απεριόριστου μήκους σε συμβολοσειρές περιορισμένου μήκους δεν συνιστάται. Αντίθετα, είναι καλύτερο να χρησιμοποιήσετε τον τελεστή cast EXPRESS().

Λειτουργία Παρόμοια

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

ΕΠΙΛΕΞΤΕ Αντισυμβαλλόμενους. Όνομα AS Στήλη 1 ΑΠΟ τον Κατάλογο. Αντισυμβαλλόμενοι ΩΣ Αντισυμβαλλόμενοι WHERE Αντισυμβαλλόμενοι. Όνομα = "Gazprom"

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

LIKE — Τελεστής για τον έλεγχο μιας συμβολοσειράς για ομοιότητα με ένα μοτίβο. Αναλογικό του LIKE σε SQL.

Ο τελεστής SIMILAR σάς επιτρέπει να συγκρίνετε την τιμή της έκφρασης που καθορίζεται στα αριστερά της με τη συμβολοσειρά μοτίβου που καθορίζεται στα δεξιά. Η τιμή της έκφρασης πρέπει να είναι τύπου string. Εάν η τιμή της παράστασης ταιριάζει με το μοτίβο, το αποτέλεσμα του τελεστή θα είναι TRUE, διαφορετικά θα είναι FALSE.

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

  • % (ποσοστό): μια ακολουθία που περιέχει οποιονδήποτε αριθμό αυθαίρετων χαρακτήρων.
  • _ (υπογράμμιση): ένας αυθαίρετος χαρακτήρας.
  • […] (ένας ή περισσότεροι χαρακτήρες σε αγκύλες): οποιοσδήποτε μεμονωμένος χαρακτήρας παρατίθεται μέσα στις αγκύλες. Η απαρίθμηση μπορεί να περιέχει εύρη, για παράδειγμα a-z, που σημαίνει έναν αυθαίρετο χαρακτήρα που περιλαμβάνεται στο εύρος, συμπεριλαμβανομένων των άκρων του εύρους.
  • [^...] (σε αγκύλες ένα σύμβολο άρνησης ακολουθούμενο από έναν ή περισσότερους χαρακτήρες): οποιοσδήποτε μεμονωμένος χαρακτήρας εκτός από αυτούς που παρατίθενται μετά το σύμβολο άρνησης.

Οποιοδήποτε άλλο σύμβολο σημαίνει τον εαυτό του και δεν φέρει κανένα πρόσθετο φορτίο. Εάν ένας από τους χαρακτήρες που αναφέρονται πρέπει να γραφτεί ως ο ίδιος, τότε πρέπει να προηγείται<Спецсимвол>. Εγώ ο ίδιος<Спецсимвол>(οποιοσδήποτε κατάλληλος χαρακτήρας) ορίζεται στην ίδια πρόταση μετά τη λέξη-κλειδί ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ.

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

Γραμμή

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

String(False) // επιστρέφει "Όχι"
Το String(12345) // επιστρέφει "12.345"
String(CurrentDate()) //"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("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

Υλοποιήθηκε στην έκδοση 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. Και η αναζήτηση από μια καθορισμένη θέση βοηθά σε περιπτώσεις όπου πρέπει να κάνετε αναζήτηση σε ένα γνωστό τμήμα και όχι σε ολόκληρη τη γραμμή.

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

Στο 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· στη ζωή χρησιμοποιείται πολύ λιγότερο συχνά (αλλά χρησιμοποιείται!).

Μεταβλητή = "";
Row = 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);
    Τέλος Διαδικασίας

Οι σειρές στο 1C 8.3 στην ενσωματωμένη γλώσσα 1C αντιπροσωπεύουν τιμές πρωτόγονου τύπου Γραμμή. Οι τιμές αυτού του τύπου περιέχουν μια συμβολοσειρά Unicode αυθαίρετου μήκους. Οι μεταβλητές τύπου συμβολοσειράς είναι ένα σύνολο χαρακτήρων που περικλείονται σε εισαγωγικά.

Παράδειγμα 1. Ας δημιουργήσουμε μια μεταβλητή συμβολοσειράς με κείμενο.

StringVariable = "Γεια σου κόσμο!";

Λειτουργίες για εργασία με χορδές σε 1s 8.3

Αυτή η ενότητα θα παρέχει τις κύριες λειτουργίες που σας επιτρέπουν να αλλάξετε γραμμές στο 1c ή να αναλύσετε τις πληροφορίες που περιέχονται σε αυτές.

StrLength

StrLength(<Строка>) . Επιστρέφει τον αριθμό των χαρακτήρων που περιέχονται στη συμβολοσειρά που μεταβιβάστηκε ως παράμετρος.

Παράδειγμα 2. Ας μετρήσουμε τον αριθμό των χαρακτήρων στη γραμμή "Hello world!"

String = "Γεια σου κόσμο!"; NumberofCharacters = StrLength(String); Αναφορά(ΑριθμοίΧαρακτήρες);

Το αποτέλεσμα της εκτέλεσης αυτού του κωδικού θα είναι η εμφάνιση του αριθμού των χαρακτήρων στη γραμμή: 11.

AbbrL

AbbrL(<Строка>) . Περικόπτει μη σημαντικούς χαρακτήρες στα αριστερά του πρώτου σημαντικού χαρακτήρα στη συμβολοσειρά.
Μικροί χαρακτήρες:

  • χώρος;
  • μη σπάζοντας χώρο?
  • κατάταξη εις πίνακα;
  • Επιστροφή μεταφοράς?
  • γραμμή μετάφραση?
  • μετάφραση του εντύπου (σελίδα).

Παράδειγμα 3. Αφαιρέστε όλα τα κενά από την αριστερή πλευρά της γραμμής "world!" και προσθέστε τη γραμμή "Hello" σε αυτό.

String = Συντομογραφία ("world!"); String = "Hello"+String; Αναφορά (String);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση της γραμμής "Hello world!" στην οθόνη.

Συντομογραφία

Συντομογραφία(<Строка>) . Περικόπτει μη σημαντικούς χαρακτήρες στα δεξιά του πρώτου σημαντικού χαρακτήρα στη συμβολοσειρά.

Παράδειγμα 4. Σχηματίστε από τις γραμμές "Hello" και "peace!" η φράση «Γεια σου κόσμο!»

Line = Συντομογραφία ("Hello ")+" "+ Abbreviation(" world!"); Αναφορά (String);

AbbrLP

AbbrLP(<Строка>) . Περικόπτει μη σημαντικούς χαρακτήρες στα δεξιά του πρώτου σημαντικού χαρακτήρα της συμβολοσειράς και επίσης περικόπτει μη σημαντικούς χαρακτήρες στα αριστερά του πρώτου σημαντικού χαρακτήρα στη συμβολοσειρά. Αυτή η λειτουργία χρησιμοποιείται πιο συχνά από τις δύο προηγούμενες, καθώς είναι πιο καθολική.

Παράδειγμα 5. Αφαιρέστε ασήμαντους χαρακτήρες στα αριστερά και δεξιά στο όνομα του αντισυμβαλλομένου.

Counterparty = Κατάλογοι. Counterparties.Find By Details("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

ένα λιοντάρι

Ενα λιοντάρι(<Строка>, <ЧислоСимволов>) . Λαμβάνει τους πρώτους χαρακτήρες της συμβολοσειράς, ο αριθμός των χαρακτήρων καθορίζεται στην παράμετρο Αριθμός χαρακτήρων.

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

NameInitial = Lev(Employee.Name, 1); Πατρωνυμικό Αρχικό = Λέων(Εργαζόμενος. Πατρώνυμο, 1); FullName = Employee.LastName + " " + FirstName Initial + "." + Μεσαίο αρχικό + ".";

σωστά

Σωστά(<Строка>, <ЧислоСимволов>) . Λαμβάνει τους τελευταίους χαρακτήρες μιας συμβολοσειράς, τον αριθμό των χαρακτήρων που καθορίζεται στην παράμετρο Αριθμός χαρακτήρων.Εάν ο καθορισμένος αριθμός χαρακτήρων υπερβαίνει το μήκος της συμβολοσειράς, τότε επιστρέφεται ολόκληρη η συμβολοσειρά.

Παράδειγμα 7. Αφήστε μια ημερομηνία σε μορφή «εεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεε. ημερομηνία.

String = "Τρέχουσα ημερομηνία: 20170910"; StringDate = Δικαιώματα (String, 8); Date = Date(StringDate);

Τετάρτη

Τετάρτη(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Λαμβάνει μια δευτερεύουσα συμβολοσειρά από τη συμβολοσειρά που μεταβιβάζεται ως παράμετρος Γραμμή, ξεκινώντας από τον χαρακτήρα του οποίου ο αριθμός καθορίζεται στην παράμετρο Αρχικός Αριθμόςκαι το μήκος πέρασε στην παράμετρο Αριθμός χαρακτήρων.Η αρίθμηση των χαρακτήρων σε μια γραμμή ξεκινά από το 1. Αν στην παράμετρο Αρχικός Αριθμόςκαθορίζεται μια τιμή μικρότερη ή ίση με το μηδέν, τότε η παράμετρος παίρνει την τιμή 1. Εάν η παράμετρος Αριθμός χαρακτήρωνδεν καθορίζεται, τότε επιλέγονται χαρακτήρες μέχρι το τέλος της γραμμής.

Παράδειγμα 8. Αφήστε τη μεταβλητή συμβολοσειράς που ξεκινά από την ένατη θέση να περιέχει τον κωδικό περιοχής, θα πρέπει να τον πάρετε και να τον γράψετε σε ξεχωριστή γραμμή.

String = "Περιοχή: 99 Μόσχα"; Περιοχή = Μέσος (String, 9, 2);

Εύρεση σελίδας

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Αναζητά μια καθορισμένη υποσυμβολοσειρά σε μια συμβολοσειρά, επιστρέφοντας τον αριθμό θέσης του πρώτου χαρακτήρα της υποσυμβολοσειράς που βρέθηκε. Ας δούμε τις παραμέτρους αυτής της συνάρτησης:

  • Γραμμή. Συμβολοσειρά πηγής;
  • Αναζήτηση υποσυμβολοσειράς. Υποσυμβολοσειρά αναζήτησης.
  • Κατεύθυνση αναζήτησης. Καθορίζει την κατεύθυνση αναζήτησης μιας υποσυμβολοσειράς σε μια συμβολοσειρά. Μπορεί να λάβει τιμές:
    • Αναζήτηση Κατεύθυνσης.Από την αρχή;
    • Αναζήτηση.Τέλος κατεύθυνσης;
  • Αρχική θέση. Καθορίζει τη θέση στη συμβολοσειρά από την οποία ξεκινά η αναζήτηση.
  • NumberOccurrences. Καθορίζει τον αριθμό εμφάνισης της υποσυμβολοσειράς που αναζητήθηκε στη συμβολοσειρά προέλευσης.

Παράδειγμα 9. Στη γραμμή "Hello world!" Προσδιορίστε τη θέση της τελευταίας εμφάνισης του χαρακτήρα "και".

PositionNumber = StrFind("Hello world!", "and", SearchDirection.End); Αναφορά(Αριθμός Θέσης);

Το αποτέλεσμα της εκτέλεσης αυτού του κωδικού θα είναι να εμφανιστεί ο αριθμός της τελευταίας εμφάνισης του συμβόλου "και": 9.

VReg

VReg(<Строка>) . Μετατρέπει όλους τους χαρακτήρες της καθορισμένης συμβολοσειράς στο 1s8 σε κεφαλαία.

Παράδειγμα 10: Μετατρέψτε τη συμβολοσειρά "hello world!" στο κεφαλαίο.

StringVreg = VReg("γεια σου κόσμε!"); Αναφορά(StringVreg);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση της γραμμής "HELLO WORLD!"

NReg

NReg(<Строка>) . Μετατρέπει όλους τους χαρακτήρες της καθορισμένης συμβολοσειράς σε 1s 8 σε πεζά.

Παράδειγμα 11: Μετατρέψτε τη συμβολοσειρά "HELLO WORLD!" σε πεζό.

StringNreg = NReg("HELLO WORLD!"); Αναφορά(StringVreg);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση της γραμμής "γεια σας κόσμο!"

Treg

Treg(<Строка>) . Μετατρέπει μια συμβολοσειρά ως εξής: ο πρώτος χαρακτήρας κάθε λέξης μετατρέπεται σε κεφαλαία, οι υπόλοιποι χαρακτήρες της λέξης μετατρέπονται σε πεζούς.

Παράδειγμα 12: Σημειώστε κεφαλαία τα πρώτα γράμματα των λέξεων στη γραμμή "γεια σας κόσμο!"

StringTreg = TReg("γεια σου κόσμε!"); Αναφορά(StringTreg);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση της γραμμής "Hello World!"

Σύμβολο

Σύμβολο(<КодСимвола>) . Παίρνει έναν χαρακτήρα από τον κωδικό Unicod του.

Παράδειγμα 13. Προσθέστε αριστερά και δεξιά στη γραμμή "Hello World!" σύμβολο ★

StringWithStars = Symbol("9733")+"Hello World!"+Symbol("9733"); Αναφορά(StringWithStars);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση της γραμμής "★Hello World!★"

Κωδικός συμβόλου

SymbolCode(<Строка>, <НомерСимвола>) . Λαμβάνει τον κωδικό χαρακτήρων Unicode από τη συμβολοσειρά που καθορίζεται στην πρώτη παράμετρο, που βρίσκεται στη θέση που καθορίζεται στη δεύτερη παράμετρο.

Παράδειγμα 14. Μάθετε τον κωδικό του τελευταίου χαρακτήρα στη γραμμή "Hello World!"

String = "Hello World!"; CharacterCode = CharacterCode(String, StrLength(String)); Notify (CharacterCode);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση του κωδικού συμβόλου "!" - 33.

Κενή γραμμή

Κενή γραμμή(<Строка>) . Ελέγχει εάν η συμβολοσειρά αποτελείται μόνο από ασήμαντους χαρακτήρες, δηλαδή εάν είναι κενή.

Παράδειγμα 15. Ελέγξτε εάν μια συμβολοσειρά που αποτελείται από τρία κενά είναι κενή.

Empty = EmptyString(" "); Αναφορά (Κενό);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση της λέξης "Ναι" (μια έκφραση συμβολοσειράς μιας λογικής τιμής Αληθής).

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

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Βρίσκει όλες τις εμφανίσεις της υποσυμβολοσειράς αναζήτησης στη συμβολοσειρά πηγής και την αντικαθιστά με την υποσυμβολοσειρά αντικατάστασης.

Παράδειγμα 16. Στη γραμμή "Hello World!" αντικαταστήστε τη λέξη «Ειρήνη» με τη λέξη «Φίλοι».

String = StrReplace("Hello World!", "World", "Friends"); Αναφορά (String);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση της γραμμής "Hello Friends!"

StrNumberLines

StrNumberRow(<Строка>) . Σας επιτρέπει να μετράτε τον αριθμό των γραμμών σε μια συμβολοσειρά πολλών γραμμών. Για να μεταβείτε σε μια νέα γραμμή στο 1s 8, χρησιμοποιήστε το σύμβολο ΥΣΤΕΡΟΓΡΑΦΟ(χαρακτήρας νέας γραμμής).

Παράδειγμα 17. Προσδιορίστε τον αριθμό των γραμμών στο κείμενο:
"Πρώτη γραμμή
Δεύτερη γραμμή
Τρίτη γραμμή"

Number = StrNumberString("Πρώτη γραμμή"+Χαρακτήρες.PS +"Δεύτερη γραμμή"+Symbols.PS +"Τρίτη γραμμή"); Αναφορά(Αριθμός);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση του αριθμού των γραμμών στο κείμενο: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Λαμβάνει μια γραμμή σε μια συμβολοσειρά πολλών γραμμών με τον αριθμό της. Η αρίθμηση γραμμών ξεκινά από το 1.

Παράδειγμα 18. Πάρτε την τελευταία γραμμή του κειμένου:
"Πρώτη γραμμή
Δεύτερη γραμμή
Τρίτη γραμμή"

Κείμενο = "Πρώτη γραμμή" + Σύμβολα. PS + "Δεύτερη γραμμή" + Σύμβολα. PS + "Τρίτη γραμμή"; LastRow = StrGetRow(Text, StrNumberLines(Text)); Αναφορά (Τελευταία Γραμμή);

Το αποτέλεσμα της εκτέλεσης αυτού του κωδικού θα είναι η εμφάνιση της γραμμής "Τρίτη Γραμμή".

Αριθμός ΣελίδαςΕμφανίσεις

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Επιστρέφει τον αριθμό των εμφανίσεων της καθορισμένης υποσυμβολοσειράς σε μια συμβολοσειρά. Η λειτουργία είναι διάκριση πεζών-κεφαλαίων.

Παράδειγμα 19. Προσδιορίστε πόσες φορές εμφανίζεται το γράμμα «c» στη γραμμή «Γραμμές στα 1s 8.3 και 8.2», ανεξάρτητα από τη πεζή του.

Line = "Lines in 1s 8.3 and 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Αναφορά(ΑριθμοίΕκδηλώσεις);

Το αποτέλεσμα της εκτέλεσης αυτού του κώδικα θα είναι η εμφάνιση του αριθμού των εμφανίσεων: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Ελέγχει εάν η συμβολοσειρά που πέρασε στην πρώτη παράμετρο ξεκινά με τη συμβολοσειρά στη δεύτερη παράμετρο.

Παράδειγμα 20. Προσδιορίστε εάν ο ΑΦΜ του επιλεγμένου αντισυμβαλλομένου αρχίζει με τον αριθμό 1. Αφήστε τη μεταβλητή αντισυμβαλλόμενος αντισυμβαλλόμενοι.

ΑΦΜ = Αντισυμβαλλόμενος.ΑΦΜ; StartsUNits = StrStartsWith(TIN, "1"); Εάν ξεκινά με μονάδες Τότε //Ο κωδικός σας EndIf;

PageEndsOn

StrendsWith(<Строка>, <СтрокаПоиска>) . Ελέγχει εάν η συμβολοσειρά που πέρασε στην πρώτη παράμετρο τελειώνει με τη συμβολοσειρά στη δεύτερη παράμετρο.

Παράδειγμα 21. Προσδιορίστε εάν ο ΑΦΜ του επιλεγμένου αντισυμβαλλομένου τελειώνει με τον αριθμό 2. Αφήστε τη μεταβλητή αντισυμβαλλόμενοςαποθηκεύεται μια αναφορά σε ένα στοιχείο καταλόγου αντισυμβαλλόμενοι.

ΑΦΜ = Αντισυμβαλλόμενος.ΑΦΜ; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Τότε //Ο κωδικός σας EndIf;

Διαχωρισμός σελίδας

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Διαχωρίζει μια συμβολοσειρά σε μέρη χρησιμοποιώντας τους καθορισμένους χαρακτήρες οριοθέτησης και γράφει τις συμβολοσειρές που προκύπτουν σε έναν πίνακα. Η πρώτη παράμετρος αποθηκεύει τη συμβολοσειρά προέλευσης, η δεύτερη περιέχει τη συμβολοσειρά που περιέχει τον οριοθέτη και η τρίτη υποδεικνύει εάν οι κενές συμβολοσειρές πρέπει να εγγραφούν στον πίνακα (από προεπιλογή Αληθής).

Παράδειγμα 22. Ας έχουμε μια συμβολοσειρά που περιέχει αριθμούς που χωρίζονται με το σύμβολο «;», πάρτε έναν πίνακα αριθμών από τη συμβολοσειρά.

Συμβολοσειρά = "1; 2; 3"; Array = StrDivide(String, ";"); Για Count = 0 By Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count])); Εξαίρεση Πίνακας [Sch] = 0; EndAttemptsEndCycle;

Ως αποτέλεσμα της εκτέλεσης, θα ληφθεί ένας πίνακας με αριθμούς από το 1 έως το 3.

PageConnect

StrConnect(<Строки>, <Разделитель>) . Μετατρέπει τον πίνακα συμβολοσειρών από την πρώτη παράμετρο σε μια συμβολοσειρά που περιέχει όλα τα στοιχεία του πίνακα που χωρίζονται από τον οριοθέτη που καθορίζεται στη δεύτερη παράμετρο.

Παράδειγμα 23. Χρησιμοποιώντας τον πίνακα αριθμών από το προηγούμενο παράδειγμα, λάβετε την αρχική συμβολοσειρά.

Για λογαριασμό = 0 Κατά Array.Quantity() - 1 Πίνακας Κύκλου[Act] = String(Array[Act]); EndCycle; Row = StrConnect(Array, "; ");