Alt dize () işlevinin özelliği. substring () 1c işlevinin özelliği, istekteki dizenin uzunluğunu öğrenin

1C: Kurumsal sorgu dilinde, işlev SUBSTRAT () v SUBSTRING biçiminde (<Исходная строка>, <Начало>, <Длина>) dize türündeki verilere uygulanabilir ve bir parçanın vurgulanmasına izin verir<Исходной строки>karakter numarası ile başlayan<Начало>(dizedeki karakterler 1'den numaralandırılmıştır) ve uzunluk<Длина>karakterler. SUBSTRING () işlevinin değerlendirilmesinin sonucu değişken uzunluklu bir dize türüne sahiptir ve uzunluk, aşağıdaki durumlarda sınırsız olarak kabul edilir:<Исходная строка>sınırsız uzunluk ve parametreye sahiptir<Длина>sabit değil veya 1024'ü aşıyor.

Bir SQL sunucusunda SUBSTRING () işlevinin değerlendirilmesi:
İstemci-sunucu çalışma modunda, SUBSTRING () işlevi, SUBSTRING () işlevinin sonuç türünü karmaşık kurallara göre hesaplayan SQL Server veritabanı sunucusuna iletilen ilgili SQL ifadesinin SUBSTRING () işlevi kullanılarak uygulanır. parametrelerinin türüne ve değerlerine bağlı olarak ve kullanıldığı bağlama bağlı olarak aynıdır.

Çoğu durumda, bu kurallar 1C: Enterprise sorgusunun yürütülmesini etkilemez, ancak SQL Server tarafından hesaplanan sonuç dizesinin maksimum uzunluğunun sorgunun yürütülmesi için gerekli olduğu durumlar vardır. SUBSTRING() işlevinin kullanıldığı bazı bağlamlarda, sonucunun maksimum uzunluğunun, SQL Server'da 4000 karakter olan bir sınırlı dizenin maksimum uzunluğu olabileceğini unutmamak önemlidir. Bu, isteğin beklenmeyen anormal bir şekilde sonlandırılmasına neden olabilir.

Örneğin, istek:
Kod 1C v 8.x SEÇ
TERCİH

BAŞKA BOŞ
GİBİ SON GÖRÜNÜM,
TERCİH
NE ZAMAN Kind = & LegalAddressPhysPersons
SONRA ABONE OLUN (Görüntüleme, 0, 200)
BAŞKA BOŞ
GİBİ BİTİR Görünüm1
İTİBAREN

GÖRE SIRALA
Verim,
Performans1
DBMS hatası mesajıyla anormal şekilde sonlandırılır:
SQL Server için Microsoft OLE DB Sağlayıcısı: Uyarı: GROUP BY veya ORDER BY yan tümcesindeki tüm sütunların toplam uzunluğu 8000 baytı aştığı için sorgu işlemcisi optimize ediciden bir sorgu planı üretemedi.
HRESULT = 80040E14, SQLSTATE = 42000, yerel = 8618

Bunun nedeni, Microsoft SQL Server'ın aşağıdaki ifadenin sonucu olan maksimum dize uzunluğunu hesaplamasıdır:
Kod 1C v 8.x SEÇİM
NE ZAMAN Kind = & LegalAddressPhysPersons
SONRA ABONE OLUN (Görüntüleme, 0, 200)
BAŞKA BOŞ
GİBİ SON GÖRÜNÜM,
4000 karaktere eşittir. Bu nedenle, bu tür iki alandan oluşan bir kaydın uzunluğu, sıralama işlemi için izin verilen 8000 baytı aşıyor.

SQL Server'da SUBSTRING () işlevinin çalıştırılmasının açıklanan özelliği nedeniyle, sınırsız uzunluktaki dizeleri sınırlı uzunluktaki dizelere dönüştürmek için SUBSTRING () işlevinin kullanılması önerilmez. Bunun yerine EXPRESS () gibi bir yayın işlemi kullanmak daha iyidir. Özellikle, yukarıdaki örnek şu şekilde yeniden yazılabilir:
Kod 1C v 8.x SEÇ
TERCİH
NE ZAMAN Kind = & LegalAddressPhysPersons
BAŞKA BOŞ
GİBİ SON GÖRÜNÜM,
TERCİH
NE ZAMAN Kind = & LegalAddressPhysPersons
THEN EXPRESS (AS String'i (200) Temsil Eder)
BAŞKA BOŞ
GİBİ BİTİR Görünüm1
İTİBAREN
Bilgi Kayıt Ol.İletişim Bilgileri AS İletişim Bilgileri
GÖRE SIRALA
Verim,
Performans1

1C sorgularında dizelerle çalışmak için birkaç mekanizma vardır. İlk olarak, satırlar eklenebilir. İkinci olarak, bir dizgeden bir alt dizgi alabilirsiniz. Üçüncüsü, diziler, desen dahil olmak üzere karşılaştırılabilir. Muhtemelen dizelerle yapabileceğiniz tek şey budur.

Dizelerin birleştirilmesi

Bir sorguya dize eklemek için "+" işlemini kullanın. Yalnızca sınırlı uzunluktaki dizeler eklenebilir.

"Ad:" SEÇİN + Karşı Taraflar. Ad Dizinden Sütun1 OLARAK. Karşı Taraflar OLARAK Karşı Taraflar NEREDE Karşı Taraflar. Bağlantı = & Bağlantı

alt dize işlevi

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

Nesne modelinden Environment () işlevinin analogu. Substring () işlevi, bir dize türündeki verilere uygulanabilir ve bir parça seçmenize izin verir. <Строки> karakter numarası ile başlayan <НачальнаяПозиция> (dizedeki karakterler 1'den numaralandırılmıştır) ve uzunluk <Длина> karakterler. İşlevin değerlendirilmesinin sonucu değişken uzunluklu bir dize tipine sahiptir ve uzunluk, aşağıdaki durumlarda sınırsız olarak kabul edilecektir. <Строка> sınırsız uzunluk ve parametreye sahiptir <Длина> sabit değil veya 1024'ü aşıyor.

Dize uzunluğu ikinci parametrede belirtilenden küçükse, işlev boş bir dize döndürür.

Dikkat! Sınırsız uzunluktaki dizeleri sınırlı uzunluktaki dizelere dönüştürmek için SUBSTRING () işlevinin kullanılması önerilmez. Bunun yerine EXPRESS () gibi bir yayın işlemi kullanmak daha iyidir.

İşlev Gibi

Bir string niteliğinin belirli kriterleri karşıladığından emin olmamız gerekirse, onu karşılaştırırız:

Karşı Tarafları SEÇİN.İsim Dizinden Sütun1 OLARAK. Karşı Taraflar OLARAK Karşı Taraflar NEREDE Karşı Taraflar.Ad = "Gazprom"

Ama ya daha zor bir karşılaştırma istiyorsanız? Sadece eşitlik veya eşitsizlik değil, belirli bir kalıp gibi mi? LIKE işlevi tam olarak bunun için yaratılmıştır.

LIKE - Model gibi bir diziyi kontrol etme operatörü. SQL'de LIKE'ın analogu.

LIKE operatörü, solunda belirtilen ifadenin değerini, sağda belirtilen şablon dizesiyle karşılaştırmanıza olanak tanır. İfade değeri dize türünde olmalıdır. İfade değeri kalıpla eşleşirse, operatör DOĞRU ile sonuçlanır, aksi takdirde - YANLIŞ.

Şablon dizesindeki aşağıdaki karakterler hizmet karakterleridir ve dize karakterinden farklı bir anlama sahiptir:

  • % (yüzde): herhangi bir sayıda rastgele karakter içeren bir dizi;
  • _ (alt çizgi): isteğe bağlı bir karakter;
  • […] (Köşeli parantez içinde bir veya daha fazla karakter): Köşeli parantez içinde listelenen herhangi bir tek karakter. Numaralandırma, aralıklar içerebilir, örneğin a-z, yani aralığın uçları da dahil olmak üzere aralığa dahil edilen rasgele bir karakter;
  • [^…] (Köşeli parantez içinde bir veya daha fazla karakterin izlediği bir olumsuzluk işareti): Olumsuzluk işaretinden sonra listelenenler dışında herhangi bir tek karakter.

Diğer herhangi bir sembol kendisi anlamına gelir ve herhangi bir ek anlam taşımaz. Listelenen karakterlerden birinin kendisi olarak yazılması gerekiyorsa, önüne<Спецсимвол>... Kendim<Спецсимвол>(herhangi bir uygun karakter), SPECIAL CHARACTER anahtar sözcüğünden sonra aynı ifadede tanımlanır.

"String" türü tüm programlama dillerinde bulunur. İlkeldir ve 1C'de onunla çalışmak için birçok işlev vardır. Bu makalede, örnekler kullanarak 1C 8.3 ve 8.2'deki dize türleriyle çalışmanın çeşitli yollarına daha yakından bakacağız.

Hat

Herhangi bir türdeki bir değişkeni bir dizgeye dönüştürmek için aynı adı taşıyan "String ()" adlı bir fonksiyon vardır. Girdi parametresi, dize gösterimi elde edilecek olan değişkenin kendisi olacaktır.

Dize (Yanlış) // "Hayır" döndürür
String (12345) // "12 345" döndürür
Dize (CurrentDate ()) // 21.07.2017 11:55:36 ″

Yalnızca ilkel türleri değil, diğerlerini de, örneğin referans kitaplarının öğelerini, belgeleri bir dizeye dönüştürmek mümkündür.

SocrLP, SocrL, SocrP

Bu işlevlerin giriş parametreleri bir dize tipi değişkendir. İşlevler, önemsiz karakterleri (boşluklar, satır başları vb.) kaldırır: sırasıyla sol ve sağ taraftan, yalnızca sol taraftan ve yalnızca sağdan.

AbbrLP ("Her iki taraftaki boşluklar kaldırılacak") // "Her iki taraftaki boşluklar kaldırılacak"
Kısaltılmış ("Her iki taraftaki boşluklar kaldırılacak") // "Soldaki boşluklar kaldırılacak"
Kısaltma ("Her iki taraftaki boşluklar kaldırılacak") // "Sağdaki boşluklar kaldırılacak"

Aslan, Sağ, Çarşamba

Bu işlevler, bir dizenin bir kısmını kırpmanıza izin verir. "Aslan ()" işlevi, dizenin belirtilen uzunluktaki sol tarafından bir kısmını döndürür. "Sağ ()" işlevi aynıdır, ancak kırpma sağda yapılır. "Med ()" işlevi, dizenin seçileceği karakterin sayısını ve uzunluğunu belirtmenize olanak tanır.

Aslan ("Dize değişkeni", 4) // "Stro" döndürür
Sağ ("Dize değişkeni", 7) // "değişken" döndürür
Çarşamba ("Dize değişkeni", 2, 5) // "troco" döndürür

Str Uzunluğu

İşlev, dize değişkeninde bulunan karakter sayısını belirler.

StrLength ("Kelime") // yürütme sonucu 5 numara olacak

Bulmak

İşlev, herhangi bir dize değişkeninde bir dizenin bir bölümünü aramayı mümkün kılar. Dönüş değeri, bulunan dizenin başlangıcının konumunu gösteren bir sayı olacaktır. Eşleşme bulunamazsa sıfır döndürülür.

Aramaların büyük/küçük harfe duyarlı olduğunu lütfen unutmayın. Orijinal dize, arama alt dizesinin birden fazla örneğini içeriyorsa, işlev ilk oluşumun başlangıcını döndürür.

Bul ("bir, iki, bir, iki, üç", "iki") // işlev 6 sayısını döndürür

boş satır

Bu işlevi kullanmak, bir dizenin boş olup olmadığını belirlemenizi sağlar. Boşluk, satır başı ve diğerleri gibi önemsiz karakterler yok sayılır.

EmptyString ("Pupkin Vasily Ivanovich") // fonksiyon False değerini döndürür
EmptyString ("") // işlevi True değerini döndürür

VReg, NReg, Treg

Bu işlevler, dize değişkenlerini karşılaştırmak ve dönüştürmek için çok kullanışlıdır. Breg () orijinal dizgiyi büyük harf, HPreg () küçük harf olarak döndürür ve TRreg () onu biçimlendirir, böylece her bir kelimenin ilk karakteri büyük harf ve sonraki tüm karakterler küçük harf olur.

Vreg ("GENEL MÜDÜR") // dönüş değeri - "GENEL MÜDÜR"
НReg ("GENEL MÜDÜR") // dönüş değeri - "genel müdür"
TREG ("GENEL MÜDÜR") // dönüş değeri - "Genel Müdür"

SayfaDeğiştir

Bu işlev, metin düzenleyicilerdeki değiştirmeye benzer. Dize değişkenlerinde bir karakterin veya karakter kümesinin yerine başka bir karakter koymanıza olanak tanır.

StrReplace ("kırmızı, beyaz, sarı", ",", ";") // "kırmızı; Beyaz; sarı"

StrNumberStrings

İşlev, bir metin değişkeninde satır başlarıyla ayrılan satır sayısını belirlemenize olanak tanır.

Aşağıdaki örnekteki döngü, RowNumber işlevi 3 döndüreceğinden üç daireden geçecektir:

ind = 1 için StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Döngü
<тело цикла>
Döngü Sonu;

StrGetString

Bu işlev, çok satırlı metinle öncekiyle aynı şekilde çalışır. Bir metin değişkeninden belirli bir dize almanızı sağlar.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // "String2" döndürecek

Str Oluşum Sayısı

İşlev, arama dizesinde bir karakterin veya alt dizenin oluşum sayısını sayar.

Ek Sayısı ("a; b; c; d;", ​​";") // fonksiyon 4 sayısını döndürür

Sembol ve Sembol Kodu

Bu işlevler, bir karakteri Unicode koduna göre almanıza ve bu kodu karakterin kendisine göre belirlemenize olanak tanır.

SymbolCode ("A") // fonksiyon 1 040 sayısını döndürür
SymbolCode (1040) // fonksiyon "A" döndürecek

Dizelerle çalışırken sık yapılan görevler

Birleştirme dizeleri

Birden çok dizeyi birleştirmek için (birleştirme yapmak için) toplama operatörünü kullanmak yeterlidir.

"Satır 1 ″ +" Satır 2 ″ // iki satır eklemenin sonucu "Satır 1 Satır 2" olacaktır

Tür dönüştürme

Bir türü bir dizgeye dönüştürmek için, örneğin bir sözlük öğesine yapılan bir başvuru, bir sayı vb., "String ()" işlevini kullanmak yeterlidir. "Kısaltma ()" gibi işlevler de değişkenleri bir dizeye dönüştürür, ancak hemen önemsiz karakterlerin kesilmesiyle.

String (1000) // "1000" döndürecek

Lütfen bir sayıyı bir dizgeye dönüştürürken, programın otomatik olarak binlik bir boşluk eklediğini unutmayın. Bundan kaçınmak için aşağıdaki yapıları kullanabilirsiniz:

StrReplace (String (1000), Characters.NPP, "") // "1000" değerini döndürür

Dize (Biçim (1000, "CHG =")) // "1000" döndürür

Bir dizedeki alıntılar

Oldukça sık, bir dize değişkeninde tırnak işaretleri belirtme ihtiyacıyla uğraşmak zorunda kalacaksınız. Konfigüratörde yazılmış bir istek metni veya sadece bir değişken olabilir. Bu sorunu çözmek için iki tırnak işareti koymanız yeterlidir.

Başlık = Dize ("LLC" Boynuzlar ve Toynaklar "" - bu biziz! ") // " LLC " Boynuzlar ve Toynakları " döndürür - bu biziz! "

Çok satırlı, satır sonu

Çok satırlı metin oluşturmak için satır sonu karakterlerini (Symbols.PS) eklemek yeterlidir.

MultilineText = "İlk satır" + Symbols.PS + "İkinci satır"

boşluklar nasıl kaldırılır

Sağdaki veya soldaki boşlukları kaldırmak için "Kısaltma ()" ("Kısaltma ()" ve "Kısaltma ()") işlevini kullanabilirsiniz:

StringNoSpaces = KısaltılmışLP ("Birçok harf") // işlev "Birçok harf" değerini döndürür

Bir sayıyı dizgeye dönüştürdükten sonra, bölünemez boşlukları kaldırmanız gerekiyorsa, aşağıdaki yapıyı kullanın:

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // "99999" döndürür

Ayrıca, programcılar genellikle bir metin değişkeninin tüm boşluklarını kaldırmanıza veya başka bir karakterle değiştirmenize izin veren aşağıdaki yapıyı kullanır:

StringNoSpaces = StrReplace ("hoş geldiniz", "", "") // "merhaba" döndürür

Dizeleri birbirleriyle karşılaştırma

Terimler normal eşittir işaretiyle karşılaştırılabilir. Karşılaştırma büyük/küçük harfe duyarlıdır.

"Merhaba" = "merhaba" // False döndürür
"Merhaba" = "Merhaba" // True değerini döndürür
"Merhaba" = "Hoşçakal" // False döndürür

1C: Kurumsal sorgu dilinde, işlev SUBSTRAT () v SUBSTRING biçiminde (<Исходная строка>, <Начало>, <Длина>) dize türündeki verilere uygulanabilir ve bir parçanın vurgulanmasına izin verir<Исходной строки>karakter numarası ile başlayan<Начало>(dizedeki karakterler 1'den numaralandırılmıştır) ve uzunluk<Длина>karakterler. SUBSTRING () işlevinin değerlendirilmesinin sonucu değişken uzunluklu bir dize türüne sahiptir ve uzunluk, aşağıdaki durumlarda sınırsız olarak kabul edilir:<Исходная строка>sınırsız uzunluk ve parametreye sahiptir<Длина>sabit değil veya 1024'ü aşıyor.

Bir SQL sunucusunda SUBSTRING () işlevinin değerlendirilmesi:
İstemci-sunucu çalışma modunda, SUBSTRING () işlevi, SUBSTRING () işlevinin sonuç türünü karmaşık kurallara göre hesaplayan SQL Server veritabanı sunucusuna iletilen ilgili SQL ifadesinin SUBSTRING () işlevi kullanılarak uygulanır. parametrelerinin türüne ve değerlerine bağlı olarak ve kullanıldığı bağlama bağlı olarak aynıdır.

Çoğu durumda, bu kurallar 1C: Enterprise sorgusunun yürütülmesini etkilemez, ancak SQL Server tarafından hesaplanan sonuç dizesinin maksimum uzunluğunun sorgunun yürütülmesi için gerekli olduğu durumlar vardır. SUBSTRING() işlevinin kullanıldığı bazı bağlamlarda, sonucunun maksimum uzunluğunun, SQL Server'da 4000 karakter olan bir sınırlı dizenin maksimum uzunluğu olabileceğini unutmamak önemlidir. Bu, isteğin beklenmeyen anormal bir şekilde sonlandırılmasına neden olabilir.

Örneğin, istek:
Kod 1C v 8.x SEÇ
TERCİH

BAŞKA BOŞ
GİBİ SON GÖRÜNÜM,
TERCİH
NE ZAMAN Kind = & LegalAddressPhysPersons
SONRA ABONE OLUN (Görüntüleme, 0, 200)
BAŞKA BOŞ
GİBİ BİTİR Görünüm1
İTİBAREN

GÖRE SIRALA
Verim,
Performans1
DBMS hatası mesajıyla anormal şekilde sonlandırılır:
SQL Server için Microsoft OLE DB Sağlayıcısı: Uyarı: GROUP BY veya ORDER BY yan tümcesindeki tüm sütunların toplam uzunluğu 8000 baytı aştığı için sorgu işlemcisi optimize ediciden bir sorgu planı üretemedi.
HRESULT = 80040E14, SQLSTATE = 42000, yerel = 8618

Bunun nedeni, Microsoft SQL Server'ın aşağıdaki ifadenin sonucu olan maksimum dize uzunluğunu hesaplamasıdır:
Kod 1C v 8.x SEÇİM
NE ZAMAN Kind = & LegalAddressPhysPersons
SONRA ABONE OLUN (Görüntüleme, 0, 200)
BAŞKA BOŞ
GİBİ SON GÖRÜNÜM,
4000 karaktere eşittir. Bu nedenle, bu tür iki alandan oluşan bir kaydın uzunluğu, sıralama işlemi için izin verilen 8000 baytı aşıyor.

SQL Server'da SUBSTRING () işlevinin çalıştırılmasının açıklanan özelliği nedeniyle, sınırsız uzunluktaki dizeleri sınırlı uzunluktaki dizelere dönüştürmek için SUBSTRING () işlevinin kullanılması önerilmez. Bunun yerine EXPRESS () gibi bir yayın işlemi kullanmak daha iyidir. Özellikle, yukarıdaki örnek şu şekilde yeniden yazılabilir:
Kod 1C v 8.x SEÇ
TERCİH
NE ZAMAN Kind = & LegalAddressPhysPersons
BAŞKA BOŞ
GİBİ SON GÖRÜNÜM,
TERCİH
NE ZAMAN Kind = & LegalAddressPhysPersons
THEN EXPRESS (AS String'i (200) Temsil Eder)
BAŞKA BOŞ
GİBİ BİTİR Görünüm1
İTİBAREN
Bilgi Kayıt Ol.İletişim Bilgileri AS İletişim Bilgileri
GÖRE SIRALA
Verim,
Performans1

Yerleşik 1C dilinde 1C 8.3'teki dizeler, ilkel türdeki değerlerdir. Hat... Bu türdeki değerler, rastgele uzunlukta bir Unicode dizesi içerir. Dize türündeki değişkenler, tırnak içine alınmış bir dizi karakterdir.

Örnek 1. Metinli bir string değişken oluşturalım.

StringVariable = "Merhaba dünya!";

1c 8.3'te dizelerle çalışma işlevleri

Bu bölümde, 1c'deki satırları değiştirmenize veya içerdiği bilgileri analiz etmenize izin veren ana işlevler verilecektir.

Str Uzunluğu

StrUzunluk (<Строка>) ... Parametrede geçirilen dizede bulunan karakter sayısını döndürür.

Örnek 2. "Merhaba dünya!" dizesindeki karakter sayısını sayalım.

String = "Merhaba dünya!"; Karakter Sayısı = StrLength (Dize); Rapor (Karakter Sayısı);

Bu kodu çalıştırmanın sonucu, dizedeki karakter sayısının görüntülenmesi olacaktır: 11.

Kısaltma

Kısalt (<Строка>) ... Dizedeki ilk anlamlı karakterin solundaki önemsiz karakterleri keser.
Küçük karakterler:

  • Uzay;
  • kırılmaz alan;
  • tablolama;
  • satırbaşı;
  • satır çevirisi;
  • formun çevirisi (sayfa).

Örnek 3. "world!" satırının solundaki tüm boşlukları kaldırın. ve "Merhaba" dizesini buna ekleyin.

String = kısaltılmış ("barış!"); String = "Merhaba" + Dize; Rapor (Dize);

Bu kodun yürütülmesinin sonucu "Merhaba dünya!" satırının çıktısı olacaktır.

Kısaltma

Kısaltma (<Строка>) ... Dizedeki ilk anlamlı karakterin sağındaki önemsiz karakterleri keser.

Örnek 4. "Merhaba" ve "Dünya!" Oluşturun. "Merhaba dünya!" ifadesi

String = kısaltılmış ("Merhaba") + "" + kısaltılmış ("dünya!"); Rapor (Dize);

SokrLP

SocrLP (<Строка>) ... Dizedeki ilk anlamlı karakterin sağındaki önemsiz karakterleri keser ve ayrıca dizedeki ilk anlamlı karakterin solundaki önemsiz karakterleri de keser. Bu işlev, daha çok yönlü olduğu için önceki ikisinden daha sık kullanılır.

Örnek 5. Karşı tarafın adının solundaki ve sağındaki önemsiz karakterleri kaldırın.

Karşı taraf = Directoryies.Contractors.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject = Counterparty.GetObject(); CounterpartyObject.Name = ShortLP (Karşı tarafObject.Name); CounterpartyObject.Write();

bir aslan

Bir aslan(<Строка>, <ЧислоСимволов>) ... Bir dizenin ilk karakterlerini alır, karakter sayısı parametrede belirtilir Karakter sayısı.

Örnek 6. Yapıya izin verin Çalışançalışanın adını, soyadını ve soyadını içerir. Soyadı ve baş harfleri olan bir dize alın.

InitialName = Aslan (Çalışan.Adı, 1); Patronimik Başlangıç ​​= Aslan (Çalışan, Patronimik, 1); TamAd = Çalışan.Soyadı + "" + İlkAdı + "." + Patronimik'in Baş Harfi + ".";

Doğru

Doğru (<Строка>, <ЧислоСимволов>) ... Bir dizenin son karakterlerini alır, parametrede belirtilen karakter sayısı Karakter sayısı. Belirtilen karakter sayısı dizenin uzunluğunu aşarsa, tüm dize döndürülür.

Örnek 7. Bir dize değişkeninin sonunun "yyyymmdd" biçiminde bir tarih içerdiğini varsayalım, tarih içeren bir dize alın ve onu türe dönüştürün tarih.

String = "Geçerli tarih: 20170910"; StringDate = Sağ (String, 8); Tarih = Tarih (DizeTarihi);

Çarşamba

Çarşamba (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Parametre olarak geçirilen bir dizeden bir alt dize alır Hat, parametrede numarası belirtilen karakterden başlayarak Başlangıç ​​Numarası ve parametreye iletilen uzunluk Karakter sayısı. Satırdaki karakterlerin numaralandırılması 1'den başlar. Başlangıç ​​Numarası sıfırdan küçük veya sıfıra eşit bir değer belirtilirse, parametre 1 değerini alır. Sembol Sayısı belirtilmezse, satırın sonuna kadar olan karakterler seçilir.

Örnek 8. Diyelim ki dokuzuncu pozisyondan başlayan string değişken bölge kodunu içeriyor, onu alıp ayrı bir satıra yazmalısınız.

Satır = "Bölge: 99 Moskova"; Bölge = Çar (Satır, 9, 2);

Arama

Bulmak (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... Bir dizgede belirtilen alt dizgiyi arar, bulunan alt dizginin ilk karakterinin konum numarasını döndürür. Bu işlevin parametrelerini göz önünde bulundurun:

  • Hat... Kaynak dizesi;
  • Alt dizeArama... Aranacak alt dizi;
  • Arama yönü... Bir dizgede bir alt dizginin aranacağı yönü belirtir. Değerler alabilir:
    • Arama Yönü Baştan;
    • Arama Yönü.;
  • İlk pozisyon... Aramanın başladığı dizedeki konumu belirtir;
  • Girdilerin sayısı... Orijinal dizede istenen alt dizenin oluşum sayısını belirtir.

Örnek 9. "Merhaba dünya!" "ve" sembolünün son oluşumunun konumunu belirleyin.

PositionNumber = StrNayti ("Merhaba dünya!", "Ve", DirectionSearch.End); Rapor (Pozisyon Numarası);

Bu kodun yürütülmesinin sonucu, "ve" sembolünün son oluşumunun sayısının görüntülenmesi olacaktır: 9.

VReg

BReg (<Строка>) ... 1s 8'de belirtilen dizedeki tüm karakterleri büyük harfe dönüştürür.

Örnek 10. "merhaba dünya!" dizesini dönüştürün. büyük harfe.

StringBreg = BReg ("merhaba dünya!"); Rapor (StringVreg);

Bu kodu çalıştırmanın sonucu "HELLO WORLD!" satırının görüntülenmesi olacaktır.

nreg

HPreg (<Строка>) ... 1s 8'de belirtilen dizedeki tüm karakterleri küçük harfe dönüştürür.

Örnek 11. "HELLO WORLD!" Dizesini dönüştürün. küçük harfe.

StringNreg = НReg ("HELLO DÜNYA!"); Rapor (StringVreg);

Bu kodun yürütülmesinin sonucu "merhaba dünya!" satırının çıktısı olacaktır.

Treg

Treg (<Строка>) ... Bir dizgiyi şu şekilde dönüştürür: her kelimenin ilk karakteri büyük harfe, kelimenin kalan karakterleri küçük harfe dönüştürülür.

Örnek 12. "merhaba dünya!" dizesindeki kelimelerin ilk harflerini büyük yapın.

StringTreg = Treg ("merhaba dünya!"); Rapor (StringTreg);

Bu kodun yürütülmesinin sonucu, "Merhaba Dünya!" satırının görüntülenmesi olacaktır.

Sembol

sembol(<КодСимвола>) ... Unicod koduna göre bir karakter alır.

Örnek 13. "Merhaba Dünya!" satırını sola ve sağa ekleyelim. sembol ★

StringWithStars = Sembol ("9733") + "Merhaba Dünya!" + Sembol ("9733"); Rapor (StringWithStars);

Bu kodu çalıştırmanın sonucu "★ Merhaba Dünya! ★" satırının çıktısı olacaktır.

Sembol Kodu

SembolKodu (<Строка>, <НомерСимвола>) ... İkinci parametrede belirtilen konumda bulunan birinci parametrede belirtilen dizeden Unicode karakter kodunu alır.

Örnek 14. "Merhaba Dünya!" bölümündeki son karakterin kodunu bulun.

String = "Merhaba Dünya!"; KarakterKodu = KarakterKodu (Dize, StrLength (Dize)); Rapor (SembolKodu);

Bu kodun yürütülmesinin sonucu, "!" Sembol kodunun görüntülenmesi olacaktır. - 33.

boş satır

boş satır(<Строка>) ... Bir dizenin yalnızca önemsiz karakterler içerip içermediğini, yani boş olup olmadığını kontrol eder.

Örnek 15. Üç boşluktan oluşan bir dizenin boş olup olmadığını kontrol edin.

Boş = BoşDize (""); Rapor (Boş);

Bu kodun yürütülmesinin sonucu, "Evet" kelimesinin (mantıksal değerin dize ifadesi) görüntülenmesi olacaktır. NS).

SayfaDeğiştir

SayfaDeğiştir (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... Orijinal dizede arama alt dizesinin tüm oluşumlarını bulur ve onu yeni alt dizeyle değiştirir.

Örnek 16. "Merhaba Dünya!" satırında "Barış" kelimesini "Arkadaşlar" kelimesiyle değiştirin.

String = StrReplace ("Merhaba Dünya!", "Dünya", "Arkadaşlar"); Rapor (Dize);

Bu kodun yürütülmesinin sonucu "Merhaba Arkadaşlar!" satırının görüntülenmesi olacaktır.

StrNumberStrings

Satır Sayısı (<Строка>) ... Çok satırlı bir dizedeki satır sayısını sayar. 1s 8'de yeni bir satıra geçmek için karakteri kullanın PS(satır besleme karakteri).

Örnek 17. Metindeki satır sayısını belirleyin:
"İlk satır
İkinci çizgi
Üçüncü satır "

Number = StrNumberStrings ("İlk satır" + Symbols.PS + "İkinci satır" + Symbols.PS + "Üçüncü satır"); Numarayı bildir);

Bu kodu çalıştırmanın sonucu, metindeki satır sayısının görüntülenmesi olacaktır: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Sayısına göre çok satırlı bir dizede bir dize alır. Satır numaralandırma 1'den başlar.

Örnek 18. Metindeki son satırı alın:
"İlk satır
İkinci çizgi
Üçüncü satır "

Metin = "İlk satır" + Symbols.PS + "İkinci satır" + Symbols.PS + "Üçüncü satır"; LastString = StrGetString (Metin, StrNumberLines (Metin)); Rapor (Son Satır);

Bu kodun yürütülmesinin sonucu, "Üçüncü satır" satırının görüntülenmesi olacaktır.

Str Oluşum Sayısı

Olay Sayısı (<Строка>, <ПодстрокаПоиска>) ... Bir dizede belirtilen alt dizenin oluşum sayısını döndürür. İşlev büyük/küçük harfe duyarlıdır.

Örnek 19. "C" harfinin "1s 8.3 ve 8.2'deki satırlar" satırında, durumuna bakılmaksızın kaç kez göründüğünü belirleyin.

Satır = "1s 8.3 ve 8.2'deki satırlar"; Oluşum Sayısı = Str Bulunma Sayısı (Vreg (String), "S"); Rapor (Olay Sayısı);

Bu kodu yürütmenin sonucu, oluşum sayısının görüntülenmesi olacaktır: 2.

Sayfa Şununla Başlıyor

Sayfa Şununla Başlıyor (<Строка>, <СтрокаПоиска>) ... İlk parametrede iletilen dizenin ikinci parametredeki dizeyle başlayıp başlamadığını kontrol eder.

Örnek 20. Seçilen karşı tarafın TIN'inin 1 ile başlayıp başlamadığını belirleyin. Değişkeni girelim. karşı taraf müteahhitler.

TIN = Karşı taraf.INN; İle başlarBirimler = StrStarts ile (INN, "1"); Eğer BeginsUnits ise // Kodunuz EndIf;

Sayfa Şununla Bitiyor

Sayfa Şununla Bitir (<Строка>, <СтрокаПоиска>) ... İlk parametrede geçen dizenin ikinci parametredeki dizeyle bitip bitmediğini kontrol eder.

Örnek 21. Seçilen karşı tarafın TIN'inin 2 rakamı ile bitip bitmediğini belirleyin. Değişkeni girelim. karşı taraf bir dizin öğesine bir bağlantı saklanır müteahhitler.

TIN = Karşı taraf.INN; İki İle Bitir = Str İle Bitir (INN, "2"); Double İle Biterse // Kodunuz EndIf;

PageSplit

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Belirtilen sınırlayıcı karakterleri kullanarak bir dizeyi parçalara böler ve elde edilen dizeleri bir diziye yazar. İlk parametre orijinal dizeyi saklar, ikincisi ayırıcıyı içeren dizeyi içerir, üçüncüsü diziye boş dizeler yazıp yazılmayacağını belirtir (varsayılan olarak NS).

Örnek 22. Diyelim ki ";" ile ayrılmış sayıları içeren bir dizgemiz var, dizgeden bir dizi sayı alalım.

Dizi = "1; 2; 3"; Dizi = StrSplit (Dize, ";"); RV = 0 By Array.Quantity () - 1 Döngü Deneme Dizisi [Rd] = Sayı (KısaltLP (Dizi [Rd])); İstisna Dizisi [Сч] = 0; Deneme Sonu Döngü Sonu;

Yürütme sonucunda 1'den 3'e kadar sayılar içeren bir dizi elde edilecektir.

StrConnect

StrConnect (<Строки>, <Разделитель>) ... Birinci parametredeki bir dizi diziyi, ikinci parametrede belirtilen sınırlayıcıyla ayrılmış şekilde dizinin tüm öğelerini içeren bir dizeye dönüştürür.

Örnek 23. Önceki örnekteki sayı dizisini kullanarak orijinal diziyi alın.

Rd = 0 için Array.Quantity () - 1 Döngü Dizisi [Rd] = Dize (Dizi [Rd]); Döngü Sonu; String = StrConnect (Dizi, ";");


Tepe