اینترنت پنجره ها اندروید

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

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

خط

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

ردیف (نادرست) // بازگشت "نه"
ردیف (12345) // بازگشت "12 345"
ردیف (currentdata ()) // 2.5.07.2017 11:55:36 "

تبدیل به خط نه تنها امکان پذیر است انواع اولیه، اما بقیه، مانند عناصر کتاب های مرجع، اسناد.

SOKRLP، SOKREL، CROPP

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

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

شیر، حقوق، رسانه ها

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

شیر ("متغیر رشته"، 4) // بازگشت "کاه"
حقوق ("متغیر نرده"، 7) // بازگشت "eramet"
رسانه ("متغیر رشته"، 2، 5) // بازگشت "Troko"

استروتینا

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

Streglin ("کلمه") // نتیجه خواهد شد شماره 5

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

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

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

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

خط خالی

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

"Pupky Vasily Ivanovich") // تابع ارزش نادرست را بازگرداند
Pastastroroca ("") // تابع ارزش حقیقت را بازگرداند

نور، Nreg، Treg

این توابع هنگام مقایسه و تبدیل متغیرهای رشته بسیار مفید هستند. "Wregter ()" خط اصلی را در ثبت نام بالا، "Nreg ()" در Nizhny، و "Treg ()" آن را تشکیل می دهند به طوری که اولین شخصیت هر کلمه فردی با یک حرف بزرگ، و همه پس از آن با یک کوچک است.

Vrega ("مدیر کل") // اهمیت بازگشت - "مدیر کل"
Nrega ("مدیر کل") // اهمیت بازگشت - "مدیرعامل"
Trega ("مدیر کل") // بازگشت ارزش - "مدیر کل"

شلاق زدن

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

Strust ("قرمز، سفید، زرد"، "،"، "؛") // بازگشت "قرمز؛ سفید؛ رنگ زرد"

استوانه

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

چرخه، در مثال زیر، سه حلقه برگزار می شود، از آنجا که تابع StringsLock به 3:

برای ind \u003d 1 از طریق Strokelock ("String1" + کاراکترها. PC + "String2" + کاراکترها. PC + "String3") چرخه
<тело цикла>
Endcycle؛

پلاگین

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

پلاگین را از طریق ("String1" + کاراکترها. PC + "String2" + کاراکترها. PS + "String3"، 2) // بازگشت "string2"

چرخنده

این تابع مقدار علامت ورودی یا Substring را در رشته مورد نظر شمارش می کند.

ایستگاه های ثابت ("a؛ b؛ in؛ g؛"، "؛") // تابع شماره 4 را باز می گرداند

نماد و CodeImvol

این توابع به شما اجازه می دهد یک نماد را در کد خود در کدگذاری یونیکد دریافت کنید، و همچنین این کد را بر روی نماد خود تعریف کنید.

چاقو ("A") // تابع شماره 1 040 را باز می کند
KODSIMVOL (1040) // تابع "A"

وظایف مکرر هنگام کار با ردیف

ترکیب رشته

برای ترکیب چندین خط (concatenate) کافی است که از اپراتور اضافی استفاده کنید.

"خط 1" + "خط 2" // نتیجه دو خط تاشو "رشته 1 خط 2" خواهد بود

تبدیل نوع

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

ردیف (1000) // بازگشت "1000"

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

Strust (خط (1000)، نمادها. NPP، "") // بازگشت "1000"

ردیف (فرمت (1000، "cg \u003d")) // بازگشت "1000"

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

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

title \u003d ردیف ("LLC" "شاخ" "" - این ما! ") // حفظ" ROG و Hortal LLC "- این ما!"

چند خط، انتقال ردیف

به منظور ایجاد متن چند خطی این به اندازه کافی برای اضافه کردن نمادهای انتقال رشته به آن (نمادها. PS) کافی است.

multi-linecext \u003d "خط اول" + نمادها. FS + "رشته دوم"

چگونه برای حذف شکاف

به منظور حذف شکاف در سمت راست یا در سمت چپ، می توانید از تابع "Coplp ()" (و همچنین "Sokrel ()" و "Cropp ()") استفاده کنید:

rangebesproelov \u003d coolp ("بسیاری از حروف") // تابع ارزش "بسیاری از نامه ها"

اگر پس از تحول شماره در رشته مورد نیاز برای حذف شکاف های جدایی ناپذیراز طراحی بعدی استفاده کنید:

StringBebones \u003d Strust (رشته (99999)، نمادها. NPP، "") // حفظ "99999"

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

Belts Stringbezf \u003d Strust ("PR و V E T"، ""، "") // حفظ "سلام"

مقایسه رشته ها در میان خود

شما می توانید مهلت های مربوط به علامت معمولی برابری را مقایسه کنید. در مقایسه، ثبت نام در نظر گرفته شده است.

"سلام" \u003d "سلام" // دروغ بازگشت
"سلام" \u003d "سلام" // بازگشت حقیقت
"سلام" \u003d "Goodbye" // دروغ بازگشت

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

رشته اضافی

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

انتخاب "نام:" + counterparties. ارتقاء به عنوان column1 از دایرکتوری. مخروط ها به عنوان contrgenties که در آن counterparties. link \u003d & link

تابع زیرزمینی

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

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

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

توجه! با استفاده از تابع substring () به منظور قرار دادن رشته های یک طول نامحدود به رشته های طول محدود توصیه نمی شود. به جای آن، بهتر است از عملیات آوردن نوع به بیان () استفاده کنید.

عملکرد مانند

اگر شما باید اطمینان حاصل کنید که پروکسی رشته مربوط به معیارهای خاصی است که ما آن را مقایسه می کنیم:

counterparties را انتخاب کنید انتصاب به عنوان یک ستون 1 از کتاب مرجع

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

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

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

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

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

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

قسمت 1. روش ها (26).

1.1. روش های پایه (10). مستقل، بر اساس الگوریتم های ساده خود ساخته شده است.

هنوز () (علاوه بر شخصیت های مشخص شده در سمت راست).

Page_Invers () (Inversion - نمادها به سمت راست در سمت چپ).

Page_Koda () (کد های نماد از طریق "،" و یک آرایه با کد ها)

Page_simol () (خط از کدهای از طریق "،" یا از یک آرایه با کد ها)

PRESSIVEVIVERS () (جایگزینی برخی از شخصیت ها به دیگران).

page_ustassive () (خط از آرایه قطعات از طریق جداساز)

Page_night () (جستجو برای Substring (از جمله سمت راست) با فرمان. شماره ورود)

Page_NetigR () (جستجو برای یک گروه از شخصیت های موجود در مجموعه کاراکتر مشخص شده)

Page_Weighting () (جستجو برای یک عدد، از جمله در سمت راست با شماره ورودی مشخص شده)

Page_ تفسیر () (در یک آرایه، با توجه به نحو ثابت شده)

1.2 روش های مشتق شده (12). در واقع، این استفاده از چهار الگوریتم عمومی است (قسمت 2 را ببینید)

Page_) () (از ابتدا و از انتهای خط، نه "ترس از" شخصیت های غیر بد.

Page_nighty () (جستجو برای Substring (از جمله بدون ثبت نام ثبت نام و راست) با فرمان ورود به ورود).

قیمت گذاری () (جستجو (شامل به جز ثبت نام و راست)، و جایگزین زیربست های زیرزمینی).

Pagencons () (یک قطعه رشته بین ورودی جدا کننده مشخص شده (سمت چپ یا راست)).

Remover Prive () (جایگزینی در خط منبع "برش" به رشته مشخص شده).

Page_vmassiv () (بین ورودی تقسیم شده مشخص شده (از جمله در سمت راست و بدون ثبت نام).

Page_senetoslogs () (تقسیم "سخت" به بستر، با یک خط).

Page_Penetposlov () (تقسیم "نرم" به Substring)

PRIVE () ("برش" به زیر دست از طول مشخص شده)

pr_tsokrl () (شیر را جایگزین کنید. یک گروه از "کاهش" شخصیت ها در "رشته جایگزینی"

P_SOCP () (جایگزین حقوق. یک گروه از شخصیت های "کاهش" در "رشته جایگزینی"

pr_sokrs () (جایگزین در وسط یک گروه از شخصیت های "کاهش" به "ردیف جایگزینی"

page_stiver (گسترش به منظور. طول با افزایش تعداد کاراکترهای مشخص شده)

1.3. روش های دقیق (3). "آماده سازی" رشته ها با انتقال به یک جدول با اطلاعات دقیق.

page_tablvch () (در جدول با توجه به سیستم جداکننده های توزیع شده).

Page_Tubngr (در یک جدول با توجه به فیلتر چند سطح).

Page_Tabbone (در یک جدول با اعداد و قطعات بین آنها).

قسمت 2. روش های عمومی الگوریتم ها (3).

Page_name () (روش ها "پیدا کردن" و "جایگزینی").

Page_Phragments () ("برش" روش ها، "جایگزین،" Wamissive "،" Blubvch ").

Page_sokr () ("Sokrel" روش ها، "COPP"، "Sokres"، "Expand".

Page_match () (روش ها "انتقال"، "انتقال"، "برش")).

قسمت 3. عملکرد جهانی.

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

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

توابع با هفت پارامتر ("نسخه ی نمایشی" بر روی این تابع ساخته شده است):

Page_ (روش ها، طرح بندی ها، ورودی، Param1، Param2، Lifte_Production، Dop Vode)

مولفه های:

- "روش ها" - چند روش "ترکیبی" و (یا) یک "انحصار"

(کد های تک اسپری یا نام، می تواند از طریق "،")

- "Attamies" - چند گزینه "ترکیبی" و (یا) "انحصار"

روش "انحصار" (کد های تک اسپری یا عناوین)؛

- "ورود" - خط، یا آرایه یا جدول مقادیر؛

- "Param1" - یک رشته جستجو، جایگزینی، جداساز، فیلترها؛

- "Param2" - یک رشته یا نمادهای جایگزین؛

- "طول _neor_poote" - 1، اعداد از طریق جداساز یا آرایه با اعداد؛

- "DOP POST" - یک عدد یا رشته یا یک آرایه یا جدول مقادیر؛

نام و / یا کدهای تک پوشش از روش های پرتوهای، و همچنین تعداد در

(طول_نمدر_position) می تواند در هر ثبت نام و جدا شده باشد

هر یک از جدایی های زیر: "، :؛".

قسمت 4. برخی از نمونه ها.

Essential \u003d (Page_nighting (vhstroka)<>undefined)؛

predicate \u003d (page_nightigh (vhstroka، "+ 0123456789")\u003e 0)؛

Wallinity \u003d (PR_NATIGR (VKSTR، PR_ تفسیر ("LL"))\u003e 0) وجود دارد؛

شاخص ها \u003d (Page_nantiger (Bhstr، "+ به Rogu.0R9")\u003e 0) وجود دارد؛

غیر Tyographic \u003d (PR_NetigR ("- L-L-L-P-P-Z-C")\u003e 0))\u003e 0)؛

قسمت 5. نتیجه گیری.

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

استفاده از توابع ساخته شده در: شیر ()، راست () رسانه ()، Stondin ()

- (موقعیت و دریافت بخش از خط - همه "سریع").

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

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

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

تابع قالب بندی ستاره دار ()

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

استررب (<Шаблон>, <Значение1-Значение10>)

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

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

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

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

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

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

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

این ویژگی دو خط بدون ثبت نام را مقایسه می کند. به عنوان مثال، بنابراین:

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

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

توابع کار با ردیف ها مسیریابی ()، Stronckant ()

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

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

توابع کار با رشته ها به خط ()، پلاگین ()

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

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

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

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

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

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