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

توابع رشته 1c 8.3. توابع رشته جدید

در نسخه 8.3.6.1977 پیاده سازی شده است.

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

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

فرمت تابع StrTemplate()

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

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

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

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

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

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

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

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

تابع رشته StrCompare()

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

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

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

توابع رشته StrBeginsC()، StrEndsTo()

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

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

توابع کار با رشته های StrSplit(), StrJoin()

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

تابع کار با رشته ها StrFind()

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

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

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

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

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

خط

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

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

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

مخفف LP، مخفف L، مخفف P

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

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

لئو، راست، وسط

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

Lion("String variable", 4) // "Stro" را برمی گرداند
Right("String variable", 7) // "variable" را برمی گرداند
avg("String variable", 2, 5)// "troco" را برمی گرداند

StrLength

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

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

پیدا کردن

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

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

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

خط خالی

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

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

VReg، NReg، Treg

این توابع هنگام مقایسه و تبدیل متغیرهای رشته ای بسیار مفید هستند. "Vreg()" رشته اصلی را با حروف بزرگ، "HReg()" با حروف کوچک، و "Treg()" آن را به گونه ای قالب بندی می کند که اولین کاراکتر هر کلمه جداگانه بزرگ شود و همه کاراکترهای بعدی کوچک باشند.

Vreg("مدیر کل") // مقدار بازگشتی - "مدیر کل"
HReg ("مدیر کل") // مقدار بازگشتی - "مدیر عامل"
Treg ("مدیر کل") // مقدار بازگشتی - "مدیر کل"

StrReplace

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

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

StrNumberRows

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

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

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

StrGetString

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

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

StrNumberOccurrences

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

StrNumberInstallations("a;b;c;d; ", ";") // تابع عدد 4 را برمی گرداند.

Symbol و SymbolCode

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

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

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

الحاق رشته

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

"خط 1" + "خط 2" //نتیجه اضافه کردن دو خط "خط 1 خط 2" خواهد بود.

تبدیل نوع

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

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

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

StrReplace(String(1000),Characters.NPP,"") // "1000" را برمی گرداند

String(Format(1000,"CH=")) // "1000" را برمی گرداند

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

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

Header = String ("Horns and Hooves LLC is us!") // برمی گرداند "Roga and Hooves LLC is us!"

چند خط، شکست خط

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

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

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

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

StringWithoutSpaces = ShortLP("حروف بسیار") // تابع مقدار "حروف بسیار" را برمی گرداند.

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

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // "99999" را برمی گرداند

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

StringWithoutSpaces = StrReplace(" hello", " ","") // "Hello" را برمی‌گرداند

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

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

"hello" = "سلام" // false خواهد شد
"Hello" = "Hello" // True برمی گردد
"Hello" = "Goodbye" // False را برمی گرداند

رشته یکی از انواع داده های اولیه در سیستم های 1C:Enterprise 8 است. متغیرهای با نوع خطحاوی متن

مقادیر متغیر را تایپ کنید خطدر دو گیومه قرار می گیرند. چندین متغیر از این نوع را می توان اضافه کرد.

Per1 = "Word 1" ;
Per2 = "Word 2" ;
Per3 = Per1 + " " + Per2 ;

در نهایت Per3مهم خواهد بود" کلمه 1 کلمه 2 اینچ.

علاوه بر این، سیستم های 1C: Enterprise 8 عملکردهایی را برای کار با رشته ها ارائه می دهند. موارد اصلی را در نظر بگیرید:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — این تابع برای نمایش یک کادر محاوره ای طراحی شده است که در آن کاربر می تواند مقدار یک متغیر از نوع را مشخص کند خط. پارامتر <Строка> مورد نیاز است و حاوی نام متغیری است که رشته وارد شده در آن نوشته می شود. پارامتر <Подсказка> اختیاری عنوان کادر محاوره ای است. پارامتر <Длина> اختیاری، حداکثر طول رشته ورودی را نشان می دهد. پیش فرض صفر است که به معنای طول نامحدود است. پارامتر <Многострочность> اختیاری. حالت ورودی متن چند خطی را مشخص می کند: True — ورودی متن چند خطی با جداکننده خط. False - یک رشته ساده وارد کنید.

یک رشته را می توان وارد کرد و با دانستن کد کاراکتر در یونیکد:

نماد(<КодСимвола>) — کد به صورت عدد وارد می شود.

حرف= نماد(1103 ) ; // من

همچنین یک تابع معکوس وجود دارد که به شما امکان می دهد کد یک کاراکتر را پیدا کنید.

SymbolCode(<Строка>, <НомерСимвола>) — شماره یونیکد کاراکتر مشخص شده را به صورت عدد برمی گرداند.

توابع تبدیل حروف متن:

VReg(<Строка>) - تمام کاراکترهای یک رشته را به حروف بزرگ تبدیل می کند.

HReg(<Строка>) - تمام کاراکترهای یک رشته را به حروف کوچک تبدیل می کند.

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

توابع جستجو و جایگزینی کاراکترها در یک رشته:

پیدا کردن(<Строка>, <ПодстрокаПоиска>) - شماره کاراکتر وقوع زیررشته جستجو را پیدا می کند. مثلا:

یافتن ("رشته"، "چشم") ; // چهار

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

Number4 Entry= StrFind( "تدافعی", "o" , جهت جستجو. اول، 1، 4)؛ // 7

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

StrReplace("رشته"، "چشم"، "" ); // صفحه

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

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) - تعداد تکرارهای زیررشته جستجو را در رشته منبع محاسبه می کند.

StrNumberOccurrences ( "مطالعه، مطالعه و دوباره مطالعه", "برای مطالعه" , "" ); // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — پارامترها را با رشته جایگزین می کند. رشته باید دارای نشانگرهای جایگزینی به شکل "%1..%N" باشد. شماره گذاری نشانگرها از 1 شروع می شود. اگر مقدار پارامتر تعریف نشده، رشته خالی جایگزین می شود.

StrPattern ( "گزینه 1 = %1، گزینه 2 = %2", "1" , "2" ) ; // پارامتر 1= 1، پارامتر 2 = 2

توابع تبدیل رشته:

یک شیر(<Строка>, <ЧислоСимволов>) اولین کاراکترهای رشته را برمی گرداند.

درست(<Строка>, <ЧислоСимволов>) - آخرین کاراکترهای رشته را برمی گرداند.

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

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

abbr(<Строка>) - کاراکترهای بی اهمیت را در سمت راست آخرین کاراکتر مهم در رشته قطع می کند.

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

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

ویژگی های دیگر:

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

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

StrCompare(<Строка1>, <Строка2> ) - دو رشته را به صورت غیر حساس مقایسه می کند. تابع مانند یک شی کار می کند مقایسه ارزش ها. برمی گرداند:

  • 1 - اگر خط اول بزرگتر از خط دوم باشد
  • -1 - اگر خط دوم بزرگتر از خط اول باشد
  • 0 - اگر رشته ها مساوی باشند

StrCompare("ردیف اول"، "ردیف دوم") ; // یک

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

اضافه کردن رشته

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

"Name: " + Contractors.Name AS Column1 FROM Directory.Contractors AS Contractors WHERE Contractors.Reference = &Reference

تابع رشته فرعی

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

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

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

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

تابع مشابه

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

Counterparties.Name AS Column1 FROM Directory.Counterparties AS Counterparties WHERE Counterparties.Name = "Gazprom"

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

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

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

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

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

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

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

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

StringVariable = "سلام دنیا!";

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

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

StrLength

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

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

String = "سلام دنیا!"; تعداد کاراکترها = StrLength(String); گزارش (تعداد کاراکترها)؛

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

به اختصار

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

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

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

String = abbr("جهان!"); String = "سلام" + رشته; اطلاع رسانی (رشته)؛

نتیجه اجرای این کد نمایش رشته «Hello world!» خواهد بود.

مخفف

abbr(<Строка>) . کاراکترهای غیر معنی دار را در سمت راست اولین کاراکتر مهم در یک رشته برش می دهد.

مثال 4. از رشته های "Hello" و "World!" عبارت "سلام دنیا!"

String = abbr("سلام")+" "+abbr("جهان!"); اطلاع رسانی (رشته)؛

به اختصار LP

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

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

Contractor = Directories.Contractors.FindBy Details("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = LP مخفف (ContractorObject.Description); ContractorObject.Write();

یک شیر

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

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

InitialName = Lion(Employee.Name, 1); نام اصلی = Leo(Employee.Patronymic, 1); FullName = Employee.LastName + " " + FirstName Initial + "." + حرف اول نام خانوادگی + ".";

حقوق

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

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

String = "تاریخ فعلی: 20170910"; StringData = حقوق (رشته، 8); تاریخ = تاریخ (StringDate);

چهار شنبه

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

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

رشته = "منطقه: 99 مسکو"; منطقه = میانگین (ردیف، 9، 2)؛

PageFind

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

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

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

PositionNumber = StrFind("Hello World!", "and", SearchDirection.From End); اطلاع رسانی (PositionNumber)؛

نتیجه اجرای این کد نمایش عدد آخرین وقوع علامت «و» بر روی صفحه خواهد بود: 9.

VReg

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

مثال 10. رشته "سلام جهان!" به حروف بزرگ

StringVreg = Vreg ("سلام دنیا!"); گزارش (StringVreg)؛

نتیجه اجرای این کد نمایش رشته "HELLO WORLD!"

HReg

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

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

StringNreg = NReg("HELLO WORLD!"); گزارش (StringVreg)؛

نتیجه اجرای این کد نمایش رشته "سلام جهان!"

Treg

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

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

StringTreg = Treg ("سلام دنیا!"); گزارش (StringTreg)؛

نتیجه اجرای این کد نمایش رشته "Hello World!"

نماد

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

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

StringWithStars = کاراکتر ("9733") + "سلام جهان!" + کاراکتر ("9733"); گزارش (StringWithStars)؛

نتیجه اجرای این کد نمایش رشته «★Hello World!★» خواهد بود.

رمز نماد

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

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

String = "سلام جهان!"; CharacterCode =CharacterCode(String, StrLength(String)); اطلاع رسانی (شخصیت کد)؛

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

خط خالی

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

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

Empty = EmptyString(" "); گزارش (خالی)؛

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

StrReplace

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

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

String = StrReplace("Hello World!"، "World"، "Friends"); اطلاع رسانی (رشته)؛

نتیجه اجرای این کد نمایش رشته "سلام دوستان!"

StrNumberRows

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

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

Number = StrNumber of Lines("First line"+Symbols.PS +"Second line"+Symbols.PS +"Third line"); شماره گزارش)؛

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

StrGetString

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

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

Text = "First Line"+ Characters.PS +"Second Line"+Characters.PS +"Third Line"; LastLine = StrGetLine(Text, StrNumber of Lines(Text)); اطلاع رسانی (آخرین خط)؛

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

StrNumberOccurrences

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

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

String = "خطوط در 1s 8.3 و 8.2"; Number of Occurrences = StrNumber of Occurrences(Vreg(String), "C"); گزارش (تعداد وقوع)؛

در نتیجه اجرای این کد تعداد دفعات روی صفحه نمایش داده می شود: 2.

Page BeginsFrom

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

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

TIN = Contractor.TIN; StartsCUnits = StrStartsC(TIN، "1"); اگر StartsFROM1 سپس //کد شما EndIf;

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

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

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

TIN = Contractor.TIN; به پایان می رسد با دو = ختم به پایان می رسد (TIN، "2"); If Ends With Two then //Your Code EndIf;

PageSplit

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

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

رشته = "1; 2; 3"; آرایه = StrSplit(String, ";"); برای تعداد = 0 توسط Array.Quantity() - 1 Loop Attempt Array[Count] = Number(Ablp(Array[Count])); آرایه استثنا[W] = 0; EndTry End Cycle;

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

StrConnect

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

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

برای تعداد = 0 توسط Array.Quantity() - 1 Loop Array[Count] = String(Array[Count]); چرخه پایان String = StrConnect(Array, ";");

برترین مقالات مرتبط