1c ابحث عن التواجد الثاني في السلسلة. وظائف جديدة للعمل مع السلاسل

1c ابحث عن التواجد الثاني في السلسلة.  وظائف جديدة للعمل مع السلاسل
1c ابحث عن التواجد الثاني في السلسلة. وظائف جديدة للعمل مع السلاسل

الشخصيات الخاصة في 1C 8.3 - مجموعة شخصيات خاصةلأنواع البيانات السلسلة.

دعونا ننظر إلى كل واحد منهم بمزيد من التفصيل.

الأحرف الخاصة في 1C: VK، VTab، NPP، PS، PF، Tab

يتم استدعاء الأحرف الخاصة باستخدام خاصية "الأحرف" العامة، على سبيل المثال:

النص = "النص قبل علامة التبويب" + الرموز. علامة التبويب + "النص بعد علامة التبويب"؛

احصل على 267 درس فيديو على 1C مجانًا:

  • VC (CR) - حرف العودة. في الأيام الخوالي، في الطابعات النقطية أو الطابعات الزهرية، تم استخدام رمز الحرف هذا كأمر يعيد رأس الطباعة إلى بداية السطر.
  • NSP (NBSp) - مسافة غير منقسمة (غالبًا ما تظهر في سلاسل رقمية، على سبيل المثال: 1000).
  • PS (LF) - تغذية الخط (LF - تغذية الخط) - قم بتمرير الأسطوانة سطرًا واحدًا لأسفل، ويكون رأس الطباعة في نفس المكان.
  • PF (FF) - ترجمة التنسيق. يتم إخراج الورقة من الطابعة وتبدأ الطباعة على ورقة جديدة.
  • علامة التبويب هي حرف علامة التبويب. الجدولة الأفقية هي طريقة لتحديد موضعك للطباعة على أقرب عمود يمثل أحد مضاعفات الرقم (على سبيل المثال، 8، 16، 24...).
  • VTab - الجدولة العمودية. يشبه الوضع الأفقي، ولكن يتم وضعه على الخط. يتسبب في بعض التمرير لأسطوانة الطابعة (يظل رأس الطباعة في نفس الموضع (العمود)!)

PS + VK عبارة عن مجموعة تؤدي عمليتين: فهي تقوم بتمرير البكرة إلى أسفل سطر ما وتعيد عربة الطباعة إلى بداية السطر، وهو ما يتوافق مع ما يتوقع المستخدم الحصول عليه عند الضغط على Enter.

إذا كنت قد بدأت في تعلم برمجة 1C، فإننا نوصيك بذلك دورة مجانية(لا تنسى

السلسلة هي أحد أنواع البيانات البدائية في أنظمة 1C:Enterprise 8 مع النوع خطتحتوي على نص.

اكتب القيم المتغيرة خطمحاطة بعلامات اقتباس مزدوجة. متغيرات متعددة من هذا النوعيمكن طيها.

Per1 = "الكلمة 1" ;
Per2 = "كلمة 2" ;
Per3 = Per1 + "" + Per2;

مؤخراً لكل3سيعني " كلمة 1 كلمة 2".

بالإضافة إلى ذلك، توفر أنظمة 1C:Enterprise 8 وظائف للعمل مع السلاسل. دعونا نلقي نظرة على أهمها:

أدخل السلسلة(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — تم تصميم الوظيفة لعرض مربع حوار يمكن للمستخدم من خلاله تحديد قيمة نوع متغير خط. معامل <Строка> مطلوب ويحتوي على اسم المتغير الذي سيتم كتابة السلسلة المدخلة فيه. معامل <Подсказка> اختياري - هذا هو عنوان مربع الحوار. معامل <Длина> اختياري، يظهر الحد الأقصى لطول سلسلة الإدخال. الافتراضي هو صفر، وهو ما يعني طول غير محدود. معامل <Многострочность> خياري. يحدد وضع إدخال النص متعدد الأسطر: صحيح - إدخال نص متعدد الأسطر مع فواصل الأسطر؛ خطأ - أدخل سلسلة بسيطة.

يمكنك إدخال سلسلة إذا كنت تعرف رمز الحرف في Unicode:

رمز(<КодСимвола>) — يتم إدخال الرمز كرقم.

حرف= رمز(1103) ؛ // أنا

هناك أيضًا وظيفة عكسية تتيح لك معرفة رمز الرمز.

رمز الرمز(<Строка>, <НомерСимвола>) — تقوم بإرجاع رقم Unicode للحرف المحدد كرقم.

وظائف تحويل حالة النص:

فيريج(<Строка>) - تحويل كافة الأحرف في سلسلة إلى أحرف كبيرة.

نريج(<Строка>) - تحويل كافة الأحرف في سلسلة إلى أحرف صغيرة.

TReg(<Строка>) - تحويل كافة الأحرف في السلسلة إلى حالة العنوان. أي أنه يتم تحويل الأحرف الأولى في جميع الكلمات إلى أحرف كبيرة، ويتم تحويل الأحرف المتبقية إلى أحرف صغيرة.

وظائف للبحث واستبدال الأحرف في سلسلة:

يجد(<Строка>, <ПодстрокаПоиска>) - يعثر على رقم الحرف الخاص بحدوث سلسلة البحث الفرعية. على سبيل المثال:

ابحث عن ("سلسلة"، "أوكا")؛ // 4

سترفيند(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - العثور على رقم الحرف الخاص بتكرار سلسلة البحث الفرعية، تتم الإشارة إلى رقم التكرار في المعلمة المقابلة. في هذه الحالة، يبدأ البحث بالحرف المحدد رقمه في المعلمة الوضعية الأولية.البحث ممكن من بداية أو نهاية السلسلة. على سبيل المثال:

عدد التكرارات Number4 = Str Find ( "الدفاع", "حول" ,اتجاه البحث. من البداية، 1، 4)؛ // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - يبحث عن كافة تكرارات سلسلة البحث الفرعية في السلسلة المصدر ويستبدلها بالسلسلة الفرعية البديلة.

StrReplace ("String" , "oka" , "" ) ; // صفحة

سطر فارغ(<Строка>) - يتحقق من السلسلة بحثًا عن الأحرف المهمة. إذا لم تكن هناك أحرف مهمة، أو لم تكن هناك أحرف على الإطلاق، فسيتم إرجاع القيمة حقيقي. خلاف ذلك - كذب.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – حساب عدد تكرارات سلسلة البحث الفرعية في السلسلة المصدر.

رقم StrNumberOccurrences ( "الدراسة والدراسة والدراسة مرة أخرى"، "يذاكر" ، "" ) ؛ // 3

قالب StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — يستبدل المعلمات في سلسلة برقم. يجب أن يحتوي السطر على علامات بديلة للنموذج: "%1..%N". يبدأ ترقيم العلامة من 1. إذا كانت قيمة المعلمة غير معرف، يتم استبدال سلسلة فارغة.

قالب StrTemplate ( "المعلمة 1 = %1، المعلمة 2 = %2", "1" , "2" ) ; // المعلمة 1= 1، المعلمة 2 = 2

وظائف تحويل السلسلة:

أسد(<Строка>, <ЧислоСимволов>) - إرجاع الأحرف الأولى من السلسلة.

يمين(<Строка>, <ЧислоСимволов>) - إرجاع الأحرف الأخيرة من السلسلة.

الأربعاء(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - إرجاع سلسلة من الطول<ЧислоСимволов>، بدءًا من الرمز<НачальныйНомер>.

أبرل(<Строка>) يقطع الأحرف غير المهمة الموجودة على يسار الحرف الأول رمز ذو معنىفي النسق.

أبر(<Строка>) — يقطع الأحرف غير المهمة الموجودة على يمين آخر حرف مهم في السطر.

أبرلب(<Строка>) - يقطع الأحرف غير الهامة الموجودة على يسار أول حرف مهم في السطر وعلى يمين آخر حرف مهم في السطر.

سلسلة StrGetString(<Строка>, <НомерСтроки>) - الحصول على سلسلة متعددة الأسطر حسب الرقم.

ميزات أخرى:

الطول(<Строка>) - إرجاع عدد الأحرف في السلسلة.

StrNumberRow(<Строка>) - إرجاع عدد الأسطر في سلسلة متعددة الأسطر. يعتبر السطر جديدًا إذا تم فصله عن السطر السابق بحرف السطر الجديد.

مقارنة(<Строка1>, <Строка2> ) - يقارن سلسلتين بطريقة غير حساسة لحالة الأحرف. تعمل الوظيفة بشكل مشابه للكائن مقارنة القيم. عائدات:

  • 1- إذا كان السطر الأول أكبر من الثاني
  • -1- إذا كان السطر الثاني أكبر من الأول
  • 0 - إذا كانت السلاسل متساوية

StrCompare("السطر الأول" , "السطر الثاني" ) ; // 1

نوع String موجود في جميع لغات البرمجة. إنها بدائية، وفي 1C هناك العديد من الوظائف للعمل معها. في هذه المقالة سوف نلقي نظرة فاحصة طرق مختلفةالعمل مع أنواع السلسلة في 1C 8.3 و8.2 باستخدام الأمثلة.

خط

من أجل تحويل متغير من أي نوع إلى سلسلة، هناك وظيفة بنفس الاسم "سلسلة ()." ستكون معلمة الإدخال هي المتغير نفسه، والذي يجب الحصول على تمثيل السلسلة له.

سلسلة (خطأ) // ترجع "لا"
سلسلة (12345) // ترجع "12345"
سلسلة (CurrentDate ()) //"07/21/2017 11:55:36″

من الممكن تحويل ليس فقط الأنواع البدائية إلى سلسلة، ولكن أيضًا أنواع أخرى، على سبيل المثال، عناصر الدلائل والمستندات.

سوكرلب، سوكرل، سوكرب

معلمات الإدخال لهذه الوظائف هي متغير من نوع السلسلة. تعمل الوظائف على إزالة الأحرف غير المهمة (المسافات، وأول السطر، وما إلى ذلك): من اليسار و الجانب الأيمن، فقط على الجانب الأيسر، وفقط على اليمين، على التوالي.

الاختصار("ستتم إزالة المسافات على كلا الجانبين") // "ستتم إزالة المسافات على كلا الجانبين"
الاختصار("ستتم إزالة المسافات على كلا الجانبين") // "ستتم إزالة المسافات الموجودة على اليسار"
الاختصار("ستتم إزالة المسافات على كلا الجانبين") // "ستتم إزالة المسافات الموجودة على اليمين"

ليو، يمين، متوسط

تسمح لك هذه الوظائف بقص جزء من السلسلة. ستعيد الدالة "Left()" جزء السلسلة من جانبها الأيسر بالطول المحدد. الدالة "Right()" مشابهة، ولكنها يتم اقتصاصها من اليمين. تتيح لك وظيفة "Avg()" تحديد عدد الحرف الذي سيتم اختيار السطر منه وطوله.

ليف ("متغير السلسلة"، 4) // إرجاع "سلسلة"
حق ("متغير السلسلة"، 7) // إرجاع "متغير"
متوسط ​​("متغير السلسلة"، 2، 5) // يُرجع "troko"

الطول

تحدد الدالة عدد الأحرف الموجودة في متغير السلسلة.

StrLength("Word") // ستكون نتيجة التنفيذ هي الرقم 5

يجد

تتيح الوظيفة إمكانية البحث عن جزء من سلسلة في متغير سلسلة. ستكون القيمة المرجعة عبارة عن رقم يوضح موضع بداية السلسلة التي تم العثور عليها. إذا لم يتم العثور على تطابق، يتم إرجاع الصفر.

يرجى ملاحظة أن البحث حساس لحالة الأحرف. إذا كان هناك أكثر من تكرار واحد لسلسلة البحث الفرعية في السلسلة الأصلية، فستُرجع الدالة بداية التكرار الأول.

Find ("one، two، one، two، three"، "two") // ستعيد الدالة الرقم 6

سطر فارغ

يتيح لك استخدام هذه الوظيفة تحديد ما إذا كانت السلسلة فارغة أم لا. لا يتم أخذ الأحرف الثانوية مثل المسافة وأحرف الإرجاع وغيرها في الاعتبار.

EmptyString("Pupkin Vasily Ivanovich") // ستُرجع الدالة القيمة False
EmptyString(" ") // ستُرجع الدالة القيمة True

VReg، NReg، TReg

تعتبر هذه الوظائف مفيدة جدًا عند مقارنة متغيرات السلسلة وتحويلها. سيعيد "Vreg()" السلسلة الأصلية بأحرف كبيرة، و"HPreg()" بأحرف صغيرة، وسيقوم "TReg()" بتنسيقها بحيث يتم تكبير الحرف الأول من كل كلمة على حدة، ويتم تكبير كافة الأحرف اللاحقة.

VReg("المدير العام") // القيمة المرجعة - "المدير العام"
NReg ("المدير التنفيذي") // القيمة المرجعة - "الرئيس التنفيذي"
TREG ("المدير التنفيذي") // القيمة المرجعة - "المدير العام"

استبدال الصفحة

هذه الوظيفةيشبه الاستبدال في محرري النصوص. يسمح لك باستبدال حرف واحد أو مجموعة من الأحرف بأخرى في متغيرات السلسلة.

StrReplace("أحمر، أبيض، أصفر"، ""، "؛") // يُرجع "أحمر؛ أبيض؛ أصفر"

StrNumberLines

تتيح لك الوظيفة تحديد عدد الأسطر المفصولة بعلامات إرجاع السطر في متغير النص.

سوف تمر الحلقة في المثال أدناه بثلاث جولات لأن الدالة LineNumberRow ستعيد القيمة 3:

بالنسبة إلى ind = 1 بواسطة StrNumber من السلاسل ("Line1" + الرموز.PS + "Line2" + الرموز.PS + "Line3")
<тело цикла>
EndCycle;

StrGetString

تعمل هذه الوظيفة مع النص متعدد الأسطر بنفس طريقة الوظيفة السابقة. يسمح لك بالحصول على سلسلة محددة من متغير النص.

StrGetString("String1" + Characters.PS + "String2" + Characters.PS + "String3"، 2) // إرجاع "السلسلة 2"

عدد مرات الصفحة

تحسب الدالة عدد مرات ظهور الحرف أو السلسلة الفرعية في سلسلة البحث.

StrNumberAttachments("a;b;c;d; ", ";") // ستعيد الدالة الرقم 4

الرمز والرمز الرمز

تتيح لك هذه الوظائف الحصول على حرف من خلال الكود الخاص به في ترميز Unicode، بالإضافة إلى تحديد هذا الرمز من خلال الحرف نفسه.

رمز الرمز ("A") // ستُرجع الدالة الرقم 1,040
CharacterCode(1040) // ستُرجع الدالة "A"

المهام الشائعة عند العمل مع السلاسل

سلاسل مترابطة

لدمج عدة سلاسل (لإجراء التسلسل)، يكفي استخدام عامل الإضافة.

"السطر 1" + "السطر 2" // نتيجة إضافة سطرين ستكون "السطر 1 السطر 2"

نوع التحويل

من أجل تحويل نوع إلى سلسلة، على سبيل المثال، رابط إلى عنصر دليل، رقم، وما إلى ذلك، يكفي استخدام وظيفة "String ()." ستقوم وظائف مثل "ScrLP()" أيضًا بتحويل المتغيرات إلى سلسلة، ولكن على الفور مع قطع الأحرف غير المهمة.

سلسلة (1000) // ترجع "1000"

يرجى ملاحظة أنه عند تحويل رقم إلى سلسلة، يقوم البرنامج تلقائيًا بإضافة مسافة تفصل بين الألف. لتجنب ذلك، يمكنك استخدام الإنشاءات التالية:

StrReplace(String(1000)،Characters.NPP،"") // ترجع "1000"

سلسلة (تنسيق (1000، "HG =")) // ترجع "1000"

اقتباسات في سلسلة

في كثير من الأحيان، سيتعين عليك التعامل مع الحاجة إلى تحديد علامات الاقتباس في متغير السلسلة. يمكن أن يكون هذا إما نص الطلب المكتوب في أداة التهيئة، أو مجرد متغير. لحل هذه المشكلة، تحتاج فقط إلى تعيين علامتي الاقتباس.

Header = String("Horns and Hooves LLC - هذا نحن!") // سيُرجع "Horns and Hooves LLC - هذا نحن!"

متعدد الأسطر، فاصل الأسطر

من أجل خلق نص متعدد الأسطريكفي إضافة فواصل أسطر إليها (Symbols.PS).

MultilineText = "السطر الأول" + الرموز.PS + "السطر الثاني"

كيفية إزالة المسافات

لإزالة المسافات على اليمين أو اليسار، يمكنك استخدام وظيفة "ScrAP()" (بالإضافة إلى "ScrL()" و"ScrP()"):

StringNoSpaces = Abbreviation("العديد من الحروف") // ستعيد الدالة القيمة "العديد من الحروف"

إذا كنت بحاجة إلى إزالته بعد تحويل رقم إلى سلسلة مساحات غير قابلة للكسر، استخدم البناء التالي:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // تُرجع "99999"

غالبًا ما يستخدم المبرمجون أيضًا البنية التالية، والتي تسمح لك بإزالة جميع المسافات في متغير النص أو استبدالها بحرف آخر:

StringNoSpaces = StrReplace("hello"،"") // يُرجع "hello"

مقارنة السلاسل مع بعضها البعض

يمكنك مقارنة المصطلحات بعلامة المساواة المعتادة. المقارنة حساسة لحالة الأحرف.

"Hello" = "hello" // يُرجع خطأ
"Hello" = "Hello" // يُرجع True
"Hello" = "وداعا" // سيرجع خطأ

تمثل الصفوف في 1C 8.3 باللغة المضمنة 1C قيمًا من النوع البدائي خط. تحتوي القيم من هذا النوع على سلسلة Unicode ذات طول عشوائي. متغيرات نوع السلسلة هي مجموعة من الأحرف المحاطة بعلامات اقتباس.

المثال 1. لنقم بإنشاء متغير سلسلة يحتوي على نص.

StringVariable = "مرحبًا بالعالم!";

وظائف للعمل مع السلاسل في 1S 8.3

سيوفر هذا القسم الوظائف الرئيسية التي تسمح لك بتغيير الخطوط في 1C، أو تحليل المعلومات الواردة فيها.

الطول

الطول(<Строка>) . إرجاع عدد الأحرف الموجودة في السلسلة التي تم تمريرها كمعلمة.

مثال 2. لنحسب عدد الأحرف في السطر "Hello World!"

سلسلة = "مرحبا بالعالم!"; NumberofCharacters = StrLength(String); تقرير (عدد الأحرف)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض عدد الأحرف في السطر: 11.

أبرل

أبرل(<Строка>) . يقوم بقص الأحرف غير الهامة على يسار الحرف الأول المهم في السلسلة.
شخصيات ثانوية:

  • فضاء؛
  • مسافة غير منقسمة؛
  • جدولة؛
  • إرجاع؛
  • ترجمة الخط؛
  • ترجمة النموذج (الصفحة).

مثال 3. قم بإزالة كافة المسافات من الجانب الأيسر من السطر "العالم!" وأضف السطر "مرحبًا" إليه.

String = Abbreviation("world!"); سلسلة = "مرحبا"+سلسلة؛ تقرير (سلسلة)؛

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "Hello World!"

مختصر

أبر(<Строка>) . يقوم بقص الأحرف غير الهامة الموجودة على يمين الحرف الأول المهم في السلسلة.

مثال 4. النموذج من السطور "مرحبا" و"السلام!" عبارة "مرحبا بالعالم!"

Line = Abbreviation("Hello ")+" "+ Abbreviation("world!"); تقرير (سلسلة)؛

AbbrLP

أبرلب(<Строка>) . يقوم بقص الأحرف غير المهمة الموجودة على يمين أول حرف مهم في السلسلة، كما يقوم أيضًا بقص الأحرف غير المهمة على يسار الحرف الأول المهم في السلسلة. يتم استخدام هذه الوظيفة في كثير من الأحيان أكثر من الوظيفتين السابقتين، لأنها أكثر عالمية.

مثال 5. قم بإزالة الأحرف غير المهمة على اليسار واليمين من اسم الطرف المقابل.

الطرف المقابل = الدلائل.البحث حسب التفاصيل("TIN"، "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

أسد

أسد(<Строка>, <ЧислоСимволов>) . يحصل على الأحرف الأولى من السلسلة، ويتم تحديد عدد الأحرف في المعلمة عدد الشخصيات.

مثال 6. دع الهيكل يدخل موظفتحتوي على الأسماء الأولى والأخيرة والعائلية للموظف. احصل على سلسلة بالاسم الأخير والأحرف الأولى.

NameInitial = Lev(Employee.Name, 1); Patronymic الأولي = Leo(Employee. Patronymic, 1); FullName = الموظف.LastName + " " + الاسم الأول الأولي + "." + الأولي الأوسط + ".";

يمين

يمين(<Строка>, <ЧислоСимволов>) . يحصل على الأحرف الأخيرة من السلسلة، وهو عدد الأحرف المحدد في المعلمة عدد الشخصيات.إذا تجاوز عدد الأحرف المحدد طول السلسلة، فسيتم إرجاع السلسلة بأكملها.

مثال 7. دع التاريخ بالتنسيق "yyyymmdd" يُكتب في نهاية متغير السلسلة، واحصل على سلسلة تحتوي على التاريخ وقم بتحويلها إلى كتابة تاريخ.

سلسلة = " التاريخ الحالي: 20170910"; StringDate = Right(String, 8); Date = Date(StringDate);

الأربعاء

الأربعاء(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . يحصل على سلسلة فرعية من السلسلة التي تم تمريرها كمعلمة خطبدءًا من الحرف المحدد رقمه في المعلمة الرقم الأوليوالطول الذي تم تمريره إلى المعلمة عدد الشخصيات.يبدأ ترقيم الأحرف في السطر من 1. إذا كان في المعلمة الرقم الأوليتم تحديد قيمة أقل من أو تساوي الصفر، ثم تأخذ المعلمة القيمة 1. إذا كانت المعلمة عدد الشخصياتلم يتم تحديده، ثم يتم تحديد الأحرف حتى نهاية السطر.

مثال 8. دع متغير السلسلة ابتداء من الموضع التاسع يحتوي على رمز المنطقة، يجب أن تحصل عليه وتكتبه في سطر منفصل.

String = "المنطقة: 99 موسكو"; المنطقة = المتوسط ​​(سلسلة، 9، 2)؛

بحث عن الصفحات

سترفيند(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . يبحث عن سلسلة فرعية محددة في سلسلة، ويعيد رقم موضع الحرف الأول من السلسلة الفرعية التي تم العثور عليها. دعونا نلقي نظرة على معلمات هذه الوظيفة:

  • خط. سلسلة المصدر؛
  • البحث عن سلسلة فرعية. بحث عن سلسلة فرعية؛
  • اتجاه البحث. يحدد الاتجاه للبحث عن سلسلة فرعية في سلسلة. يمكن أن تأخذ القيم:
    • اتجاه البحث.من البداية;
    • بحث.نهاية الاتجاه;
  • الوضعية الأولية. يحدد الموضع في السلسلة التي يبدأ عندها البحث؛
  • عدد الأحداث. يحدد رقم حدوث السلسلة الفرعية التي تم البحث عنها في السلسلة المصدر.

مثال 9. في السطر "مرحبا بالعالم!" تحديد موضع آخر تواجد للحرف "و".

PositionNumber = StrFind("مرحبًا بالعالم!"، "و"، Search Direction.End)؛ تقرير (رقم الوظيفة)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض رقم آخر تواجد للرمز "و": 9.

VReg

فيريج(<Строка>) . يحول كافة الأحرف في السلسلة المحددة في 1s8 إلى أحرف كبيرة.

المثال 10: تحويل السلسلة "hello World!" إلى الحالة العليا.

StringVreg = VReg("مرحبا بالعالم!"); تقرير(StringVreg);

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "HELLO WORLD!"

نريج

نريج(<Строка>) . يحول كافة أحرف السلسلة المحددة في 1s 8 إلى أحرف صغيرة.

مثال 11: تحويل السلسلة "HELLO WORLD!" إلى حالة الأحرف الصغيرة.

StringNreg = NReg("مرحبا بالعالم!"); تقرير(StringVreg);

ستكون نتيجة تنفيذ هذا الكود هي عرض السطر "hello World!"

تريج

TReg(<Строка>) . تحويل سلسلة كما يلي: يتم تحويل الحرف الأول من كل كلمة إلى أحرف كبيرة، ويتم تحويل الأحرف المتبقية من الكلمة إلى أحرف صغيرة.

مثال 12: قم بكتابة الأحرف الأولى من الكلمات الموجودة في السطر "hello World!"

StringTreg = TReg("مرحبًا بالعالم!"); تقرير(StringTreg);

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "Hello World!"

رمز

رمز(<КодСимвола>) . يحصل على حرف من خلال رمز Unicode الخاص به.

مثال 13. أضف اليسار واليمين إلى السطر "Hello World!" الرمز ★

StringWithStars = الرمز("9733")+"مرحبًا بالعالم!"+Symbol("9733"); تقرير(StringWithStars);

ستكون نتيجة تنفيذ هذا الكود هي عرض السطر “★Hello World!★”

رمز الرمز

رمز الرمز(<Строка>, <НомерСимвола>) . يحصل على رمز حرف Unicode من السلسلة المحددة في المعلمة الأولى، الموجودة في الموضع المحدد في المعلمة الثانية.

مثال 14. اكتشف رمز الحرف الأخير في السطر "Hello World!"

سلسلة = "مرحبا بالعالم!"; CharacterCode = CharacterCode(String, StrLength(String)); إعلام(رمز الحرف);

ستكون نتيجة تنفيذ هذا الرمز هي عرض رمز الرمز "!" - 33.

سطر فارغ

سطر فارغ(<Строка>) . يتحقق مما إذا كانت السلسلة تتكون من أحرف غير مهمة فقط، أي ما إذا كانت فارغة.

مثال 15. تحقق مما إذا كانت السلسلة المكونة من ثلاث مسافات فارغة.

فارغ = EmptyString(" "); تقرير (فارغ)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض كلمة "نعم" (تعبير سلسلة لقيمة منطقية حقيقي).

استبدال الصفحة

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . يبحث عن كافة تكرارات سلسلة البحث الفرعية في السلسلة المصدر ويستبدلها بالسلسلة الفرعية البديلة.

مثال 16. في السطر "Hello World!" استبدال كلمة "السلام" بكلمة "الأصدقاء".

String = StrReplace("Hello World!", "World", "Friends"); تقرير (سلسلة)؛

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "Hello Friends!"

StrNumberLines

StrNumberRow(<Строка>) . يسمح لك بحساب عدد الأسطر في سلسلة متعددة الأسطر. للذهاب الى خط جديدفي 1S 8 يتم استخدام الرمز ملاحظة(حرف السطر الجديد).

مثال 17. تحديد عدد الأسطر في النص:
"السطر الأول
السطر الثاني
السطر الثالث"

Number = StrNumberString("السطر الأول"+Characters.PS +"السطر الثاني"+Symbols.PS +"السطر الثالث"); تقرير (رقم)؛

ستكون نتيجة تنفيذ هذا الكود عرض عدد الأسطر في النص: 3

StrGetString

سلسلة StrGetString(<Строка>, <НомерСтроки>) . الحصول على سطر في سلسلة متعددة الأسطر برقمه. يبدأ ترقيم الأسطر من 1.

مثال 18. احصل على الخط الأخيرفي النص:
"السطر الأول
السطر الثاني
السطر الثالث"

النص = "السطر الأول" + الرموز PS + "السطر الثاني" + الرموز PS + "السطر الثالث". LastRow = StrGetRow(Text, StrNumberLines(Text)); تقرير (السطر الأخير)؛

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "الخط الثالث".

عدد مرات الصفحة

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . إرجاع عدد تكرارات السلسلة الفرعية المحددة في السلسلة. الدالة حساسة لحالة الأحرف.

مثال 19. حدد عدد مرات ظهور الحرف "c" في السطر "خطوط في 1s 8.3 و8.2"، بغض النظر عن حالته.

Line = "خطوط في 1s 8.3 و8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); تقرير (عدد الحوادث)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض عدد التكرارات: 2.

يبدأ الصفحة مع

StrStartsWith(<Строка>, <СтрокаПоиска>) . التحقق مما إذا كانت السلسلة التي تم تمريرها في المعلمة الأولى تبدأ بالسلسلة الموجودة في المعلمة الثانية.

مثال 20. تحديد ما إذا كان رقم التعريف الضريبي (TIN) للطرف المقابل المحدد يبدأ بالرقم 1. أدخل المتغير الطرف المقابل الأطراف المقابلة.

TIN = Counterparty.TIN; StartsUNits = StrStartsWith(TIN, "1"); إذا بدأ بالوحدات ثم // الكود الخاص بك EndIf؛

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . التحقق مما إذا كانت السلسلة التي تم تمريرها في المعلمة الأولى تنتهي بالسلسلة الموجودة في المعلمة الثانية.

مثال 21. تحديد ما إذا كان رقم التعريف الضريبي (TIN) للطرف المقابل المحدد ينتهي بالرقم 2. أدخل المتغير الطرف المقابليتم تخزين إشارة إلى عنصر الدليل الأطراف المقابلة.

TIN = Counterparty.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); إذا EndsInTwo ثم // الكود الخاص بك EndIf؛

تقسيم الصفحة

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . يقسم سلسلة إلى أجزاء باستخدام الأحرف المحددة ويكتب السلاسل الناتجة في مصفوفة. مخازن المعلمة الأولى سلسلة المصدر، والثاني يحتوي على سطر يحتوي على الفاصل، والثالث يشير إلى ما إذا كان ينبغي كتابته في المصفوفة خطوط فارغة(تقصير حقيقي).

مثال 22. لنحصل على سلسلة تحتوي على أرقام مفصولة بالرمز "؛"، احصل على مصفوفة من الأرقام من السلسلة.

سلسلة = "1؛ 2؛ 3"؛ Array = StrDivide(String, ";"); For Count = 0 By Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count])); صفيف الاستثناء[Sch] = 0; EndAttemptsEndCycle;

نتيجة للتنفيذ، سيتم الحصول على مجموعة من الأرقام من 1 إلى 3.

اتصال الصفحة

ستركونيكت(<Строки>, <Разделитель>) . يحول مصفوفة السلاسل من المعلمة الأولى إلى سلسلة تحتوي على كافة عناصر المصفوفة مفصولة بالمحدد المحدد في المعلمة الثانية.

مثال 23. باستخدام مصفوفة الأرقام من المثال السابق، احصل على السلسلة الأصلية.

للحساب = 0 بواسطة Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); EndCycle; Row = StrConnect(Array, ";");

تم تنفيذه في الإصدار 8.3.6.1977.

لقد قمنا بتوسيع مجموعة الوظائف المصممة للعمل مع السلاسل. لقد فعلنا ذلك لنمنحك أدوات أكثر تقدمًا لتحليل بيانات السلسلة. ستكون الوظائف الجديدة ملائمة ومفيدة في المهام التكنولوجية لتحليل النص. في المهام المتعلقة بتحليل النص الذي يحتوي على بيانات في شكل منسق. يمكن أن يكون هذا تحليلًا لبعض الملفات المستلمة من الجهاز، أو على سبيل المثال تحليل السجل التكنولوجي.

يمكنك تنفيذ جميع الإجراءات التي تؤدي وظائف جديدة من قبل. استخدام خوارزميات أكثر أو أقل تعقيدًا مكتوبة بلغة مدمجة. ولذلك، فإن الوظائف الجديدة لا تمنحك أي قدرات جديدة بشكل أساسي. ومع ذلك، فهي تسمح لك بتقليل كمية التعليمات البرمجية وجعل التعليمات البرمجية أبسط وأكثر قابلية للفهم. بالإضافة إلى ذلك، فهي تسمح لك بتسريع تنفيذ الإجراءات. لأن الوظائف المطبقة في النظام الأساسي تعمل بالطبع بشكل أسرع من خوارزمية مماثلة مكتوبة بلغة مدمجة.

وظيفة التنسيق StrTemplate()

تقوم هذه الدالة باستبدال المعلمات في سلسلة. غالبا ما تنشأ الحاجة إلى مثل هذا التحويل، على سبيل المثال، عند عرض رسائل التحذير. بناء جملة هذه الوظيفة كما يلي:

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

<Шаблон>- هذه هي السلسلة التي تحتاج إلى استبدال تمثيلات المعلمات بها.

<Значение1> , ... <Значение10>- هذه هي المعلمات (عشرة كحد أقصى)، والتي يجب استبدال تمثيلاتها في السلسلة.

للإشارة إلى مكان معين في القالب حيث تريد إجراء الاستبدال، تحتاج إلى استخدام علامات مثل %1، ... %10. يجب أن يتطابق عدد العلامات الموجودة في القالب وعدد المعلمات التي تحتوي على قيم.

على سبيل المثال، نتيجة تنفيذ مثل هذا العامل:

سيكون هناك خط:

خطأ في البيانات في السطر 2 (نوع التاريخ مطلوب)

وظيفة للعمل مع سلاسل StrCompare ()

تقارن هذه الدالة سلسلتين بطريقة غير حساسة لحالة الأحرف. على سبيل المثال، مثل هذا:

يمكنك تنفيذ نفس الإجراء مسبقًا باستخدام كائن مقارنة القيمة:

ومع ذلك، يبدو استخدام الميزة الجديدة أسهل. وإلى جانب ذلك، تعمل الوظيفة، على عكس كائن مقارنة القيمة، في كل من العميل الرقيق وعميل الويب.

وظائف للعمل مع السلاسل StrStartsWith(), StrEndsAt()

تحدد هذه الوظائف ما إذا كانت السلسلة تبدأ بسلسلة فرعية محددة أو ما إذا كانت السلسلة تنتهي بسلسلة فرعية محددة. ليس من الصعب تنفيذ خوارزمية هذه الوظائف في لغة مضمنة، ولكن وجودها يسمح لك بكتابة تعليمات برمجية أكثر وضوحًا وأكثر قابلية للفهم. وهم يعملون بشكل أسرع.

على سبيل المثال، من السهل استخدامها في عبارة If:

وظائف للعمل مع السلاسل StrDivide() وStrConnect()

تقوم هذه الوظائف بتقسيم السلسلة إلى أجزاء باستخدام محدد محدد. أو على العكس من ذلك، يقومون بدمج عدة أسطر في واحد، وإدراج الفاصل المحدد بينهما. إنها ملائمة لإنشاء أو تحليل السجلات والمجلات التكنولوجية. على سبيل المثال، يمكنك بسهولة تحليل إدخال السجل التكنولوجي إلى أجزاء مناسبة لمزيد من التحليل:

وظيفة للعمل مع سلاسل StrFind ()

بدلاً من وظيفة Find() القديمة، قمنا بتنفيذها ميزة جديدة، والذي يحتوي على ميزات إضافية:

  • البحث في اتجاهات مختلفة (من البداية، من النهاية)؛
  • البحث من موضع محدد؛
  • العثور على حدث مع الرقم المحدد(الثاني والثالث وما إلى ذلك).

في الواقع، فهو يكرر قدرات الوظيفة القديمة. يتم ذلك من أجل الحفاظ على التوافق مع الوحدات التي تم تجميعها في الإصدارات الأقدم. من المستحسن عدم استخدام وظيفة Find () القديمة بعد الآن.

فيما يلي مثال لاستخدام إمكانيات البحث الجديدة. يكون البحث العكسي مفيدًا عندما تحتاج إلى الجزء الأخير من سلسلة رسمية، على سبيل المثال، الاسم الكاملالملف في URL. والبحث من موضع محدد يساعد في الحالات التي تحتاج فيها إلى البحث في جزء معروف، وليس في السطر بأكمله.