در نسخه 8.3.6.1977 اجرا شده است.

ما مجموعه توابع را برای کار با رشته ها گسترش داده ایم. ما این کار را انجام دادیم تا ابزار پیشرفته تری را برای تجزیه داده های رشته به شما ارائه دهیم. توابع جدید در کارهای تکنولوژیکی تحلیل متن راحت و مفید خواهند بود. در کارهای مربوط به تجزیه متن که حاوی داده های قالب بندی شده است. این می تواند تجزیه و تحلیل برخی از پرونده های دریافت شده از تجهیزات باشد ، یا به عنوان مثال ، تجزیه و تحلیل یک گزارش فناوری.

تمام عملکردهایی که عملکردهای جدیدی را انجام می دهند ، قبلاً هم می توانستید انجام دهید. با کمک الگوریتم های کم و بیش پیچیده ای که به زبان تعبیه شده نوشته شده اند. بنابراین ، عملکردهای جدید هیچ امکان اساسی جدیدی به شما نمی دهند. با این حال ، آنها می توانند مقدار کد را کاهش دهند ، کد را ساده تر و آسان تر درک کنند. و علاوه بر این ، آنها به شما امکان می دهند سرعت اجرای اقدامات را افزایش دهید. از آنجا که توابع پیاده سازی شده در سیستم عامل ، البته سریعتر از الگوریتمی مشابه است که به زبان تعبیه شده نوشته شده است.

تابع قالب بندی StrPattern ()

این تابع پارامترها را در یک رشته جایگزین می کند. نیاز به چنین تبدیل اغلب به عنوان مثال هنگام نمایش پیام های هشدار دهنده ایجاد می شود. نحو این تابع به شرح زیر است:

صفحه صفحه (<Шаблон>, <Значение1-Значение10>)

<Шаблон> رشته ای است که می تواند جایگزین نمایش های پارامتر شود.

<Значение1> , ... <Значение10> - این پارامترها (حداکثر ده) هستند ، که نمایش آنها باید در رشته جایگزین شود

برای نشان دادن مکان مشخصی در الگو که می خواهید جایگزینی را انجام دهید ، باید از نشانه هایی مانند٪ 1، ...٪ 10 استفاده کنید. تعداد نشانگرهای استفاده شده در الگو و تعداد پارامترهای حاوی مقادیر باید مطابقت داشته باشند.

به عنوان مثال ، نتیجه اجرای چنین عبارتی:

یک خط وجود خواهد داشت:

خطای داده در خط 2 (نوع تاریخ مورد نیاز است)

عملکرد کار با رشته ها Str مقایسه ()

این تابع دو رشته را به صورت حساس به حالت کوچک مقایسه می کند. به عنوان مثال ، مانند این:

شما می توانستید همان عملکرد قبلی را با استفاده از مقادیر مقایسه مقدار انجام دهید:

با این حال ، استفاده از عملکرد جدید ساده تر به نظر می رسد. علاوه بر این ، تابع ، برخلاف شی مقایسه مقادیر ، هم در سرویس گیرنده نازک و هم در سرویس گیرنده وب کار می کند.

توابع کار با رشته ها RowStart With ()، RREnd With ()

این توابع تعیین می کند که آیا یک رشته با یک زیر رشته مشخص شروع می شود یا اینکه با یک زیر رشته مشخص به پایان می رسد. اجرای الگوریتم این توابع به زبان تعبیه شده آسان است ، اما وجود آنها به شما امکان می دهد کدی تمیزتر و قابل فهم بنویسید. و سریعتر کار می کنند.

به عنوان مثال ، استفاده از آنها در If مناسب است:

توابع برای کار با رشته های StrSplit () ، StrConnect ()

این توابع رشته را طبق جداکننده مشخص شده به قسمتهایی تقسیم می کنند. یا برعکس ، آنها چندین خط را به یکی متصل می کنند ، جدا کننده انتخاب شده را بین آنها وارد می کنند. آنها برای ایجاد یا تجزیه و تحلیل سیاهههای مربوط ، log فن آوری مناسب هستند. به عنوان مثال ، شما می توانید به راحتی یک رکورد از یک ثبت فناوری را به قطعات مناسب برای تجزیه و تحلیل بیشتر جدا کنید:

عملکرد برای کار با رشته های StrFind ()

به جای تابع Find () قدیمی ، ما تابع جدیدی را اجرا کرده ایم که دارای قابلیت های اضافی است:

  • جستجو در جهات مختلف (از ابتدا ، از انتها) ؛
  • جستجو از یک موقعیت مشخص
  • حادثه ای را با تعداد مشخص شده جستجو کنید (دوم ، سوم و غیره).

در واقع ، این قابلیت های عملکرد قدیمی را کپی می کند. این کار به منظور حفظ سازگاری با ماژول های گردآوری شده در نسخه های قدیمی تر انجام می شود. توصیه می شود دیگر از عملکرد قدیمی Find () استفاده نکنید.

در زیر مثالی با استفاده از قابلیت های جستجوی جدید آورده شده است. جستجوهای عقب هنگامی مفید هستند که شما به آخرین قطعه رشته رسمی مانند نام پرونده کاملاً واجد شرایط در URL نیاز داشته باشید. و جستجو از یک موقعیت مشخص در مواردی که نیاز به جستجو در یک قطعه شناخته شده دارید و نه در کل رشته به شما کمک می کند.

مکانیزم های کمی برای کار با رشته ها در نمایشگرهای 1C وجود دارد. ابتدا می توان خطوط را اضافه کرد. ثانیا ، شما می توانید یک رشته زیر رشته را بگیرید. سوم ، رشته ها را می توان از جمله براساس الگو مقایسه کرد. این احتمالاً تمام کاری است که می توانید با رشته ها انجام دهید.

اتصال رشته

برای افزودن رشته ها در پرس و جو ، از عملیات "+" استفاده می شود. فقط رشته هایی با طول محدود قابل جمع شدن هستند.

SELECT "Name:" + طرفین طرف مقابل. نام AS Column1 FROM Directory. پیمانکاران AS Counterparties WHERE متعاهدین. Link \u003d & Link

عملکرد زیر رشته

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

آنالوگ تابع Environment () از مدل شی. تابع Substring () می تواند بر روی داده های نوع رشته اعمال شود و به شما امکان می دهد یک قطعه را انتخاب کنید <Строки> با شماره کاراکتر شروع می شود <НачальнаяПозиция> (نویسه های رشته از 1 شماره گذاری می شوند) و طول <Длина> شخصیت ها. نتیجه ارزیابی عملکرد دارای یک نوع رشته با طول متغیر است و اگر طول نامحدود در نظر گرفته شود <Строка> دارای طول و پارامتر نامحدود است <Длина> ثابت نیست یا از 1024 بیشتر است.

اگر طول رشته کمتر از مشخص شده در پارامتر دوم باشد ، در این صورت تابع یک رشته خالی را برمی گرداند.

توجه! استفاده از تابع SUBSTRING () برای تبدیل رشته هایی با طول نامحدود به رشته هایی با طول محدود توصیه نمی شود. بهتر است به جای آن از عملیات ریخته گری EXPRESS () استفاده کنید.

عملکرد مانند

اگر ما باید مطمئن شویم که یک ویژگی رشته با معیارهای خاصی مطابقت دارد ، آن را مقایسه می کنیم:

انتخاب طرفین طرف مقابل. نام AS Column1 از فهرست. طرفین AS مخالفین WHERE طرفین. نام \u003d "گازپروم"

اما اگر می خواهید مقایسه پیچیده تری داشته باشید ، چه می کنید؟ نه فقط برابری یا نابرابری ، بلکه مانند الگویی خاص است؟ این دقیقاً همان کاری است که عملکرد LIKE برای آن ایجاد شده است.

LIKE - اپراتور برای بررسی یک رشته مانند الگو. آنالوگ LIKE در SQL.

عملگر LIKE به شما این امکان را می دهد که مقدار عبارتی که در سمت چپ آن مشخص شده را با رشته الگویی که در سمت راست مشخص شده مقایسه کنید. مقدار عبارت باید از نوع string باشد. اگر مقدار عبارت با الگو مطابقت داشته باشد ، عملگر TRUE را برمی گرداند ، در غیر این صورت نادرست است.

نویسه های زیر در رشته الگو نویسه های خدماتی هستند و معنای متفاوتی با کاراکتر رشته دارند:

  • ٪ (درصد): توالی حاوی هر تعداد نویسه دلخواه.
  • _ (زیرخط): یک شخصیت دلخواه ؛
  • […] (یک یا چند نویسه در پرانتز مربع): هر نویسه منفرد موجود در کروشه های مربع. این شمارش ممکن است شامل محدوده هایی باشد ، به عنوان مثال ، a-z ، به معنی یک شخصیت دلخواه در محدوده ، از جمله انتهای محدوده.
  • [^…] (در براکت های مربع یک علامت نفی و به دنبال آن یک یا چند نویسه وجود دارد): هر نویسه منفرد به غیر از علامت های ذکر شده بعد از علامت نفی.

هر نماد دیگری به معنای خودش است و معنای اضافی ندارد. اگر یکی از نویسه های ذکر شده باید به عنوان خودش ثبت شود ، پس باید قبل از آن باشد<Спецсимвол>... خودش<Спецсимвол> (هر کاراکتر مناسب) بعد از کلمه کلیدی SPECIAL CHARACTER در همان عبارت تعریف می شود.

نوع "رشته" در همه زبانهای برنامه نویسی یافت می شود. ابتدایی است و در 1C توابع زیادی برای کار با آن وجود دارد. در این مقاله ، با استفاده از مثالهایی ، روشهای مختلف کار با انواع رشته ها را در 1C 8.3 و 8.2 از نزدیک بررسی خواهیم کرد.

خط

به منظور تبدیل یک متغیر از هر نوع به یک رشته ، تابعی با همان نام "String ()" وجود دارد. پارامتر ورودی متغیر خواهد بود که نمایش رشته آن باید بدست آید.

رشته (نادرست) // "خیر" را برمی گرداند
رشته (12345) // "12 345" را برمی گرداند
رشته (CurrentDate ()) // 07/21/2017 11:55:36

امکان تبدیل نه تنها انواع ابتدایی به یک رشته ، بلکه سایر موارد نیز وجود دارد ، به عنوان مثال ، عناصر دایرکتوری ها ، اسناد.

SocrLP ، SocrL ، SocrP

متغیر نوع رشته به عنوان پارامترهای ورودی این توابع استفاده می شود. توابع نویسه های ناچیز (فضاها ، بازگشت کالسکه و سایر موارد) را حذف می کنند: به ترتیب از سمت چپ و راست ، فقط از سمت چپ و فقط از سمت راست.

اختصار ("فضاهای هر دو طرف حذف خواهد شد") // "فضاهای هر دو طرف حذف خواهند شد"
خلاصه شده ("فضاهای هر دو طرف حذف خواهد شد") // "فضاهای سمت چپ حذف خواهد شد"
اختصار ("فضاهای هر دو طرف حذف خواهد شد") // "فضاهای سمت راست حذف خواهد شد"

لئو ، راست ، چهارشنبه

این توابع به شما امکان می دهد بخشی از یک رشته را کوتاه کنید. تابع "Lion" بخشی از رشته را از سمت چپ آن به طول مشخص شده برمی گرداند. عملکرد "Right ()" یکسان است ، اما برش در سمت راست انجام می شود. تابع "Med ()" به شما امکان می دهد تعداد نویسی را که رشته از آن انتخاب می شود و طول آن را مشخص کنید.

شیر ("متغیر رشته" ، 4) // "Stro" را برمی گرداند
راست ("متغیر رشته" ، 7) // "متغیر" را برمی گرداند
Wed ("متغیر رشته" ، 2 ، 5) // "troco" را برمی گرداند

طول Str

این تابع تعداد کاراکترهایی را که در متغیر رشته وجود دارند تعیین می کند.

StrLength ("Word") // نتیجه اجرا شماره 5 خواهد بود

برای پیدا کردن

این تابع امکان جستجوی بخشی از رشته در هر متغیر رشته را فراهم می کند. مقدار برگشتی عددی خواهد بود که موقعیت ابتدای رشته پیدا شده را نشان می دهد. اگر مطابقت پیدا نشد ، صفر بر می گردد.

لطفا توجه داشته باشید که جستجوها به حروف کوچک و بزرگ حساس هستند. اگر رشته اصلی بیش از یک مورد از رشته های جستجوگر جستجو داشته باشد ، این تابع شروع وقوع اول را برمی گرداند.

("یک ، دو ، یک ، دو ، سه" ، "دو") را پیدا کنید // تابع عدد 6 را برمی گرداند

خط خالی

با استفاده از این عملکرد می توانید خالی بودن یک رشته را تعیین کنید. شخصیت های ناچیز مانند فضا ، بازگشت کالسکه و دیگران نادیده گرفته می شوند.

EmptyString ("Pupkin Vasily Ivanovich") // تابع مقدار False را برمی گرداند
EmptyString ("") // تابع True را برمی گرداند

VReg ، NReg ، Treg

این توابع برای مقایسه و تبدیل متغیرهای رشته بسیار مفید هستند. Breg () رشته اصلی را با بزرگ ، HPreg () را با حروف کوچک برمی گرداند و TPreg () آن را قالب بندی می کند تا اولین کاراکتر هر کلمه بزرگ با حروف بزرگ و همه حروف بعدی کوچک باشد.

Vreg ("مدیر کل") // مقدار برگشتی - "مدیر کل"
NReg ("مدیر کل") // مقدار برگشتی - "مدیر کل"
TREG ("مدیر کل") // مقدار برگشتی - "مدیر کل"

جایگزین صفحه

این عملکرد مشابه جایگزینی در ویرایشگرهای متن است. به شما امکان می دهد یک کاراکتر یا مجموعه ای از کاراکترها را در متغیرهای رشته ای جایگزین شخصیت دیگر کنید.

StrReplace ("قرمز ، سفید ، زرد" ، "،" ، "؛") // "قرمز برمی گردد؛ سفید؛ زرد"

رشته های StrNumberStrings

این تابع به شما امکان می دهد تعداد متغیرهای جداشده از طریق حمل کالا را در یک متغیر متنی تعیین کنید.

حلقه در مثال زیر از سه دایره عبور می کند زیرا عملکرد RowNumber به 3 باز می گردد:

برای ind \u003d 1 توسط StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") حلقه
<тело цикла>
پایان چرخه ؛

StrGetString

این عملکرد با متن چند خطی به همان روش قبلی کار می کند. به شما امکان می دهد یک رشته خاص را از متغیر متن دریافت کنید.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3"، 2) // "String2" را برمی گرداند

تعداد وقایع

این تابع تعداد وقایع یک کاراکتر یا زیر رشته را در رشته جستجو محاسبه می کند.

Row of Attachments ("a؛ b؛ c؛ d؛"، "؛") // تابع عدد 4 را برمی گرداند

نماد و رمز نماد

این توابع به شما امکان می دهد یک شخصیت را با کد Unicode آن بدست آورید و همچنین این کد را توسط خود کاراکتر تعیین کنید.

SymbolCode ("A") // تابع شماره 1 040 را برمی گرداند
SymbolCode (1040) // عملکرد "A" را برمی گرداند

کارهای مکرر هنگام کار با رشته ها

رشته های متصل کننده

برای بهم پیوستن چندین رشته (برای انجام اتصال) ، استفاده از عملگر جمع کافی است.

"Line 1 ″ +" Line 2 ″ // نتیجه افزودن دو رشته "Line 1 Line 2" خواهد بود

تبدیل نوع

برای تبدیل یک نوع به رشته ، به عنوان مثال ، مراجعه به یک عنصر فرهنگ لغت ، یک عدد و غیره ، استفاده از تابع "String ()" کافی است. توابعی مانند "اختصار ()" نیز متغیرها را به یک رشته تبدیل می کند ، اما بلافاصله با کوتاه کردن نویسه های ناچیز.

رشته (1000) // "1000" را برمی گرداند

لطفا توجه داشته باشید که هنگام تبدیل یک عدد به یک رشته ، برنامه به طور خودکار یک فضای جدا کننده هزار را اضافه می کند. به منظور جلوگیری از این ، می توانید از ساختارهای زیر استفاده کنید:

StrReplace (رشته (1000) ، نویسه ها. NPP ، "") // "1000" را برمی گرداند

رشته (قالب (1000 ، "ChG \u003d")) // "1000" را برمی گرداند

نقل قول ها در یک رشته

اغلب اوقات شما باید با نیاز به تعیین علامت های نقل قول در یک متغیر رشته کنار بیایید. این می تواند یا یک متن درخواست باشد که در تنظیم کننده نوشته شده است یا فقط یک متغیر است. برای حل این مشکل ، فقط باید دو علامت نقل قول تنظیم کنید.

عنوان \u003d رشته ("Horns and Hooves LLC" - این ما هستیم!) // "Horns and Hoofs LLC - همان ما هستیم" را برمی گرداند.

چند خط ، قطع خط

برای ایجاد یک متن چند خطی ، کافی است شخصیت های خط شکسته (Symbols.PS) را به آن اضافه کنید.

MultilineText \u003d "خط اول" + Symbols.PS + "خط دوم"

نحوه حذف فضاها

برای حذف فضاهای سمت راست یا چپ ، می توانید از تابع "اختصار ()" (و همچنین "اختصار ()" و "اختصار ()") استفاده کنید:

StringNoSpaces \u003d اختصار LP ("بسیاری از حروف") // تابع مقدار "بسیاری از حروف" را برمی گرداند

اگر پس از تبدیل یک عدد به یک رشته ، باید فضاهای بدون شکست را حذف کنید ، از ساختار زیر استفاده کنید:

StringNoSpaces \u003d StrReplace (رشته (99999) ، کاراکترها. NPP ، "") // "99999" را برمی گرداند

همچنین ، برنامه نویسان اغلب از ساختار زیر استفاده می کنند ، که به شما امکان می دهد تمام فضاهای متغیر متن را با یک کاراکتر دیگر حذف یا جایگزین کنید:

StringNoSpaces \u003d StrReplace ("خوش آمدید" ، "" ، "") // "سلام" را برمی گرداند

مقایسه رشته ها با یکدیگر

اصطلاحات را می توان با علامت برابر معمول مقایسه کرد. مقایسه به حروف کوچک و بزرگ حساس است.

"Hello" \u003d "سلام" // False را برمی گرداند
"Hello" \u003d "سلام" // درست باز خواهد گشت
"سلام" \u003d "خداحافظ" // False برمی گردد

یادداشت هایی از شیشه به دنبال

2014/08/18 توابع جدید برای کار با رشته ها

در نسخه 8.3.6.1977 اجرا شده است.

ما مجموعه توابع را برای کار با رشته ها گسترش داده ایم. ما این کار را انجام دادیم تا ابزار پیشرفته تری را برای تجزیه داده های رشته به شما ارائه دهیم. توابع جدید در کارهای تکنولوژیکی تحلیل متن راحت و مفید خواهند بود. در کارهای مربوط به تجزیه متن که حاوی داده های قالب بندی شده است. این می تواند تجزیه و تحلیل برخی از پرونده های دریافت شده از تجهیزات باشد ، یا به عنوان مثال ، تجزیه و تحلیل یک گزارش فناوری.

تمام عملکردهایی که عملکردهای جدیدی را انجام می دهند ، قبلاً هم می توانستید انجام دهید. با کمک الگوریتم های کم و بیش پیچیده ای که به زبان تعبیه شده نوشته شده اند. بنابراین ، عملکردهای جدید هیچ امکان اساسی جدیدی به شما نمی دهند. با این حال ، آنها می توانند مقدار کد را کاهش دهند ، کد را ساده تر و آسان تر درک کنند. و علاوه بر این ، آنها به شما امکان می دهند سرعت اجرای اقدامات را افزایش دهید. از آنجا که توابع پیاده سازی شده در سیستم عامل ، البته سریعتر از الگوریتمی مشابه است که به زبان تعبیه شده نوشته شده است.

تابع قالب بندی StrPattern ()

این تابع پارامترها را در یک رشته جایگزین می کند. نیاز به چنین تبدیل اغلب به عنوان مثال هنگام نمایش پیام های هشدار دهنده ایجاد می شود. نحو این تابع به شرح زیر است:

صفحه صفحه (<Шаблон>, <Значение1-Значение10>)

<Шаблон> رشته ای است که می تواند جایگزین نمایش های پارامتر شود.

<Значение1> , ... <Значение10> - این پارامترها (حداکثر ده) هستند ، که نمایش آنها باید در رشته جایگزین شود

برای نشان دادن مکان مشخصی در الگو که می خواهید جایگزینی را انجام دهید ، باید از نشانه هایی مانند٪ 1، ...٪ 10 استفاده کنید. تعداد نشانگرهای استفاده شده در الگو و تعداد پارامترهای حاوی مقادیر باید مطابقت داشته باشند.

به عنوان مثال ، نتیجه اجرای چنین عبارتی:

یک خط وجود خواهد داشت:

خطای داده در خط 2 (نوع تاریخ مورد نیاز است)

عملکرد کار با رشته ها Str مقایسه ()

این تابع دو رشته را به صورت حساس به حالت کوچک مقایسه می کند. به عنوان مثال ، مانند این:

شما می توانستید همین عمل را قبل از استفاده از جسم انجام دهید مقایسه ارزشها:

با این حال ، استفاده از عملکرد جدید ساده تر به نظر می رسد. و علاوه بر این ، عملکرد ، برخلاف جسم مقایسه ارزشها، هم در تین کلاینت و هم در کلاینت وب کار می کند.

توابع کار با رشته ها RowStart With ()، RREnd With ()

این توابع تعیین می کند که آیا یک رشته با یک زیر رشته مشخص شروع می شود یا اینکه با یک زیر رشته مشخص به پایان می رسد. اجرای الگوریتم این توابع به زبان تعبیه شده آسان است ، اما وجود آنها به شما امکان می دهد کدی تمیزتر و قابل فهم بنویسید. و سریعتر کار می کنند.

به عنوان مثال ، استفاده از آنها در اپراتور راحت است اگر:

توابع برای کار با رشته های StrSplit () ، StrConnect ()

این توابع رشته را طبق جداکننده مشخص شده به قسمتهایی تقسیم می کنند. یا برعکس ، آنها چندین خط را به یکی متصل می کنند ، جدا کننده انتخاب شده را بین آنها وارد می کنند. آنها برای ایجاد یا تجزیه و تحلیل سیاهههای مربوط ، log فن آوری مناسب هستند. به عنوان مثال ، شما می توانید به راحتی یک رکورد از یک ثبت فناوری را به قطعات مناسب برای تجزیه و تحلیل بیشتر جدا کنید:

عملکرد برای کار با رشته های StrFind ()

به جای عملکرد قدیمی برای پیدا کردن () ما یک ویژگی جدید را اجرا کرده ایم که دارای ویژگی های اضافی است:

  • جستجو در جهات مختلف (از ابتدا ، از انتها) ؛
  • جستجو از یک موقعیت مشخص
  • حادثه ای را با تعداد مشخص شده جستجو کنید (دوم ، سوم و غیره).

در واقع ، این قابلیت های عملکرد قدیمی را کپی می کند. این کار به منظور حفظ سازگاری با ماژول های گردآوری شده در نسخه های قدیمی تر انجام می شود. عملکرد قدیمی برای پیدا کردن () استفاده مجدد توصیه نمی شود.

در زیر مثالی با استفاده از قابلیت های جستجوی جدید آورده شده است. جستجوهای عقب هنگامی مفید هستند که شما به آخرین قطعه رشته رسمی مانند نام پرونده کاملاً واجد شرایط در URL نیاز داشته باشید. و جستجو از یک موقعیت مشخص در مواردی که نیاز به جستجو در یک قطعه شناخته شده دارید و نه در کل رشته به شما کمک می کند.

رشته های موجود در 1C 8.3 در زبان داخلی 1C مقادیر از نوع ابتدایی هستند خط... مقادیر این نوع شامل یک رشته Unicode با طول دلخواه است. متغیرها از نوع رشته مجموعه ای از نویسه ها هستند که در علامت های نقل قول محصور شده اند.

مثال 1. بیایید یک متغیر رشته ای را با متن ایجاد کنیم.

StringVariable \u003d "سلام به جهان!"

توابع کار با رشته ها در 1c 8.3

این بخش توابع اصلی را فراهم می کند که به شما امکان می دهد خطوط را در 1c تغییر دهید یا اطلاعات موجود در آنها را تجزیه و تحلیل کنید.

طول Str

StrLength (<Строка>) ... تعداد کاراکترهای موجود در رشته عبور شده در پارامتر را برمی گرداند.

مثال 2. بیایید تعداد کاراکترهای خط "Hello world!" را بشماریم.

String \u003d "سلام به جهان!" تعداد کاراکترها \u003d StrLength (رشته)؛ گزارش (تعداد کاراکترها) ؛

نتیجه اجرای این کد نمایش تعداد کاراکترهای رشته خواهد بود: 11.

مخفف

AbbrL (<Строка>) ... نویسه های ناچیز را در سمت چپ اولین کاراکتر قابل توجه در رشته کوتاه می کند.
شخصیت های کوچک:

  • فضا؛
  • فضای نشکن
  • جدول بندی
  • برگشت محموله؛
  • ترجمه خطی
  • ترجمه فرم (صفحه).

مثال 3. تمام فضاها را از سمت چپ خط "جهان!" حذف کنید. و رشته "Hello" را به آن وصل کنید.

رشته \u003d به اختصار ("صلح!") ؛ رشته \u003d "سلام" + رشته؛ گزارش (رشته) ؛

نتیجه اجرای این کد ، خروجی خط "Hello world!" خواهد بود.

مخفف

مخفف (<Строка>) ... نویسه های ناچیز را در سمت راست اولین شخصیت قابل توجه در رشته کوتاه می کند.

مثال 4. فرم های "سلام" و "جهان!" عبارت "سلام به جهان!"

رشته \u003d کوتاه شده ("سلام") + "" + خلاصه شده ("جهان!") ؛ گزارش (رشته) ؛

SokrLP

SocrLP (<Строка>) ... نویسه های ناچیز را در سمت راست اولین کاراکتر قابل توجه در رشته کوتاه می کند و همچنین نویسه های ناچیز را در سمت چپ اولین کاراکتر قابل توجه در رشته قرار می دهد. این تابع بیشتر از دو مورد قبلی استفاده می شود ، زیرا همه کاره است.

مثال 5. نویسه های ناچیز در سمت چپ و راست را به نام طرف مقابل حذف کنید.

Counterparty \u003d Directories.Contractors.NaytiPoRequisite ("INN" ، "0777121211") ؛ CounterpartyObject \u003d Counterparty.GetObject ()؛ CounterpartyObject.Name \u003d ShortLP (CounterpartyObject.Name)؛ CounterpartyObject.Write ()؛

یک شیر

یک شیر(<Строка>, <ЧислоСимволов>) ... اولین کاراکترهای رشته را دریافت می کند ، تعداد کاراکترها در پارامتر مشخص شده است تعداد کاراکترها

مثال 6. ساختار را وارد کنید کارمند شامل نام ، نام خانوادگی و نام خانوادگی کارمند باشد. رشته ای با نام خانوادگی و حروف اول بدست آورید.

نام اولیه \u003d لئو (نام کارمند ، 1) ؛ Patronymic Initial \u003d Leo (کارمند ، Patronymic ، 1) ؛ نام کامل \u003d کارمند. نام خانوادگی + "" + نام اولیه + "." + Initial of Patronymic + "."؛

درست

درست (<Строка>, <ЧислоСимволов>) ... آخرین کاراکترهای یک رشته را دریافت می کند ، تعداد کاراکترها در پارامتر مشخص شده است تعداد کاراکترها اگر تعداد کاراکترهای مشخص شده از طول رشته بیشتر باشد ، کل رشته برمی گردد.

مثال 7. فرض کنید که انتهای یک متغیر رشته ای دارای یک تاریخ با قالب "yyyymmdd" باشد ، یک رشته با تاریخ دریافت کنید و آن را به نوع تبدیل کنید تاریخ.

String \u003d "تاریخ جاری: 20170910"؛ StringDate \u003d راست (رشته ، 8) ؛ تاریخ \u003d تاریخ (StringDate) ؛

چهار شنبه

چهار شنبه (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... یک رشته از یک رشته عبور شده به عنوان یک پارامتر دریافت می کند خط، از نویسه ای شروع می شود که شماره آن در پارامتر مشخص شده است شروع شماره و طول منتقل شده به پارامتر تعداد کاراکترهاشماره گذاری نویسه ها در خط از 1 شروع می شود. اگر پارامتر شروع شماره مقداری مشخص شده است که کمتر یا برابر با صفر است ، سپس پارامتر مقدار 1 را به خود می گیرد. اگر پارامتر تعداد نمادها مشخص نشده است ، سپس نویسه های انتهای خط انتخاب می شوند.

مثال 8. اجازه دهید متغیر رشته از موقعیت نهم حاوی کد منطقه باشد ، باید آن را دریافت کرده و در یک خط جداگانه بنویسید.

خط \u003d "منطقه: 99 مسکو"؛ منطقه \u003d چهارشنبه (خط ، 9 ، 2) ؛

جستجو کردن

جستجو کردن (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... جستجو برای زیر رشته مشخص شده در رشته ، شماره موقعیت اولین کاراکتر زیر رشته پیدا شده را برمی گرداند. پارامترهای این عملکرد را در نظر بگیرید:

  • خط... رشته منبع؛
  • زیر رشته... جستجوی زیر رشته
  • جهت جستجو... جهت جستجوی یک رشته فرعی را در یک رشته مشخص می کند. می تواند مقادیر را بدست آورد:
    • جهت جستجو. از شروع;
    • جهت جستجو;
  • موقعیت اولیه... موقعیت رشته ای را که جستجو از آن آغاز می شود مشخص می کند.
  • تعداد ورودیها... تعداد وقایع رشته فرعی مورد نظر را در رشته اصلی مشخص می کند.

مثال 9. در خط "سلام به جهان!" موقعیت آخرین وقوع نماد "و" را تعیین کنید.

PositionNumber \u003d StrNayti ("سلام به جهان!" ، "و" ، DirectionSearch.End)؛ گزارش (شماره موقعیت)

نتیجه این اجرای کد ، نمایش تعداد آخرین رویداد نماد "و" خواهد بود: 9.

VReg

BReg (<Строка>) ... همه کاراکترهای رشته مشخص شده را در 1s 8 به بزرگ تبدیل می کند.

مثال 10. رشته "hello world!" را تبدیل کنید. به حروف بزرگ

StringBreg \u003d BReg ("سلام به جهان!")؛ گزارش (StringVreg) ؛

نتیجه اجرای این کد نمایش خط "HELLO WORLD!" خواهد بود.

نرگس

HPreg (<Строка>) ... همه نویسه های رشته مشخص شده را در 1s 8 به حروف کوچک تبدیل می کند.

مثال 11. رشته "HELLO WORLD!" را تبدیل کنید. به حروف کوچک

StringNreg \u003d НReg ("سلام جهانی!")؛ گزارش (StringVreg) ؛

نتیجه اجرای این کد خروجی خط "سلام به جهان" خواهد بود.

ترگ

Treg (<Строка>) ... یک رشته را به صورت زیر تبدیل می کند: شخصیت اول هر کلمه به بزرگ تبدیل می شود ، شخصیت های باقیمانده کلمه به حروف کوچک تبدیل می شوند.

مثال 12. حروف اول کلمات را در رشته "hello world!" بزرگ بنویسید.

StringTreg \u003d Treg ("سلام جهان!")؛ گزارش (StringTreg) ؛

نتیجه اجرای این کد خروجی خط "Hello World!" خواهد بود.

سمبل

سمبل(<КодСимвола>) ... شخصیتی را با کد Unicod خود دریافت می کند.

مثال 13. به چپ و راست به خط "Hello World!" اضافه کنید. نماد

StringWithStars \u003d نماد ("9733") + "سلام به جهان!" + نماد ("9733")؛ گزارش (StringWithStars) ؛

نتیجه این اجرای کد خروجی خط "★ سلام به جهان! ★" خواهد بود

رمز نماد

SymbolCode (<Строка>, <НомерСимвола>) ... کد نویسه Unicode را از رشته مشخص شده در پارامتر اول ، واقع در موقعیت مشخص شده در پارامتر دوم ، دریافت می کند.

مثال 14. کد آخرین کاراکتر را در "Hello World!" پیدا کنید.

رشته \u003d "سلام به جهان!" CharacterCode \u003d CharacterCode (رشته ، StrLength (رشته)) ؛ گزارش (SymbolCode) ؛

نتیجه اجرای این کد نمایش کد رمز "!" خواهد بود. - 33

خط خالی

خط خالی (<Строка>) ... بررسی می کند که آیا یک رشته فقط دارای نویسه های ناچیز است ، یعنی اگر خالی باشد.

مثال 15. خالی بودن رشته ای را که شامل سه فاصله است بررسی کنید.

خالی \u003d رشته خالی ("")؛ گزارش (خالی)

نتیجه اجرای این کد نمایش کلمه "Yes" (بیان رشته ای مقدار منطقی) خواهد بود درست است، واقعی).

جایگزین صفحه

جایگزین (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... همه وقایع رشته جستجو را در رشته اصلی پیدا می کند و آن را با رشته جایگزین جایگزین می کند.

مثال 16. در خط "سلام به جهان!" کلمه "صلح" را با کلمه "دوستان" جایگزین کنید.

String \u003d StrReplace ("سلام به جهان!" ، "جهان" ، "دوستان")؛ گزارش (رشته) ؛

نتیجه اجرای این کد نمایش خط "سلام دوستان" خواهد بود.

رشته های StrNumberStrings

شماره ردیف (<Строка>) ... تعداد خطوط یک رشته چند خطی را می شمارد. برای رفتن به خط جدید در 1s 8 ، از کاراکتر استفاده کنید PS (شخصیت خوراک خط).

مثال 17. تعداد خطوط موجود در متن را تعیین کنید:
"خط اول
خط دوم
خط سوم "

Number \u003d StrNumberStrings ("خط اول" + نمادها. PS + "خط دوم" + نمادها. PS + "خط سوم")؛ شماره گزارش)؛

نتیجه اجرای این کد نمایش تعداد خطوط موجود در متن خواهد بود: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... یک رشته را با تعداد آن در یک رشته چند خطی دریافت می کند. شماره گذاری خط از 1 شروع می شود.

مثال 18. آخرین سطر را در متن دریافت کنید:
"خط اول
خط دوم
خط سوم "

متن \u003d "خط اول" + Symbols.PS + "خط دوم" + Symbols.PS + "خط سوم"؛ LastString \u003d StrGetString (متن ، StrNumberLines (متن))؛ گزارش (LastString) ؛

نتیجه اجرای این کد نمایش خط "خط سوم" خواهد بود.

تعداد وقایع

تعداد وقایع (<Строка>, <ПодстрокаПоиска>) ... تعداد وقایع رشته فرعی مشخص شده را در یک رشته برمی گرداند. عملکرد حساس به حروف کوچک است.

مثال 19. تعیین کنید که چند بار حرف "c" در خط "خطوط در 1s 8.3 و 8.2" ظاهر می شود ، بدون در نظر گرفتن حالت آن.

Line \u003d "خطوط در 1s 8.3 و 8.2"؛ تعداد واقعه \u003d تعداد وقایع (Vreg (رشته) ، "S") ؛ گزارش (تعداد وقایع)؛

نتیجه اجرای این کد نمایش تعداد وقایع خواهد بود: 2.

صفحه با شروع می شود

شروع صفحه با (<Строка>, <СтрокаПоиска>) ... بررسی می کند که آیا رشته عبور شده در پارامتر اول با رشته پارامتر دوم شروع می شود یا خیر.

مثال 20. تعیین کنید که آیا TIN طرف مقابل انتخاب شده با شماره 1 شروع می شود یا خیر طرف مقابل پیمانکاران.

TIN \u003d طرف مقابل. INN؛ StartsUnits \u003d StrStartsWith (INN ، "1")؛ If BeginsUnits then // کد شما EndIf ؛

صفحه با پایان می یابد

صفحه با (به پایان می رسد)<Строка>, <СтрокаПоиска>) ... بررسی می کند که آیا رشته عبور شده در پارامتر اول با رشته پارامتر دوم خاتمه می یابد.

مثال 21. تعیین کنید که آیا TIN طرف مقابل انتخاب شده با رقم 2. به پایان می رسد طرف مقابلپیوندی به یک مورد دایرکتوری ذخیره می شود پیمانکاران.

TIN \u003d طرف مقابل. INN؛ با دو پایان می یابد \u003d Str با (INN ، "2") پایان می یابد؛ اگر با Double Double پایان می یابد // کد شما EndIf؛

صفحه تقسیم

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... یک رشته را با استفاده از نویسه های جداکننده مشخص شده به قطعات تقسیم کرده و رشته های حاصل را در یک آرایه می نویسد. پارامتر اول رشته اصلی را ذخیره می کند ، دوم شامل رشته حاوی جدا کننده است ، سوم تعیین می کند که رشته های خالی را به آرایه بنویسد (به طور پیش فرض درست است، واقعی).

مثال 22. فرض کنید ما یک رشته داریم که شامل اعدادی است که با "؛" از هم جدا شده اند ، یک رشته از اعداد را از این رشته بدست آورید.

رشته \u003d "1؛ 2؛ 3"؛ Array \u003d StrSplit (رشته ، "؛")؛ برای Rd \u003d 0 توسط آرایه. تعداد () - 1 چرخه تلاش آرایه [Rd] \u003d تعداد (AbbrLP (آرایه [Rb]))؛ آرایه استثنا [Сч] \u003d 0؛ پایان تلاشها پایان حلقه ؛

در نتیجه اجرا ، آرایه ای با اعداد از 1 تا 3 بدست می آید.

StrConnect

StrConnect (<Строки>, <Разделитель>) ... یک آرایه از رشته ها را از پارامتر اول به یک رشته شامل تمام عناصر آرایه ، جدا شده توسط جدا کننده مشخص شده در پارامتر دوم تبدیل می کند.

مثال 23. با استفاده از آرایه اعداد مثال قبلی ، رشته اصلی را بدست آورید.

For Ref \u003d 0 By Array.Number () - 1 Cycle Array [Ref] \u003d رشته (آرایه [Ref])؛ پایان چرخه ؛ رشته \u003d StrConnect (آرایه ، "؛")؛