Bekerja dengan garisan dalam 1s. Fungsi baharu untuk bekerja dengan rentetan. Fungsi penukaran rentetan

  • 08.09.2024

Jenis String terdapat dalam semua bahasa pengaturcaraan. Ia adalah primitif, dan dalam 1C terdapat banyak fungsi untuk bekerja dengannya. Dalam artikel ini kita akan melihat secara terperinci pelbagai cara bekerja dengan jenis rentetan dalam 1C 8.3 dan 8.2 menggunakan contoh.

Talian

Untuk menukar pembolehubah apa-apa jenis kepada rentetan, terdapat fungsi dengan nama yang sama "String()". Parameter input akan menjadi pembolehubah itu sendiri, perwakilan rentetan yang mesti diperolehi.

String(False) // mengembalikan "Tidak"
String(12345) // mengembalikan "12,345"
String(CurrentDate()) //"07/21/2017 11:55:36″

Ia adalah mungkin untuk menukar bukan sahaja jenis primitif kepada rentetan, tetapi juga yang lain, sebagai contoh, elemen direktori dan dokumen.

SokrLP, SokrL, SokrP

Parameter input bagi fungsi ini ialah pembolehubah jenis rentetan. Fungsi mengalih keluar aksara yang tidak penting (ruang, pemulangan pengangkutan, dll.): dari sisi kiri dan kanan, hanya dari sebelah kiri, dan hanya dari sebelah kanan, masing-masing.

Singkatan(" Ruang akan dialih keluar pada kedua-dua belah ") // "Ruang akan dialih keluar pada kedua-dua belah"
Singkatan(" Ruang di kedua-dua belah akan dialih keluar ") // " Ruang di sebelah kiri akan dialih keluar "
Singkatan(" Ruang di kedua-dua belah akan dialih keluar ") // " Ruang di sebelah kanan akan dialih keluar"

Leo, Kanan, Sederhana

Fungsi ini membolehkan anda memangkas sebahagian daripada rentetan. Fungsi "Left()" akan mengembalikan bahagian rentetan dari sebelah kiri panjang yang ditentukan. Fungsi "Right()" adalah serupa, tetapi memangkas dari kanan. Fungsi "Purata()" membolehkan anda menentukan bilangan aksara dari mana baris itu akan dipilih dan panjangnya.

Lev("Pembolehubah rentetan", 4) // mengembalikan "Str"
Right("String variable", 7) // mengembalikan "variable"
Sederhana("Pembolehubah rentetan", 2, 5) // mengembalikan "troco"

StrLength

Fungsi ini menentukan bilangan aksara yang terkandung dalam pembolehubah rentetan.

StrLength("Word") // hasil pelaksanaan akan menjadi nombor 5

Cari

Fungsi ini memungkinkan untuk mencari sebahagian daripada rentetan dalam pembolehubah rentetan. Nilai pulangan ialah nombor yang menunjukkan kedudukan permulaan rentetan yang ditemui. Jika tiada padanan ditemui, sifar dikembalikan.

Sila ambil perhatian bahawa carian adalah sensitif huruf besar. Jika terdapat lebih daripada satu kejadian subrentetan carian dalam rentetan asal, fungsi akan mengembalikan permulaan kejadian pertama.

Find("satu, dua, satu, dua, tiga", "dua") // fungsi akan mengembalikan nombor 6

EmptyString

Menggunakan fungsi ini membolehkan anda menentukan sama ada rentetan kosong. Watak kecil seperti ruang, pemulangan kereta dan lain-lain tidak diambil kira.

EmptyString("Pupkin Vasily Ivanovich") // fungsi akan mengembalikan nilai False
EmptyString(" ") // fungsi akan mengembalikan nilai True

VReg, NReg, TReg

Fungsi ini sangat berguna apabila membandingkan dan menukar pembolehubah rentetan. "Vreg()" akan mengembalikan rentetan asal dalam huruf besar, "HPreg()" dalam huruf kecil, dan "TReg()" akan memformatkannya supaya aksara pertama setiap perkataan individu ditulis dengan huruf besar, dan semua aksara berikutnya ditulis dengan huruf besar.

VReg("GENERAL DIRECTOR") // nilai pulangan - "GENERAL DIRECTOR"
NReg(“CEO DIRECTOR”) // nilai pulangan – “CEO”
TREG(“CEO DIRECTOR”) // nilai pulangan – “Ketua Pengarah”

PageReplace

Fungsi ini serupa dengan penggantian dalam penyunting teks. Ia membolehkan anda menggantikan satu aksara atau set aksara dengan yang lain dalam pembolehubah rentetan.

StrReplace("merah, putih, kuning", ","", ";") // mengembalikan "merah; putih; kuning"

StrNumberLines

Fungsi ini membolehkan anda menentukan bilangan baris yang dipisahkan oleh pemulangan pengangkutan dalam pembolehubah teks.

Gelung dalam contoh di bawah akan melalui tiga pusingan kerana fungsi LineNumberRow akan mengembalikan nilai 3:

Untuk ind = 1 dengan StrBilangan Rentetan("Baris1" + Simbol.PS + "Baris2" + Simbol.PS + "Baris3") Kitaran
<тело цикла>
EndCycle;

StrGetString

Fungsi ini berfungsi dengan teks berbilang baris dengan cara yang sama seperti yang sebelumnya. Ia membolehkan anda mendapatkan rentetan tertentu daripada pembolehubah teks.

StrGetString("String1" + Characters.PS + "String2" + Characters.PS + "String3", 2) // kembalikan "String2"

PageNumberOccurrences

Fungsi ini mengira bilangan kemunculan aksara atau subrentetan dalam rentetan carian.

StrNumberAttachments("a;b;c;d; ", ";") // fungsi akan mengembalikan nombor 4

Simbol dan Kod Simbol

Fungsi-fungsi ini membolehkan anda mendapatkan aksara dengan kodnya dalam pengekodan Unicode, serta menentukan kod ini dengan aksara itu sendiri.

SymbolCode("A") // fungsi akan mengembalikan nombor 1,040
CharacterCode(1040) // fungsi akan mengembalikan "A"

Tugas biasa apabila bekerja dengan rentetan

Rentetan Menggabungkan

Untuk menggabungkan beberapa rentetan (untuk melakukan penggabungan), cukup menggunakan operator penambahan.

“Baris 1″ + “Baris 2″ //hasil penambahan dua baris akan menjadi “Baris 1 Baris 2”

Penukaran Jenis

Untuk menukar jenis kepada rentetan, sebagai contoh, pautan ke elemen direktori, nombor, dsb., cukup untuk menggunakan fungsi "String()". Fungsi seperti "ScrLP()" juga akan menukar pembolehubah menjadi rentetan, tetapi serta-merta dengan memotong aksara yang tidak penting.

String(1000) // mengembalikan "1,000"

Sila ambil perhatian bahawa apabila menukar nombor kepada rentetan, program secara automatik menambah ruang yang memisahkan ribu. Untuk mengelakkan ini, anda boleh menggunakan binaan berikut:

StrReplace(String(1000),Characters.NPP,"") // mengembalikan "1000"

String(Format(1000,"HG=")) // mengembalikan "1000"

Petikan dalam rentetan

Selalunya anda perlu berurusan dengan keperluan untuk menentukan tanda petikan dalam pembolehubah rentetan. Ini boleh sama ada teks permintaan yang ditulis dalam configurator, atau hanya pembolehubah. Untuk menyelesaikan masalah ini, anda hanya perlu menetapkan dua tanda petikan.

Header = String("Horns and Hooves LLC - itulah kami!") // akan mengembalikan "Horns and Hooves LLC - itulah kami!"

Berbilang baris, putus baris

Untuk mencipta teks berbilang baris, cuma tambah pemisah baris (Symbols.PS) padanya.

MultilineText = "Barisan Pertama" + Simbol.PS + "Barisan Kedua"

Bagaimana untuk membuang ruang

Untuk mengalih keluar ruang di sebelah kanan atau kiri, anda boleh menggunakan fungsi "ScrAP()" (serta "ScrL()" dan "ScrP()"):

StringNoSpaces = Singkatan (" Banyak huruf ") // fungsi akan mengembalikan nilai "Banyak huruf"

Jika, selepas menukar nombor kepada rentetan, anda perlu mengalih keluar ruang yang tidak putus, gunakan pembinaan berikut:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // mengembalikan "99999"

Pengaturcara juga sering menggunakan binaan berikut, yang membolehkan anda mengalih keluar atau menggantikan dengan aksara lain semua ruang dalam pembolehubah teks:

StringNoSpaces = StrReplace("hello","") // mengembalikan "hello"

Membandingkan rentetan antara satu sama lain

Anda boleh membandingkan istilah dengan tanda sama yang biasa. Perbandingan adalah sensitif huruf besar-besaran.

"Hello" = "hello" // returns False
"Hello" = "Hello" // mengembalikan Benar
"Hello" = "Selamat tinggal" // akan kembali Salah

Dilaksanakan dalam versi 8.3.6.1977.

Kami telah mengembangkan set fungsi yang direka untuk berfungsi dengan rentetan. Kami melakukan ini untuk memberi anda alat yang lebih maju untuk menghuraikan data rentetan. Fungsi baharu akan menjadi mudah dan berguna dalam tugas teknologi analisis teks. Dalam tugas yang berkaitan dengan menghurai teks yang mengandungi data dalam bentuk berformat. Ini boleh menjadi analisis beberapa fail yang diterima daripada peralatan, atau, sebagai contoh, analisis log teknologi.

Anda boleh melakukan semua tindakan yang melaksanakan fungsi baharu sebelum ini. Menggunakan algoritma yang lebih atau kurang kompleks yang ditulis dalam bahasa terbina dalam. Oleh itu, fungsi baharu tidak memberi anda sebarang keupayaan baharu secara asasnya. Walau bagaimanapun, mereka membenarkan anda mengurangkan jumlah kod dan menjadikan kod lebih mudah dan lebih mudah difahami. Di samping itu, mereka membolehkan anda mempercepatkan pelaksanaan tindakan. Kerana fungsi yang dilaksanakan dalam platform berfungsi, sudah tentu, lebih cepat daripada algoritma serupa yang ditulis dalam bahasa terbina dalam.

Fungsi pemformatan StrTemplate()

Fungsi ini menggantikan parameter ke dalam rentetan. Keperluan untuk penukaran sedemikian sering timbul, sebagai contoh, apabila memaparkan mesej amaran. Sintaks untuk fungsi ini adalah seperti berikut:

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

<Шаблон>- ini ialah rentetan yang anda perlukan untuk menggantikan perwakilan parameter.

<Значение1> , ... <Значение10>- ini adalah parameter (maksimum sepuluh), perwakilan yang mesti digantikan ke dalam rentetan.

Untuk menunjukkan tempat tertentu dalam templat di mana anda ingin melakukan penggantian, anda perlu menggunakan penanda seperti % 1, ... % 10. Bilangan penanda yang terlibat dalam templat dan bilangan parameter yang mengandungi nilai mesti sepadan.

Sebagai contoh, hasil daripada melaksanakan pengendali sedemikian:

akan ada baris:

Ralat data pada baris 2 (Jenis tarikh diperlukan)

Fungsi untuk bekerja dengan rentetan StrCompare()

Fungsi ini membandingkan dua rentetan dalam cara yang tidak peka huruf besar-besaran. Sebagai contoh, seperti ini:

Anda boleh melakukan tindakan yang sama sebelum ini menggunakan objek Perbandingan Nilai:

Walau bagaimanapun, menggunakan ciri baharu kelihatan lebih mudah. Selain itu, fungsi ini, tidak seperti objek Perbandingan Nilai, berfungsi dalam kedua-dua klien nipis dan klien web.

Fungsi untuk bekerja dengan rentetan StrStartsWith(), StrEndsAt()

Fungsi ini menentukan sama ada rentetan bermula dengan subrentetan tertentu atau sama ada rentetan berakhir dengan subrentetan tertentu. Algoritma untuk fungsi ini tidak sukar untuk dilaksanakan dalam bahasa terbenam, tetapi kehadirannya membolehkan anda menulis kod yang lebih bersih dan lebih mudah difahami. Dan mereka bekerja lebih cepat.

Sebagai contoh, ia mudah digunakan dalam pernyataan Jika:

Fungsi untuk bekerja dengan rentetan StrDivide(), StrConnect()

Fungsi ini memisahkan rentetan kepada bahagian menggunakan pembatas yang ditentukan. Atau sebaliknya, mereka menggabungkan beberapa baris menjadi satu, memasukkan pemisah yang dipilih di antara mereka. Ia mudah untuk mencipta atau menganalisis log dan jurnal teknologi. Contohnya, anda boleh menghuraikan entri log teknologi dengan mudah kepada bahagian yang sesuai untuk analisis lanjut:

Fungsi untuk bekerja dengan rentetan StrFind()

Daripada fungsi Find() lama, kami telah melaksanakan fungsi baharu yang mempunyai keupayaan tambahan:

  • Cari dalam arah yang berbeza (dari awal, dari akhir);
  • Cari dari kedudukan yang ditentukan;
  • Cari kejadian dengan nombor tertentu (kedua, ketiga, dsb.).

Malah, ia menduplikasi keupayaan fungsi lama. Ini dilakukan untuk mengekalkan keserasian dengan modul yang disusun dalam versi lama. Adalah disyorkan bahawa anda tidak lagi menggunakan fungsi Find() lama.

Di bawah ialah contoh menggunakan keupayaan carian baharu. Carian terbalik berguna apabila anda memerlukan bahagian terakhir rentetan rasmi, seperti nama fail penuh dalam URL. Dan carian dari kedudukan tertentu membantu dalam kes di mana anda perlu mencari dalam serpihan yang diketahui, dan bukan dalam keseluruhan baris.

Rentetan ialah salah satu jenis data primitif dalam sistem 1C:Enterprise 8 dengan jenis barisan mengandungi teks.

Taipkan nilai pembolehubah barisan disertakan dalam petikan berganda. Beberapa pembolehubah jenis ini boleh ditambah.

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

Pada akhirnya Per3 akan bermakna " Perkataan 1 Perkataan 2″.

Selain itu, sistem 1C:Enterprise 8 menyediakan fungsi untuk bekerja dengan rentetan. Mari lihat yang utama:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — fungsi ini direka untuk memaparkan kotak dialog di mana pengguna boleh menentukan nilai pembolehubah jenis Talian. Parameter <Строка> diperlukan dan mengandungi nama pembolehubah yang mana rentetan yang dimasukkan akan ditulis. Parameter <Подсказка> pilihan - ini ialah tajuk kotak dialog. Parameter <Длина> pilihan, menunjukkan panjang maksimum rentetan input. Lalai kepada sifar, yang bermaksud panjang tanpa had. Parameter <Многострочность> pilihan. Mentakrifkan mod input teks berbilang baris: Benar—input teks berbilang baris dengan pemisah baris; Salah - masukkan rentetan mudah.

Anda boleh memasukkan rentetan jika anda mengetahui kod aksara dalam Unicode:

simbol(<КодСимвола>) — kod dimasukkan sebagai nombor.

Huruf= Simbol(1103) ;

// saya

Terdapat juga fungsi songsang yang membolehkan anda mengetahui kod sesuatu simbol.<Строка>, <НомерСимвола>) — mengembalikan nombor Unikod bagi aksara yang ditentukan sebagai nombor.

Fungsi penukaran kes teks:

VReg(<Строка>) — Menukar semua aksara dalam rentetan kepada huruf besar.

NReg(<Строка>) — Menukar semua aksara dalam rentetan kepada huruf kecil.

TReg(<Строка>) — menukar semua aksara dalam rentetan kepada huruf besar. Iaitu, huruf pertama dalam semua perkataan ditukar kepada huruf besar, dan huruf yang selebihnya ditukar kepada huruf kecil.

Fungsi untuk mencari dan menggantikan aksara dalam rentetan:

Cari(<Строка>, <ПодстрокаПоиска>) — mencari nombor aksara kejadian subrentetan carian. Contohnya:

Cari ("String" , "oka" );

// 4<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) StrFind( — mencari nombor aksara kejadian subrentetan carian, nombor kejadian ditunjukkan dalam parameter yang sepadan. Dalam kes ini, carian bermula dengan aksara yang nombornya ditentukan dalam parameter Kedudukan Permulaan.

Pencarian boleh dilakukan dari awal atau akhir rentetan. Contohnya: Number4 Occurrences = Str Cari ("Pertahanan"

, "tentang", Arah Carian. Dari Mula, 1, 4);<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) // 7

StrReplace(

– mencari semua kejadian subrentetan carian dalam rentetan sumber dan menggantikannya dengan subrentetan gantian.<Строка>) StrReplace ("String" , "oka" , "" ); // Halaman EmptyString( – menyemak rentetan untuk aksara penting. Jika tiada aksara penting, atau tiada aksara langsung, maka nilai itu dikembalikan.

betul<Строка>, <ПодстрокаПоиска>) . Jika tidak -

Bohong StrNumberOccurrences(– Mengira bilangan kejadian subrentetan carian dalam rentetan sumber.

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — StrNumberOccurrences ( "belajar, belajar dan belajar lagi", "kajian" , ""); // 3

menggantikan parameter ke dalam rentetan dengan nombor. Baris mesti mengandungi penanda penggantian bentuk: “%1..%N”. Penomboran penanda bermula dari 1. Jika nilai parameter Tidak ditentukan, "1" , "2" ) ; , rentetan kosong digantikan.

StrTemplate (

"Parameter 1 = %1, Parameter 2 = %2"<Строка>, <ЧислоСимволов>) // Parameter 1= 1, Parameter 2 = 2

Fungsi penukaran rentetan:<Строка>, <ЧислоСимволов>) singa(

– mengembalikan aksara pertama rentetan.<Строка>, <НачальныйНомер>, <ЧислоСимволов>) Betul(<ЧислоСимволов>– mengembalikan aksara terakhir rentetan.<НачальныйНомер>.

Rabu(<Строка>) – mengembalikan rentetan panjang

, bermula daripada simbol<Строка>) AbbrL(

memangkas aksara tidak penting di sebelah kiri aksara penting pertama dalam rentetan.<Строка>) Abbr(

— memotong aksara tidak penting di sebelah kanan aksara penting terakhir dalam baris.<Строка>, <НомерСтроки>) AbbrLP(

– memotong aksara tidak penting di sebelah kiri aksara penting pertama dalam baris dan di sebelah kanan aksara penting terakhir dalam baris.

StrGetString(<Строка>) – Mendapat rentetan berbilang baris mengikut nombor.

Ciri-ciri lain:<Строка>) StrLength(

– mengembalikan bilangan aksara dalam rentetan.<Строка1>, <Строка2> ) – membandingkan dua rentetan dalam cara yang tidak peka huruf besar-besaran. Fungsi berfungsi serupa dengan objek Perbandingan Nilai. Pulangan:

  • 1 - jika baris pertama lebih besar daripada baris kedua
  • -1 - jika baris kedua lebih besar daripada yang pertama
  • 0 - jika rentetan adalah sama

StrCompare("Baris pertama" , "Barisan kedua" );

// 1 Talian Baris dalam 1C 8.3 dalam bahasa terbina dalam 1C mewakili nilai jenis primitif

. Nilai jenis ini mengandungi rentetan Unicode dengan panjang sewenang-wenangnya. Pembolehubah jenis rentetan ialah satu set aksara yang disertakan dalam petikan.

Contoh 1. Mari buat pembolehubah rentetan dengan teks.

StringVariable = "Hello dunia!";

Fungsi untuk bekerja dengan rentetan dalam 1s 8.3

StrLength

StrGetString(<Строка>) Bahagian ini akan menyediakan fungsi utama yang membolehkan anda menukar baris dalam 1c, atau menganalisis maklumat yang terkandung di dalamnya.

. Mengembalikan bilangan aksara yang terkandung dalam rentetan yang diluluskan sebagai parameter.

Contoh 2. Mari kita mengira bilangan aksara dalam baris “Hello world!”

String = "Hello dunia!"; NumberofCharacters = StrLength(String); Laporan(NumberCharacters);

Hasil daripada melaksanakan kod ini akan menjadi paparan bilangan aksara dalam baris: 11.

Rabu(<Строка>) AbbrL
. Memangkas aksara tidak penting di sebelah kiri aksara penting pertama dalam rentetan.

  • Watak kecil:
  • ruang;
  • ruang tidak pecah;
  • jadual;
  • pemulangan pengangkutan;
  • suapan talian;

terjemahan borang (halaman).

Contoh 3. Alih keluar semua ruang dari sebelah kiri baris "dunia!" dan tambahkan baris "Hello" padanya.

String = Singkatan("dunia!"); String = "Hello"+String; Laporan(String);

Hasil daripada melaksanakan kod ini akan menjadi paparan baris “Hello world!” pada skrin.

, bermula daripada simbol<Строка>) Disingkatkan

. Memangkas aksara tidak penting di sebelah kanan aksara penting pertama dalam rentetan.

Contoh 4. Bentuk daripada baris “Hello” dan “peace!” frasa "Hello dunia!"

Baris = Singkatan("Hello ")+" "+ Singkatan("dunia!"); Laporan(String);

memangkas aksara tidak penting di sebelah kiri aksara penting pertama dalam rentetan.<Строка>) AbbrLP

. Memangkas aksara tidak penting di sebelah kanan aksara penting pertama dalam rentetan, dan juga memangkas aksara tidak ketara di sebelah kiri aksara penting pertama dalam rentetan. Fungsi ini digunakan lebih kerap daripada dua sebelumnya, kerana ia lebih universal.

Contoh 5. Alih keluar aksara yang tidak penting di kiri dan kanan atas nama rakan niaga.

Counterparty = Direktori.Cari Melalui Butiran("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

"Parameter 1 = %1, Parameter 2 = %2"<Строка>, <ЧислоСимволов>) Singa . Mendapat aksara pertama rentetan, bilangan aksara dinyatakan dalam parameter

Bilangan Watak. Contoh 6. Biarkan dalam struktur mengandungi nama pertama, terakhir dan patronimik pekerja. Dapatkan rentetan dengan nama keluarga dan inisial.

NameInitial = Lev(Pekerja.Nama, 1); Patronymic Initial = Leo(Pekerja. Patronymic, 1); Nama Penuh = Employee.LastName + " " + FirstName Initial + "."

+ Permulaan Tengah + ".";

Fungsi penukaran rentetan:<Строка>, <ЧислоСимволов>) Betul . Mendapat aksara pertama rentetan, bilangan aksara dinyatakan dalam parameter. Mendapat aksara terakhir rentetan, bilangan aksara yang dinyatakan dalam parameter

Jika bilangan aksara yang ditentukan melebihi panjang rentetan, maka keseluruhan rentetan dikembalikan. Contoh 7. Biarkan tarikh dalam format "yyyymmdd" ditulis di hujung pembolehubah rentetan, dapatkan rentetan dengan tarikh dan tukarkannya kepada jenis.

tarikh

String = "Tarikh semasa: 20170910"; StringDate = Hak(String, 8); Date = Date(StringDate);

– mengembalikan aksara pertama rentetan.<Строка>, <НачальныйНомер>, <ЧислоСимволов>) Rabu Talian. Mendapat subrentetan daripada rentetan yang diluluskan sebagai parameter , bermula daripada aksara yang nombornya ditentukan dalam parameter Nombor Permulaan . Mendapat aksara pertama rentetan, bilangan aksara dinyatakan dalam parameter dan panjang yang dihantar ke parameter , bermula daripada aksara yang nombornya ditentukan dalam parameter Penomboran aksara dalam baris bermula dari 1. Jika dalam parameter nilai kurang daripada atau sama dengan sifar ditentukan, maka parameter mengambil nilai 1. Jika parameter Bilangan Watak

tidak ditentukan, maka aksara sehingga akhir baris dipilih.

Contoh 8. Biarkan pembolehubah rentetan bermula dari kedudukan kesembilan mengandungi kod rantau, anda harus mendapatkannya dan menulisnya dalam baris yang berasingan.

String = "Wilayah: 99 Moscow"; Rantau = Purata(String, 9, 2);

// 4<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) PageFind

  • Talian. Mencari subrentetan yang ditentukan dalam rentetan, mengembalikan nombor kedudukan aksara pertama subrentetan yang ditemui. Mari lihat parameter fungsi ini:
  • . Rentetan sumber; Carian Subrentetan
  • . Cari subrentetan; Arah Carian
    • . Menentukan arah untuk mencari subrentetan dalam rentetan. Boleh mengambil nilai:;
    • Arah Carian.Dari Mula;
  • Cari. Arah Tamat Kedudukan Permulaan
  • . Menentukan kedudukan dalam rentetan di mana carian bermula; NumberOccurrences

. Menentukan nombor kejadian subrentetan yang dicari dalam rentetan sumber.

Contoh 9. Dalam baris “Hello world!” Tentukan kedudukan kejadian terakhir bagi aksara "dan".

PositionNumber = StrFind("Hello world!", "and", SearchDirection.End); Laporan(Nombor Jawatan);

Hasil daripada melaksanakan kod ini adalah untuk memaparkan nombor kejadian terakhir simbol "dan": 9.

VReg(<Строка>) VReg

. Menukar semua aksara dalam rentetan yang ditentukan dalam 1s8 kepada huruf besar.

Contoh 10: Tukar rentetan "hello world!" kepada huruf besar.

StringVreg = VReg("hello world!"); Laporan(StringVreg);

Hasil daripada melaksanakan kod ini akan menjadi paparan baris "HELLO WORLD!"

NReg(<Строка>) NReg

. Menukar semua aksara dalam rentetan yang ditentukan dalam 1s8 kepada huruf kecil.

Contoh 11: Tukar rentetan "HELLO WORLD!" kepada huruf kecil.

Hasil daripada melaksanakan kod ini akan menjadi paparan baris "hello world!"

Treg

TReg(<Строка>) . Menukar rentetan seperti berikut: aksara pertama setiap perkataan ditukar kepada huruf besar, baki aksara perkataan ditukar kepada huruf kecil.

Contoh 12: Gunakan huruf besar pada huruf pertama perkataan dalam baris "hello world!"

StringTreg = TReg("hello world!"); Laporan(StringTreg);

Hasil daripada melaksanakan kod ini akan menjadi paparan baris "Hello World!"

Simbol

simbol(<КодСимвола>) . Mendapat watak dengan kod Unicodnya.

Contoh 13. Tambahkan kiri dan kanan pada baris “Hello World!” simbol ★

StringWithStars = Simbol("9733")+"Hello World!"+Simbol("9733"); Laporan(StringWithStars);

Hasil daripada melaksanakan kod ini akan menjadi paparan baris "★Hello World!★"

Kod Simbol

Terdapat juga fungsi songsang yang membolehkan anda mengetahui kod sesuatu simbol.<Строка>, <НомерСимвола>) . Mendapat kod aksara Unicode daripada rentetan yang dinyatakan dalam parameter pertama, terletak pada kedudukan yang dinyatakan dalam parameter kedua.

Contoh 14. Ketahui kod aksara terakhir dalam baris “Hello World!”

String = "Hello World!"; CharacterCode = CharacterCode(String, StrLength(String)); Maklumkan(Kod Aksara);

Hasil daripada melaksanakan kod ini akan menjadi paparan kod simbol “!” - 33.

EmptyString

– mencari semua kejadian subrentetan carian dalam rentetan sumber dan menggantikannya dengan subrentetan gantian.<Строка>) . Menyemak sama ada rentetan hanya terdiri daripada aksara yang tidak penting, iaitu sama ada ia kosong.

Contoh 15. Periksa sama ada rentetan yang terdiri daripada tiga ruang kosong.

Kosong = EmptyString(" "); Laporan(Kosong);

Hasil daripada melaksanakan kod ini akan menjadi paparan perkataan "Ya" (ungkapan rentetan nilai logik // Halaman).

PageReplace

, "tentang", Arah Carian. Dari Mula, 1, 4);<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Mencari semua kejadian subrentetan carian dalam rentetan sumber dan menggantikannya dengan subrentetan gantian.

Contoh 16. Dalam baris “Hello World!” menggantikan perkataan "Peace" dengan perkataan "Friends".

String = StrReplace("Hello World!", "World", "Friends"); Laporan(String);

Hasil daripada melaksanakan kod ini akan menjadi paparan baris "Hello Friends!"

StrNumberLines

Ciri-ciri lain:<Строка>) . Membolehkan anda mengira bilangan baris dalam rentetan berbilang baris. Untuk pergi ke baris baharu dalam 1s 8, gunakan simbol PS(watak baris baharu).

Contoh 17. Tentukan bilangan baris dalam teks:
"Barisan pertama
Baris kedua
baris ketiga"

Number = StrNumberString("Baris pertama"+Characters.PS +"Baris kedua"+Symbols.PS +"Baris ketiga"); Laporan(Nombor);

Hasil daripada melaksanakan kod ini akan menjadi paparan bilangan baris dalam teks: 3

StrGetString

— memotong aksara tidak penting di sebelah kanan aksara penting terakhir dalam baris.<Строка>, <НомерСтроки>) . Mendapat garis dalam rentetan berbilang baris dengan nombornya. Penomboran baris bermula dari 1.

Contoh 18. Dapatkan baris terakhir dalam teks:
"Barisan pertama
Baris kedua
baris ketiga"

Teks = "Barisan pertama" + Simbol PS + "Barisan kedua" + PS + "Barisan ketiga"; LastRow = StrGetRow(Teks, StrNumberLines(Teks)); Laporan(LastLine);

Hasil daripada melaksanakan kod ini akan menjadi paparan baris "Barisan Ketiga".

PageNumberOccurrences

betul<Строка>, <ПодстрокаПоиска>) . Mengembalikan bilangan kejadian subrentetan yang ditentukan dalam rentetan. Fungsi ini sensitif huruf besar-besaran.

Contoh 19. Tentukan berapa kali huruf "c" muncul dalam baris "Garis dalam 1s 8.3 dan 8.2", tanpa mengira kesnya.

Baris = "Garis dalam 1s 8.3 dan 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Laporan(NumberOccurrences);

Hasil daripada melaksanakan kod ini akan menjadi paparan bilangan kejadian: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Menyemak sama ada rentetan yang diluluskan dalam parameter pertama bermula dengan rentetan dalam parameter kedua.

Contoh 20. Tentukan sama ada TIN rakan niaga yang dipilih bermula dengan nombor 1. Biarkan pembolehubah Pihak lawan Rakan niaga.

TIN = Counterparty.TIN; StartsUNits = StrStartsWith(TIN, "1"); Jika Bermula dengan unit Kemudian //Kod anda EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Menyemak sama ada rentetan yang diluluskan dalam parameter pertama berakhir dengan rentetan dalam parameter kedua.

Contoh 21. Tentukan sama ada TIN rakan niaga yang dipilih berakhir dengan nombor 2. Biarkan pembolehubah Pihak lawan rujukan kepada elemen direktori disimpan Rakan niaga.

TIN = Counterparty.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); Jika EndsInTwo Kemudian //Kod anda EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Membahagi rentetan kepada bahagian menggunakan aksara pembatas yang ditentukan dan menulis rentetan yang terhasil pada tatasusunan. Parameter pertama menyimpan rentetan sumber, yang kedua mengandungi rentetan yang mengandungi pemisah, yang ketiga menunjukkan sama ada rentetan kosong harus ditulis pada tatasusunan (secara lalai // Halaman).

Contoh 22. Biarkan kita mempunyai rentetan yang mengandungi nombor yang dipisahkan oleh simbol “;”, dapatkan tatasusunan nombor daripada rentetan itu.

Rentetan = "1; 2; 3"; Array = StrDivide(String, ";"); For Count = 0 By Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count]));

Tatasusunan Pengecualian[Sch] = 0;

EndAttemptsEndCycle;

Hasil daripada pelaksanaan, tatasusunan dengan nombor dari 1 hingga 3 akan diperolehi.<Строки>, <Разделитель>) PageConnect

StrConnect(

. Menukar tatasusunan rentetan daripada parameter pertama kepada rentetan yang mengandungi semua elemen tatasusunan yang dipisahkan oleh pembatas yang dinyatakan dalam parameter kedua.

Terdapat beberapa mekanisme untuk bekerja dengan rentetan dalam pertanyaan 1C. Pertama, baris boleh ditambah. Kedua, anda boleh mengambil subrentetan daripada rentetan. Ketiga, rentetan boleh dibandingkan, termasuk mengikut corak. Mungkin itu sahaja yang boleh dilakukan dengan rentetan.

Penambahan rentetan

Untuk menambah baris dalam pertanyaan, operasi "+" digunakan. Anda hanya boleh menambah rentetan panjang terhad.

PILIH "Nama: " + Nama Pihak Rakan SEBAGAI Lajur 1 DARI Direktori Pihak Rakan Sejawat WHERE Pautan = &Pautan

Fungsi subrentetan

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

Analog fungsi Environment() daripada model objek. Fungsi Substring() boleh digunakan pada data rentetan dan membolehkan anda memilih serpihan <Строки> , bermula dengan nombor aksara <НачальнаяПозиция> (aksara dalam baris dinomborkan bermula dari 1) dan panjang <Длина> watak. Hasil pengiraan fungsi mempunyai jenis rentetan panjang berubah-ubah, dan panjang akan dianggap tidak terhad jika <Строка> mempunyai panjang dan parameter yang tidak terhad <Длина> bukan pemalar atau lebih besar daripada 1024.

Jika panjang rentetan kurang daripada yang ditentukan dalam parameter kedua, maka fungsi akan mengembalikan rentetan kosong.

Perhatian! Menggunakan fungsi SUBSTRING() untuk menukar rentetan panjang tanpa had kepada rentetan panjang terhad adalah tidak disyorkan. Sebaliknya, lebih baik menggunakan operator cast EXPRESS().

Fungsi Serupa

Jika kami perlu memastikan bahawa atribut rentetan memenuhi kriteria tertentu, kami membandingkannya:

PILIH Counterparty Nama AS Lajur 1 DARI Direktori Pihak Rakan Sejawat WHERE Nama Rakan Sejawat = "Gazprom".

Tetapi bagaimana jika anda memerlukan perbandingan yang lebih halus? Bukan sahaja kesamaan atau ketidaksamaan, tetapi persamaan dengan corak tertentu? Inilah fungsi SIMILAR yang dicipta.

SUKA — Operator untuk menyemak rentetan untuk persamaan dengan corak. Analog LIKE dalam SQL.

Operator SIMILAR membolehkan anda membandingkan nilai ungkapan yang ditentukan di sebelah kirinya dengan rentetan corak yang ditentukan di sebelah kanan. Nilai ungkapan mestilah daripada jenis rentetan. Jika nilai ungkapan sepadan dengan corak, hasil pengendali akan menjadi BENAR, jika tidak, ia akan menjadi PALSU.

Aksara berikut dalam rentetan corak ialah aksara perkhidmatan dan mempunyai makna yang berbeza daripada aksara rentetan:

  • % (peratus): urutan yang mengandungi sebarang bilangan aksara arbitrari;
  • _ (garis bawah): satu watak sewenang-wenangnya;
  • […] (satu atau lebih aksara dalam kurungan segi empat sama): mana-mana aksara tunggal yang disenaraikan di dalam kurungan segi empat sama. Penghitungan mungkin mengandungi julat, contohnya a-z, bermaksud aksara arbitrari yang disertakan dalam julat, termasuk hujung julat;
  • [^...] (dalam kurungan persegi tanda penolakan diikuti oleh satu atau lebih aksara): mana-mana aksara tunggal selain daripada yang disenaraikan mengikut tanda penolakan.

Sebarang simbol lain bermaksud dirinya sendiri dan tidak membawa sebarang beban tambahan. Jika salah satu daripada aksara yang disenaraikan perlu ditulis sebagai dirinya sendiri, maka ia mesti didahului dengan<Спецсимвол>. saya sendiri<Спецсимвол>(mana-mana watak yang sesuai) ditakrifkan dalam pernyataan yang sama selepas kata kunci WATAK KHAS.