Αναζήτηση συναρτήσεων για συμβολοσειρές σε 1 δευτερόλεπτο. Νέες λειτουργίες για εργασία με χορδές. Λειτουργία για εργασία με χορδές StrCompare ()

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

Συνένωση χορδών

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

ΕΠΙΛΟΓΗ "Όνομα:" + Αντισυμβαλλόμενοι. Όνομα ως στήλη 1 ΑΠΟ τον κατάλογο. Αντισυμβαλλόμενοι ως αντισυμβαλλόμενοι ΟΤΙ αντισυμβαλλόμενοι. Link = & Link

Λειτουργία υποστρώματος

ΥΠΟΣΤΡΩΜΑ (<Строка>, <НачальнаяПозиция>, <Длина>)

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

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

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

Λειτουργία όπως

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

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

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

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

Ο τελεστής LIKE σάς επιτρέπει να συγκρίνετε την τιμή της έκφρασης που καθορίζεται στα αριστερά της με τη συμβολοσειρά προτύπου που καθορίζεται στα δεξιά. Η τιμή έκφρασης πρέπει να είναι συμβολοσειρά τύπου. Εάν η τιμή έκφρασης ταιριάζει με το μοτίβο, ο τελεστής θα οδηγήσει σε ΑΛΗΘΕΙΑ, διαφορετικά - FALSE.

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

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

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

ΠΡΟΣ ΤΗΝ βασικές δυνατότητεςΗ γλώσσα προγραμματισμού αναφέρεται συνήθως ως εργασία με αριθμούς και χορδές. Συνήθως αυτές οι δυνατότητες είναι κωδικοποιημένες στον κώδικα μεταγλωττιστή (ή εφαρμόζονται οι κατηγορίες "βάσης" της γλώσσας προγραμματισμού).

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

Η τιμή της γραμμής 1C

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

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

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

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

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

Μεταβλητή = "Γεια σας,
| ειρήνη! ";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μετάδοση αντικειμένων στη γραμμή 1C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

    FormattedDocument = CurrentObject.Props.Get ();
    Λήξη διαδικασίας

  • Στη συνάρτηση BeforeWriteOnServer () ή με το κουμπί, γράψτε το κείμενο από το πεδίο

    & Στον διακομιστή
    Διαδικασία για το ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStore (FormattedDocument);
    Λήξη διαδικασίας

Μια συμβολοσειρά είναι ένας από τους πρωτόγονους τύπους δεδομένων σε συστήματα 1C: Enterprise 8. Μεταβλητές με τον τύπο γραμμήπεριέχει κείμενο.

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

Per1 = "Λέξη 1";
Per2 = "Λέξη 2";
Per3 = Per1 + "" + Per2;

Τελικά Ανά 3θα σημαίνει « Λέξη 1 Λέξη 2 ″.

Επιπλέον, τα συστήματα 1C: Enterprise 8 παρέχουν λειτουργίες για εργασία με χορδές. Ας εξετάσουμε τα κύρια:

Εισαγάγετε συμβολοσειρά (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — Η λειτουργία προορίζεται να εμφανίσει ένα παράθυρο διαλόγου στο οποίο ο χρήστης μπορεί να καθορίσει την τιμή μιας μεταβλητής του τύπου Γραμμή... Παράμετρος <Строка> απαιτείται και περιέχει το όνομα της μεταβλητής στην οποία θα γραφτεί η καταχωρημένη συμβολοσειρά. Παράμετρος <Подсказка> προαιρετικό είναι ο τίτλος του πλαισίου διαλόγου. Παράμετρος <Длина> προαιρετικά, υποδεικνύει το μέγιστο μήκος της συμβολοσειράς εισόδου. Η προεπιλογή είναι μηδέν, που σημαίνει απεριόριστο μήκος. Παράμετρος <Многострочность> προαιρετικός. Καθορίζει τη λειτουργία εισαγωγής κειμένου πολλαπλών γραμμών: True - εισαγωγή κειμένου πολλαπλών γραμμών με διαχωριστικά γραμμών. False - εισαγωγή μιας απλής συμβολοσειράς.

Η συμβολοσειρά μπορεί να εισαχθεί και να δοθεί ο κωδικός χαρακτήρων Unicode:

Σύμβολο(<КодСимвола>) — ο κωδικός εισάγεται ως αριθμός.

Γράμμα = Σύμβολο (1103); // ΕΓΩ

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

SymbolCode (<Строка>, <НомерСимвола>) — επιστρέφει τον καθορισμένο αριθμό χαρακτήρα Unicode ως αριθμό.

Λειτουργίες μετατροπής περίπτωσης:

ΜΠΡΕΓ (<Строка>) - μετατρέπει όλους τους χαρακτήρες στη συμβολοσειρά σε κεφαλαία.

HPreg (<Строка>) - μετατρέπει όλους τους χαρακτήρες στη συμβολοσειρά σε πεζά.

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

Λειτουργίες για αναζήτηση και αντικατάσταση χαρακτήρων σε μια συμβολοσειρά:

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

Εύρεση ("String", "Oka"); // τέσσερα

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

Αριθμός4 εμφανίσεις = StrFind ( "Αμυντική ικανότητα", "o", Αναζήτηση κατεύθυνσης. Από την αρχή, 1, 4) // 7

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

StrReplace ("String", "Oka", ""); // Σελίδα

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

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

Αριθμός αριθμών περιστατικών ( "Μελέτη, μελέτη και μελέτη ξανά", "να διαβάσω" , "" ) ; // 3

Πρότυπο σελίδας (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — αντικαθιστά τις παραμέτρους στη συμβολοσειρά με τον αριθμό. Η γραμμή πρέπει να περιέχει δείκτες αντικατάστασης της φόρμας: "% 1 ..% N". Οι δείκτες αριθμούνται ξεκινώντας από το 1. Εάν η τιμή της παραμέτρου Απροσδιόριστος, αντικαθίσταται μια κενή συμβολοσειρά.

Πρότυπο σελίδας ( "Παράμετρος 1 =% 1, παράμετρος 2 =% 2", "1" , "2" ) ; // Παράμετρος 1 = 1, Παράμετρος 2 = 2

Λειτουργίες μετατροπής συμβολοσειράς:

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

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

Τετάρτη (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - επιστρέφει μια συμβολοσειρά μήκους<ЧислоСимволов>ξεκινώντας με τον χαρακτήρα<НачальныйНомер>.

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

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

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

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

Άλλες λειτουργίες:

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

StrNumber of Lines (<Строка>) - επιστρέφει τον αριθμό γραμμών σε συμβολοσειρά πολλαπλών γραμμών. Μια γραμμή θεωρείται νέα αν διαχωριστεί από την προηγούμενη γραμμή με έναν χαρακτήρα νέας γραμμής.

Συγκρίνω (<Строка1>, <Строка2> ) - συγκρίνει δύο χορδές, χωρίς κεφαλαία. Η συνάρτηση λειτουργεί με τον ίδιο τρόπο όπως ένα αντικείμενο Σύγκριση τιμών... Επιστροφές:

  • 1 - εάν η πρώτη γραμμή είναι μεγαλύτερη από τη δεύτερη
  • -1 - εάν η δεύτερη γραμμή είναι μεγαλύτερη από την πρώτη
  • 0 - εάν οι συμβολοσειρές είναι ίσες

Σύγκριση ("Πρώτη γραμμή", "Δεύτερη γραμμή"); // ένας

Εφαρμόστηκε στην έκδοση 8.3.6.1977.

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

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

Λειτουργία μορφοποίησης StrPattern ()

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

Πρότυπο σελίδας (<Шаблон>, <Значение1-Значение10>)

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

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

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

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

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

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

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

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

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

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

Λειτουργίες για εργασία με χορδές RowStart With (), RREnd With ()

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

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

Λειτουργίες για εργασία με χορδές StrSplit (), StrConnect ()

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

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

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

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

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

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

Σημειώσεις από το γυαλί

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

Εφαρμόστηκε στην έκδοση 8.3.6.1977.

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

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

Λειτουργία μορφοποίησης StrPattern ()

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

Πρότυπο σελίδας (<Шаблон>, <Значение1-Значение10>)

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

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

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

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

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

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

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

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

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

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

Λειτουργίες για εργασία με χορδές RowStart With (), RREnd With ()

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

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

Λειτουργίες για εργασία με χορδές StrSplit (), StrConnect ()

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

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

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

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

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

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