1c dize örnekleriyle çalışma. Dizelerle çalışmak için yeni işlevler

Bir dize, 1C: Enterprise 8'deki ilkel veri türlerinden biridir. Türü olan değişkenler hat metin içerir.

Tür değişkenlerinin değerleri hatçift ​​tırnak içine alınır. Bu türden birkaç değişken eklenebilir.

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

Sonuçta Per3"anlamına gelecek Kelime 1 Kelime 2 ″.

Ek olarak, 1C: Enterprise 8 sistemleri, dizelerle çalışmak için işlevler sağlar. Ana olanları düşünelim:

Dize Girin (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — işlev, kullanıcının bir değer belirleyebileceği bir iletişim kutusu görüntülemeyi amaçlamaktadır. değişken tip Hat... Parametre <Строка> gereklidir ve girilen dizenin yazılacağı değişkenin adını içerir. Parametre <Подсказка> isteğe bağlı, iletişim kutusunun başlığıdır. Parametre <Длина> isteğe bağlı, giriş dizesinin maksimum uzunluğunu belirtir. Varsayılan sıfırdır, yani sınırsız uzunluk. Parametre <Многострочность> isteğe bağlı. Çok satırlı metin için giriş modunu belirler: Doğru - satır ayırıcılı çok satırlı metin girişi; False - basit bir dize girişi.

Dize girilebilir ve Unicode karakter kodu verilebilir:

sembol(<КодСимвола>) — kod sayı olarak girilir.

Harf = Sembol (1103); // NS

Bir karakterin kodunu bulmanızı sağlayan bir ters fonksiyon da vardır.

SembolKodu (<Строка>, <НомерСимвола>) — belirtilen Unicode karakter numarasını sayı olarak döndürür.

Vaka dönüştürme işlevleri:

BReg (<Строка>) - bir dizedeki tüm karakterleri dönüştürür büyük harf.

HPreg (<Строка>) - dizedeki tüm karakterleri küçük harfe dönüştürür.

Treg (<Строка>) - bir dizedeki tüm karakterleri büyük harfe dönüştürür. Yani, tüm kelimelerin ilk harfleri büyük harfe, geri kalan harfler küçük harfe dönüştürülür.

Bir dizedeki karakterleri aramak ve değiştirmek için işlevler:

Bulmak(<Строка>, <ПодстрокаПоиска>) - arama alt dizisinin oluşumunun karakter numarasını bulur. Örneğin:

Bul ("Dize", "Tamam"); // 4

Bulmak (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - arama alt dizisinin oluşum karakterinin numarasını bulur, oluşum sayısı ilgili parametrede belirtilir. Bu durumda arama, parametrede numarası belirtilen bir karakterle başlar. İlk pozisyon. Dizenin başından veya sonundan arama yapılabilir. Örneğin:

Number4 Olaylar = StrFind ( "Savunma yeteneği", "o", Arama Yönü. Baştan, 1, 4); // 7

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

StrReplace ("Dize", "Tamam", ""); // Sayfa

boş satır(<Строка>) - önemli karakterler için dizeyi kontrol eder. Önemli karakter yoksa veya hiç karakter yoksa, değer döndürülür. NS... Aksi halde - Yalan.

Olay Sayısı (<Строка>, <ПодстрокаПоиска>) - orijinal dizede arama alt dizesinin oluşum sayısını hesaplar.

Olay Sayısı ( "Çalış, çalış ve tekrar çalış", "ders çalışma" , "" ) ; // 3

Sayfa Şablonu (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — parametreleri diziye sayı ile değiştirir. Dize, "% 1 ..% N" biçimindeki ikame işaretçilerini içermelidir. İşaretçiler 1'den başlayarak numaralandırılmıştır. Eğer parametre değeri Tanımsız, boş bir dize değiştirilir.

Sayfa Şablonu ( "Parametre 1 =% 1, Parametre 2 =% 2", "1" , "2" ) ; // Parametre 1 = 1, Parametre 2 = 2

Dize dönüştürme işlevleri:

Bir aslan(<Строка>, <ЧислоСимволов>) - önce dizenin ilk karakterlerini döndürür.

Doğru (<Строка>, <ЧислоСимволов>) - dizenin son karakterlerini döndürür.

Çarşamba (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - bir uzunluk dizisi döndürür<ЧислоСимволов>karakterle başlayan<НачальныйНомер>.

Kısalt (<Строка>) dizedeki ilk önemli karakterin solundaki önemsiz karakterleri keser.

Kısaltma (<Строка>) - dizedeki son önemli karakterin sağındaki önemsiz karakterleri keser.

SocrLP (<Строка>) - satırdaki ilk anlamlı karakterin solundaki ve satırdaki son önemli karakterin sağındaki önemsiz karakterleri keser.

StrGetString (<Строка>, <НомерСтроки>) - numaraya göre çok satırlı bir dize dizesi alır.

Diğer fonksiyonlar:

StrUzunluk (<Строка>) - bir dizedeki karakter sayısını döndürür.

Satır Sayısı (<Строка>) - çok satırlı bir dizedeki satır sayısını döndürür. Bir satır, önceki satırdan yeni satır karakteriyle ayrılmışsa yeni olarak kabul edilir.

Karşılaştırmak (<Строка1>, <Строка2> ) - büyük/küçük harfe duyarlı olmayan iki dizeyi karşılaştırır. İşlev, bir nesneyle aynı şekilde çalışır Değerlerin Karşılaştırılması... İadeler:

  • 1 - ilk satır ikinciden büyükse
  • -1 - ikinci satır birinciden büyükse
  • 0 - dizeler eşitse

StrCompare ("İlk satır", "İkinci satır"); // 1

"String" türü tüm programlama dillerinde bulunur. İlkeldir ve 1C'de onunla çalışmak için birçok işlev vardır. Bu yazıda, daha yakından bakacağız Farklı yollarörneklerle 1C 8.3 ve 8.2'deki dize türleriyle çalışma.

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
Dize (12345) // "12 345" değerini 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ırırken ve dönüştürürken ç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 değiştirilmesine benzer metin editörleri... 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 StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Döngüsü
<тело цикла>
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

String (Format (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 ("Horns and Hoofs LLC" - bu biziz! ") // döndürür" Horns and Hooves LLC - bu biziz! "

Birden çok satır, 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 8.3'teki yerleşik dilde 1C'deki dizeler, ilkel türdeki değerlerdir. Hat... Bu türdeki değerler bir Unicode dizesi içerir keyfi uzunluk... 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.

dize = " geçerli tarih: 20170910 "; StringDate = Sağ (String, 8); Date = Date (StringDate);

Ç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 bir 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 (<Строка>) ... Tüm karakterleri dönüştürür belirtilen dize 1s 8'den büyük harfe.

Ö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 geri 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. Gitmek için Yeni hat 1s 8'de sembol kullanılır 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. Al son satır Metinde:
"İ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.

Olay 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 çalıştırmanın sonucu, oluşum sayısının görüntülenmesi olacaktır: 2.

Sayfa Şununla Başlıyor

Sayfa Şununla Başlar (<Строка>, <СтрокаПоиска>) ... İ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 sayısı 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ı karakterlere dayalı olarak 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; Denemelerin Sonu Döngünün 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 [Rb]); Döngü Sonu; String = StrConnect (Dizi, ";");

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şlemi kullanılır. Yalnızca sınırlı uzunluktaki diziler katlanabilir.

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

alt dize işlevi

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

Med () işlevinin analogu nesne modeli... 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 TRUE değerini döndürür, aksi takdirde YANLIŞ olur.

Ş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;
  • […] (v köşeli parantez 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 olumsuzluk işareti): Olumsuzluk işaretinden sonra listelenenler dışındaki 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 eşleşen karakter), aynı ifadede aşağıdakilerden sonra tanımlanır: anahtar kelimeÖZEL SEMBOL.