• از رشته 1 عدد بگیرید. توابع جدید برای کار با رشته ها. توابع تبدیل حروف متن

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

    StrReplace(Number, Lion(Number, 3), "");

    وقتی به دستیار نحو نگاه کردم، آنقدر آن را دوست داشتم که می خواستم در مورد آن بنویسم کار با رشته ها در 1C: Enterprise.

    یک رشته در 1C به یک نوع داده اولیه اشاره دارد.

    اگر به راهنمای 1C نگاه کنید، شرح زیر را از نوع String (String) خواهید دید.
    مقادیر این نوع شامل یک رشته یونیکد با طول دلخواه است.
    اگر به قول خودتان در مورد رشته ها، کار خواهد کرد. رشته ثابت متشکل از کاراکترهای مختلف است که همیشه با نقل قول احاطه شده است.

    مشخصات رشته
    عنوان = "سلام مسافر";

    رشته های چند خطی در پیکربندی های معمولی اغلب با استفاده از جداکننده عمودی "|" ایجاد می شوند:
    رشته = "چند خطی
    | رشته
    | بنویس
    | متن"؛

    یک نقل قول در یک رشته با دو کوتیشن مشخص می شود.
    String = ""متن در علامت نقل قول"";

    عملیات زیادی روی رشته ها وجود دارد (جستجو در یک رشته، تعیین اولین ها و غیره)، بهتر است به Syntax Helper نگاه کنید.
    راهنمای نحو - شرح کلی زبان داخلی-> توابع داخلی-> توابع کار با رشته ها.

    توابع کار با رشته ها

    در اینجا، به صورت مختصر، توابع کار با رشته ها را ارائه می دهم:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    تبدیل ها را تایپ کنید
    برای تبدیل نوع داده صریح، توابعی با همان نام نوع داده ای که تبدیل به آن انجام می شود وجود دارد: String(<Значение>)

    StringFromNumbers= String(Number);

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

    نمونه های رشته ای

    تبدیل عدد به رشته و برگشت.

    برای دریافت نمایش رشته از سال، از تابع Format استفاده کنید.

    Year = Format(CurrentDate()، "DF=yyyy" ) // Year = "2012"

    برای تبدیل یک عدد به رشته بدون درج کاراکتر جداکننده گروه (فاصله بدون شکست)، باید تابع Format را با پارامتر NH=0 اعمال کنید:

    Number = 2012 String = Format(Number, "NW=0" ); //String = "2012"

    رشته بدون فاصله.

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

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

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

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

    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("ردیف اول"، "ردیف دوم") ; // 1

    ویژگی های اساسی یک زبان برنامه نویسی معمولاً شامل کار با اعداد و رشته ها است. معمولاً این ویژگی‌ها به کد کامپایلر متصل می‌شوند (یا کلاس‌های «پایه» زبان برنامه‌نویسی پیاده‌سازی می‌شوند).

    در 1C، قابلیت های کار با رشته ها در خود پلت فرم برنامه ریزی شده است. امروز ویژگی های کار با رشته های 1C را در برنامه های زبان داخلی 1C در نظر خواهیم گرفت.

    مقدار خط 1C

    1. بیایید با ساده ترین شروع کنیم. ایجاد یک متغیر و اختصاص یک مقدار ثابت رشته به آن در 1C به این صورت است:

    متغیر = "سلام دنیا!";

    اگر می خواهید یک کاراکتر نقل قول را در یک رشته ثابت 1C مشخص کنید، باید آن را دو برابر کنید ""

    متغیر = "سلام، "جهان""!";

    2. خط شکست 1C را می توان به دو روش در یک بار مشخص کرد. اولین مورد استفاده از نماد |

    متغیر = "سلام،
    | دنیا! "؛

    دومی استفاده از Symbols system enum است. این به شما امکان می دهد هم یک خط شکستن 1C و هم سایر کاراکترهای غیرچاپ مانند TAB را اضافه کنید.

    متغیر = "سلام" + Symbols.ps + "pace!";

    3. تنظیمات در 1C را می توان نه تنها برای یک زبان (روسی، انگلیسی یا دیگر) - بلکه به طور همزمان برای چندین زبان توسعه داد. در این حالت، زبان مورد استفاده فعلی در پایین پنجره 1C انتخاب می شود.

    لیست زبان ها در پنجره پیکربندی در شاخه General/Languages ​​قرار دارد. هر زبان دارای یک شناسه کوتاه مانند enیا eng.

    واضح است که هنگام برنامه ریزی چنین پیکربندی، خطوط 1C نیز می توانند چند زبانه باشند. برای انجام این کار، ایجاد چنین خط 1C با مشخص کردن از طریق امکان پذیر است. گزینه ها بر اساس شناسه زبان:

    Variable = "ru=""سلام، دنیا!"; en=""سلام، دنیا!"

    اگر طبق معمول از خط 1C که به این شکل تشکیل شده استفاده کنید، همان چیزی است که در آن نوشته شده است. برای اینکه سیستم آن را به دو گزینه تقسیم کند و از گزینه مورد نظر استفاده کند، باید از تابع NStr() استفاده کنید:

    //درست برای تنظیمات دو زبانه
    گزارش(NStr(متغیر));

    لوازم با خط نوع 1C

    مورد نیاز یک فیلد دایرکتوری / سند 1C است. تفاوت آن با یک متغیر در یک برنامه به زبان 1C در این است که نوع آن دقیقاً برای ویژگی (عدد، رشته 1C و غیره) مشخص شده است. اگر نیاز دارید که در مورد اینکه چه چیزهایی هستند، آموزش را بررسی کنید.

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

    رشته‌های 1C دارای طول نامحدود (با طول = 0) و طول محدود هستند که تعداد دقیق کاراکترها را نشان می‌دهد. رشته های 1C با طول نامحدود در یک جدول SQL جداگانه ذخیره می شوند، بنابراین استفاده از آنها نسبت به رشته های محدود بهره وری کمتری دارد.

    به همین دلیل است که استفاده از رشته های 1C با طول نامحدود محدودیت های خود را دارد - استفاده از آنها در همه جا امکان پذیر نیست. به عنوان مثال، به عنوان شماره سند، کد دایرکتوری، اندازه گیری امکان پذیر نیست.

    کار با خطوط 1C

    برای کار با رشته ها، چندین عملکرد داخلی پلت فرم 1C وجود دارد.

    • AbbrLP ("باور نکردنی، اما واقعی!")
      فضاهای اضافی را از رشته 1C حذف می کند. همچنین می توان از آن برای تبدیل هر نوع به رشته 1C (مثلاً اعداد) استفاده کرد.
    • متغیر = "Vasya" + Abbrl("plus") + "Olya"; //"واسیا پلاس اولیا" خواهد بود
      مثالی از جمع چند مقدار رشته 1C. نتیجه یک خط 1C است.
    • متغیر = Lion("موسیقی"، 2); // "مو" خواهد بود
      متغیر = میانگین ("موسیقی"، 2، 2); // "ps" خواهد بود
      متغیر = حقوق ("موسیقی"، 2); // "ka" خواهد بود
      گزینه های مختلف برای به دست آوردن یک رشته فرعی از یک رشته 1C.
    • متغیر = Find("Music", "ps"); //3 خواهد بود
      یک زیر رشته را در رشته 1C جستجو کنید که با کاراکتر 1 شروع می شود.
    • متغیر = StrLength ("موسیقی")؛ //6 می شود
      تعداد کاراکترهای یک رشته 1C را برمی گرداند.
    • اطلاع دهید ("سلام") // در کادر پیام در پایین پنجره 1C
      هشدار ("سلام") //پنجره گفتگو
      وضعیت ("سلام") //در خط نمایش وضعیت در پایین سمت چپ
      .

    آوردن اشیاء به خط 1C

    همانطور که می دانید در حال حاضر محبوب ترین فرمت برای تبادل اطلاعات ساختاریافته XML است. حتی آخرین نسخه MS Office Word و Excel فایل ها را با این فرمت ذخیره می کند (به ترتیب docx و xlsx، پسوند را به zip تغییر دهید، آن را در بایگانی باز کنید).

    پلت فرم 1C برای تبادل داده چندین گزینه را ارائه می دهد که اصلی ترین آنها نیز XML است.

    1. ساده ترین روش استفاده از تابع ShortLP() یا String() است. می توانید از تابع ()REPRESENTATION در متن پرس و جو استفاده کنید. نتیجه عمل آنها یکسان است - آنها یک نمایش رشته ای از هر شی 1C را برای کاربر ایجاد می کنند.

    برای دایرکتوری پیش فرض، این نام آن خواهد بود. برای یک سند، نام، شماره و تاریخ سند.

    2. هر شی 1C (با محدودیت) را می توان به XML تبدیل کرد و بالعکس. فرآیند تبدیل سریال سازی نامیده می شود.

    ViewStringXml = XMLString(Value); //XML را از مقدار 1C دریافت کنید
    Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); // مقدار 1C را از رشته XML دریافت کنید، باید نوع 1C را که باید دریافت شود مشخص کنید.

    3. یک راه بومی پلتفرم 1C برای تبدیل هر شی 1C به رشته وجود دارد. از نسخه 1C 7.7 مهاجرت کرد. این قالب توسط برنامه های دیگر قابل درک نیست، اما 1C دیگری را درک می کند، که استفاده از آن را برای تبادل بین پایگاه های داده 1C آسان می کند.

    String = ValueInStringInt(Value1S); // رشته 1C را از مقدار 1C دریافت کنید
    ValueToFile("C:\MyFile.txt"، Value1C); //گزینه دیگر، یک فایل با یک رشته ذخیره شده از مقدار 1C دریافت می کنیم
    Value1C = ValueFromStringInt(String); //بازگشت از خط 1C
    Value1C = ValueFromFile("C:\MyFile.txt"); //بازگشت از فایل

    ویرایش خطوط 1C در فرم

    علاوه بر کار با رشته های 1C در برنامه 1C، البته، من دوست دارم که کاربر بتواند آنها را ویرایش کند. چندین احتمال برای این وجود دارد:

    1. ساده ترین راه درخواست ورودی خط 1C در صورت تقاضا است. این روش هنگام آموزش برنامه نویسی 1C استفاده می شود، در زندگی از آن بسیار کمتر استفاده می شود (اما استفاده می شود!).

    متغیر = "";
    String = EnterValue(متغیر، "نام کامل را وارد کنید");

    2. برای نمایش جزئیات شی 1C (دایرکتوری / سند) یا جزئیات فرم (نگاه کنید به)، بیشتر از قسمت ورودی استفاده می شود. این رایج ترین ابزار در 1C برای کاربر برای کار با فیلدهای ویرایش است.

    3. قابلیت های فیلد ورودی را می توان گسترش داد (به ویژگی های فیلد ورودی مراجعه کنید، برای جزئیات بیشتر روی آن کلیک راست کنید):

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

    4. اگر تمام امکانات فیلد ورودی برای شما کافی نیست، یک ویرایشگر داخلی وجود دارد. برای اضافه کردن آن به فرم، باید فیلد سند متنی را در منوی Form / Insert عنصر کنترل اضافه کنید. در ویژگی های آن، می توانید حالت عملکرد آن را مشخص کنید - ویژگی Extension.

    فیلد سند متنی را نمی توان مستقیماً به داده ها پیوند داد. لازم است تابع زیر را در کنترل کننده رویداد فرم OnOpening() بنویسید (نگاه کنید به):

    FormElements.ElementNameTextDocumentField.SetText(StringValue); //اینجا، ValueString متنی است که مثلاً از ویژگی دریافت می‌شود

    و در کنترل کننده ذخیره - به عنوان مثال، در دکمه ذخیره - یک ذخیره اضافه کنید:

    ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString در اینجا props است که در آن مقدار را ذخیره می کنیم

    5. در 1C نسخه 8.2.11، در فرم های مدیریت شده، امکان جدیدی برای نشان دادن خط 1C وجود دارد - قسمت Formatted Document.


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

    • در شی 1C، شکلی که ما در حال ساخت آن هستیم (کتاب مرجع، سند، پردازش و غیره) - یک ویژگی با نوع Value Storage اضافه کنید
    • در تابع OnReadOnServer()، متن را از ویژگی تنظیم کنید

      //here Requisite ویژگی اضافه شده شی 1C است
      //here FormattedDocument نام فیلد در فرم ویرایش است
      &روی سرور

      FormattedDocument = CurrentObject.Attributes.Get();
      پایان رویه

    • در تابع BeforeWriteOnServer() یا با فشار دادن دکمه، متن را از فیلد بنویسید

      &روی سرور
      رویه OnReadingOnServer(CurrentObject)
      CurrentObject.Attributes = NewValueStorage(FormattedDocument);
      پایان رویه

    نوع 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 را برمی گرداند

    یادداشت هایی از Looking Glass

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

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

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

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

    فرمت تابع StrTemplate()

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

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

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

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

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

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

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

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

    تابع رشته StrCompare()

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

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

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

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

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

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

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

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

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

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

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

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

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