1c dizideki ikinci oluşumu bulun. Yeni Dize İşlevleri

1c dizideki ikinci oluşumu bulun.  Yeni Dize İşlevleri
1c dizideki ikinci oluşumu bulun. Yeni Dize İşlevleri

1C 8.3'teki özel karakterler - ayarla özel karakterler dize veri türleri için.

Her birini daha ayrıntılı olarak ele alalım.

1C'deki özel karakterler: VK, VTab, NPP, PS, PF, Tab

Özel karakterler, "Karakterler" global özelliği kullanılarak çağrılır, örneğin:

Metin = "Sekmeden önceki metin" + Symbols.Tab + "sekmeden sonraki metin";

267 1C video dersini ücretsiz alın:

  • VC (CR) - satır başı. Nokta vuruşlu veya papatya tekerleği yazıcılardaki eski günlerde, bu karakter kodu, yazıcı kafasını satırın başına döndüren bir komut olarak kullanılıyordu.
  • NSP (NBSP) - bölünemez boşluk (sıklıkla sayısal dizilerde görülür, örneğin: 1000).
  • PS (LF) - Satır besleme (LF - satır besleme) - tamburu bir satır aşağı kaydırın, yazıcı kafası aynı yerde.
  • PF (FF) - format çevirisi. Sayfa yazıcıdan çıkarılır, yazdırma yeni bir sayfadan başlar.
  • Sekme (Sekme) - bir sekme karakteri. Yatay sekmeler - en yakın sütuna, bir sayının katına (örneğin, 8, 16, 24 ...) yazdırmak için konumlandırmanın bir yolu.
  • VTab (VTab) - dikey tablolama. Yataya benzer, sadece çizgi üzerinde konumlanıyoruz. Yazıcı tamburunun bir miktar kaymasına neden olur (yazıcı kafası aynı konumda (sütun) kalır!)

PS + VK, iki işlemi gerçekleştiren bir kombinasyondur: tamburu bir satır aşağı kaydırır ve taşıyıcıyı, kullanıcının Enter tuşuna basarak almayı beklediği şeye karşılık gelen satırın başına döndürür.

1C programlamayı öğrenmeye başlıyorsanız, tavsiye ederiz. ücretsiz kurs(unutma

String, 1C:Enterprise 8 sistemlerindeki ilkel veri türlerinden biridir. astar metin içerir.

Tip Değişken Değerler astarçift ​​tırnak içine alınır. Çoklu Değişkenler bu türden katlanabilir.

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

Sonunda Per3önemli olacak" Kelime 1 Kelime 2".

Ayrıca 1C:Enterprise 8 sistemleri, dizilerle çalışmak için işlevler sağlar. Ana olanları düşünün:

GirinDize(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — işlev, kullanıcının bir tür değişkenin değerini belirtebileceği bir iletişim kutusu görüntülemek üzere tasarlanmıştır. Astar. Parametre <Строка> gereklidir ve girilen dizgenin 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ş dizisinin maksimum uzunluğunu gösterir. Varsayılan değer sıfırdır, bu da sınırsız uzunluk anlamına gelir. Parametre <Многострочность> isteğe bağlı. Çok satırlı metin giriş modunu belirtir: True - satır ayırıcılı çok satırlı metin girişi; Yanlış - Basit bir dize girin.

Bir dize girilebilir ve Unicode'daki karakter kodunu bilerek:

Sembol(<КодСимвола>) — Kod bir sayı olarak girilir.

Harf= Sembol(1103 ) ; // BEN

Bir karakterin kodunu bulmanızı sağlayan bir ters işlev de vardır.

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

Metin durumu dönüştürme işlevleri:

VReg(<Строка>) - Bir dizideki tüm karakterleri büyük harfe dönüştürür.

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

TReg(<Строка>) - dizenin tüm karakterlerini başlık durumuna dönüştürür. Yani, tüm kelimelerin ilk harfleri büyük harfe, kalan harfler ise küçük harfe dönüştürülür.

Bir dizgede karakter arama ve değiştirme işlevleri:

Bulmak(<Строка>, <ПодстрокаПоиска>) - arama alt dizesinin geçtiği karakter numarasını bulur. Örneğin:

Bul ("Dize" , "göz" ) ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — arama alt dizisinin geçtiği karakter numarasını bulur, oluşum numarası karşılık gelen parametrede belirtilir. Bu durumda arama, numarası parametrede belirtilen karakterden başlar. Başlangıç ​​konumu. Dizinin başından veya sonundan arama yapılabilir. Örneğin:

4 Numara Girişi= StrFind( "savunma", "o" , Arama Yönü. İlk, 1 , 4 ) ; // 7

StrDeğiştir(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Kaynak dizgide arama alt dizgisinin tüm oluşumlarını bulur ve onu değiştirilen alt dizgiyle değiştirir.

StrReplace("Dize" , "göz" , "" ) ; // Sayfa

Boş satır(<Строка>) - dizide anlamlı karakterler olup olmadığını kontrol eder. Önemli karakterler yoksa veya hiç karakter yoksa, değer döndürülür Doğru. Aksi takdirde - Yalan.

StrNumberGeçme Sayısı(<Строка>, <ПодстрокаПоиска>) – kaynak dizgide arama alt dizgisinin oluşum sayısını hesaplar.

StrNumberOkuma Sayısı ( "Çalış, çalış ve tekrar çalış", "çalışmak" , "" ) ; // 3

StrŞablon(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — parametreleri dizgede sayıya göre değiştirir. Dize şu biçimdeki ikame işaretçilerini içermelidir: "%1..%N". İşaretçilerin numaralandırılması 1'den başlar. Parametre değeri ise Tanımsız, boş dize değiştirilir.

StrPattern ( "Seçenek 1 = %1, Seçenek 2 = %2", "1" , "2" ) ; // Parametre 1= 1, Parametre 2 = 2

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

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

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

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

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

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

Kısaltılmış LP(<Строка>) - dizedeki ilk önemli karakterin solundaki ve dizedeki son önemli karakterin sağındaki anlamsız karakterleri keser.

StrGetString(<Строка>, <НомерСтроки>) – çok satırlı bir dizenin dizesini sayıya göre alır.

Diğer özellikler:

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

StrSatı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 kabul edilir.

StrKarşılaştır(<Строка1>, <Строка2> ) - iki diziyi duyarsız bir şekilde karşılaştırır. İşlev bir nesne gibi çalışır Değerleri Karşılaştırma. İ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 tipi 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 inceleyeceğiz çeşitli yollarörneklerle 1C 8.3 ve 8.2'deki dize türleriyle çalışın.

Astar

Herhangi bir türdeki değişkeni dizgeye çevirmek için aynı isimli "String()" fonksiyonu vardır. Girdi parametresi, dize gösterimi elde edilecek olan değişkenin kendisi olacaktır.

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

Yalnızca ilkel türleri değil, aynı zamanda dizin ve belge öğeleri gibi başkalarını da bir dizeye dönüştürmek mümkündür.

Kısaltılmış LP, Kısaltılmış L, Kısaltılmış P

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

abbrl("Her iki taraftaki boşluklar kaldırılacak") // "Her iki taraftaki boşluklar kaldırılacak"
abbr("Her iki taraftaki boşluklar kaldırılacak") // "Soldaki boşluklar kaldırılacak"
abbr("Her iki taraftaki boşluklar kaldırılacak ") // "Sağdaki boşluklar kaldırılacak"

Aslan, Sağ, Orta

Bu işlevler, bir dizenin bir kısmını kesmenize izin verir. Lion() işlevi, dizenin belirtilen uzunluğun sol tarafındaki kısmını döndürür. "Right()" işlevi benzerdir, ancak kırpma işlemi sağda yapılır. "Çar()" işlevi, dizenin seçileceği karakter sayısını ve uzunluğunu belirlemenizi sağlar.

Lion("Dize değişkeni", 4) // "Stro" döndürür
Right("Dize değişkeni", 7) // "değişken" döndürür
avg("Dize değişkeni", 2, 5)// "troco" döndürür

StrLength

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

StrLength("Word") // yürütmenin sonucu 5 olacak

Bulmak

İşlev, bir dizi değişkeninde bir dizenin bir bölümünü aramayı mümkün kılar. Dönen değer, 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.

Aramanın büyük/küçük harfe duyarlı olduğunu unutmayın. Orijinal dizede arama alt dizesinin birden fazla geçtiği yer varsa, işlev ilk geçtiği yerin başlangıcını döndürür.

Find("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ırbaşı ve diğerleri gibi önemsiz karakterler dikkate alınmaz.

EmptyString("Vasily Ivanovich Pupkin") // işlev False döndürür
EmptyString(" ") // işlev True 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. "Vreg()", orijinal dizeyi büyük harfle, "HReg()" küçük harfle döndürür ve "TReg()", her bir kelimenin ilk karakteri büyük ve sonraki tüm karakterler küçük harf olacak şekilde biçimlendirir.

VReg("GENEL MÜDÜR") // dönüş değeri - "GENEL MÜDÜR"
HReg("GENEL MÜDÜR") // dönüş değeri - "CEO"
TReg("GENEL MÜDÜR") // dönüş değeri - "Genel Müdür"

StrDeğiştir

Bu işlev değiştirmenin bir analogudur metin editörleri. Dize değişkenlerinde bir karakteri veya karakter kümesini diğeriyle değiştirmenize olanak tanır.

StrReplace("kırmızı, beyaz, sarı", ",", ";") // "kırmızı" döndürür; beyaz; sarı"

StrNumberRows

İşlev, bir metin değişkeninde satır başı ile ayrılmış satır sayısını belirlemenizi sağlar.

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

ind \u003d 1 için StrSatır Sayısı ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Döngü
<тело цикла>
Döngü Sonu;

StrGetString

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

StrGetString("Dize1" + Semboller.PS + "Dize2" + Semboller.PS + "Dize3", 2) // "Hat2" döndürür

StrNumberOkuma Sayısı

İşlev, aranan dizide bir karakterin veya alt dizenin tekrarlanma sayısını sayar.

StrNumberInstallations("a;b;c;d; ", ";") // işlev 4 sayısını döndürür

Sembol ve SembolKodu

Bu işlevler, bir karakteri Unicode koduna göre almanızı ve bu kodu karakterin kendisine göre belirlemenizi sağlar.

SymbolCode("A") // işlev 1 040 sayısını döndürür
SymbolCode(1040) // işlev "A" değerini döndürür

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

Dize Birleştirme

Birden fazla dizgiyi birleştirmek (concatenate) için sadece toplama işlecini kullanın.

"Line 1" + "Line 2" //iki satır eklemenin sonucu "Line 1 Line 2" olur

Tip dönüştürme

Bir türü bir dizgeye dönüştürmek için, örneğin bir sözlük elemanına, bir sayıya vb. bir referans, "String ()" işlevini kullanmak yeterlidir. "ShortLP()" gibi işlevler de değişkenleri bir dizeye dönüştürür, ancak hemen önemsiz karakterleri keser.

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

Bir sayıyı dizgeye dönüştürürken, programın otomatik olarak bini ayıran bir boşluk eklediğini lütfen unutmayın. Bunu önlemek için aşağıdaki yapıları kullanabilirsiniz:

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

String(Format(1000,"CH=")) // "1000" döndürür

Bir dizedeki alıntılar

Oldukça sık olarak, bir dize değişkenine tırnak koyma ihtiyacıyla uğraşmak zorunda kalacaksınız. Yapılandırıcıda yazılmış bir istek metni veya sadece bir değişken olabilir. Bu sorunu çözmek için iki alıntı karakteri ayarlamanız yeterlidir.

Header = String("Horns and Hooves LLC biziz!") // "Roga and Hooves LLC biziz!"

Çok satırlı, satır sonu

Yaratmak için çok satırlı metin sadece satır sonu karakterleri ekleyin (Symbols.PS).

MultilineText = "Birinci Satır" + Karakterler.PS + "İkinci Satır"

Boşluklar nasıl kaldırılır

Sağdaki veya soldaki boşlukları kaldırmak için "Stretch()" işlevini ("Scrpt()" ve "ScreenP()" yanı sıra) kullanabilirsiniz:

StringWithoutSpaces = ShortLP(" Birçok harf ") // işlev "Birçok harf" değerini döndürür

Bir sayıyı dizgeye dönüştürdükten sonra kaldırmanız gerekirse kırılmaz boşluklar, aşağıdaki yapıyı kullanın:

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

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

StringWithoutSpaces = StrReplace(" merhaba", " " ,"") // "merhaba" döndürür

Dizeleri birbiriyle karşılaştırma

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

"merhaba" = "merhaba" // false döndürür
"Merhaba" = "Merhaba" // True döndürecek
"Merhaba" = "Hoşçakal" // False döndürür

Yerleşik dil 1c'deki 1C 8.3'teki dizeler, ilkel türdeki değerlerdir Astar. Bu türdeki değerler, keyfi uzunlukta bir Unicode dizesi içerir. Dize tipi değişkenler, tırnak işaretleri içine alınmış bir dizi karakterdir.

Örnek 1. Metin içeren bir dize değişkeni oluşturalım.

StringVariable = "Merhaba dünya!";

1s 8.3'te dizelerle çalışmak için işlevler

Bu bölüm, 1'lerde satır değiştirmenizi veya içerdikleri bilgileri analiz etmenizi sağlayan ana işlevleri sağlayacaktır.

StrLength

StrLength(<Строка>) . Parametrede iletilen 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(String); Rapor(Karakter Sayısı);

Bu kodu çalıştırmanın sonucu, dizideki karakter sayısını gösterecektir: 11.

Kısaltılmış

Kısa(<Строка>) . Bir dizedeki ilk önemli karakterin solundaki önemsiz karakterleri kırpar.
Önemsiz karakterler:

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

Örnek 3. "Barış!" dizesinin sol tarafındaki tüm boşlukları kaldırın. ve ona "Merhaba" dizesini ekleyin.

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

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

Kısaltma

kısa(<Строка>) . Bir dizideki ilk önemli karakterin sağındaki anlamsız karakterleri kırpar.

Örnek 4. "Merhaba" ve "dünya!" ifade "Merhaba dünya!"

String = abbr("Merhaba")+" "+abbr("dünya!"); Bildir(Dize);

Kısaltılmış LP

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

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

Yüklenici = Dizinler.Yükleniciler.Bul Ayrıntılar("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = Kısaltılmış LP(ContractorObject.Description); ContractorObject.Write();

bir aslan

Bir aslan(<Строка>, <ЧислоСимволов>) . Bir dizgenin 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 ile dize alın.

İlkAdı = Aslan(Çalışan.Adı, 1); Patronimik Başlangıç ​​\u200b\u200b= Aslan(Çalışan.Patronimik, 1); TamAdı = Çalışan.Soyadı + " " + Adın İlk Adı + "." + Patronimik Başlangıç ​​+ ".";

Haklar

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

Örnek 7. “yyyymmdd” formatındaki bir string değişkeninin sonuna tarih yazalım, tarih içeren bir string alıp type'a çevirelim. tarih.

Dize = " Geçerli tarih: 20170910"; StringDate = Rights(String, 8); Date = Date(StringDate);

Çarşamba

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

Örnek 8. String değişkeni dokuzuncu pozisyondan başlayarak bölge kodunu içersin, onu alıp ayrı bir satıra yazmalısınız.

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

Sayfa Bul

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . 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:

  • Astar. Kaynak dizisi;
  • Alt Dizi Arama. İstenen alt dize;
  • Yön Arama. Bir dizgede bir alt dizginin aranacağı yönü belirtir. Değer alabilir:
    • Arama Yönü.Başlangıçtan itibaren;
    • Arama Yönü.Sondan;
  • Başlangıç ​​konumu. Dizede aramanın başlatılacağı konumu belirtir;
  • Giriş numarası. Kaynak dizgide aranan alt dizginin oluşum sayısını belirtir.

Örnek 9. "Merhaba dünya!" "ve" karakterinin son geçtiği konumu belirleyin.

PositionNumber = StrFind("Merhaba Dünya!", "ve", SearchDirection.From End); Bildir(PozisyonNumarası);

Bu kodun yürütülmesinin sonucu, ekranda "ve" sembolünün son geçtiği sayının görüntülenmesi olacaktır: 9.

VReg

VReg(<Строка>) . Belirtilen dizenin tüm karakterlerini 1s 8'den büyük harfe dönüştürür.

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

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

Bu kodun yürütülmesinin sonucu, "HELLO WORLD!" dizisinin görüntülenmesi olacaktır.

HReg

HReg(<Строка>) . Belirtilen dizenin tüm karakterlerini 1s 8'e küçük harfe dönüştürür.

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

StringNreg = NReg("Merhaba DÜNYA!"); Rapor(StringVreg);

Bu kodun yürütülmesinin sonucu, "merhaba dünya!" dizisinin görüntülenmesi olacaktır.

TReg

TReg(<Строка>) . Bir dizeyi ş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 yazın.

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

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

Sembol

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

Örnek 13. "Merhaba Dünya!" satırına sol ve sağ ekleyin. sembol ★

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

Bu kod yürütmenin sonucu, "★Merhaba Dünya!★" dizisinin görüntülenmesi olacaktır.

SembolKodu

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

Örnek 14. "Merhaba Dünya!" Dizisindeki son karakterin kodunu bulun.

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

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

Boş satır

Boş satır(<Строка>) . Dizenin yalnızca anlamlı olmayan karakterlerden oluşup oluşmadığını, yani boş olup olmadığını kontrol eder.

Örnek 15. Dizenin boş olup olmadığını ve üç boşluktan oluşup oluşmadığını kontrol edin.

Empty = EmptyString(" "); Rapor(Boş);

Bu kodun yürütülmesinin sonucu, "Evet" kelimesinin görüntülenmesi olacaktır (bir boole değerinin dize ifadesi Doğru).

StrDeğiştir

StrDeğiştir(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Kaynak dizgide arama alt dizgisinin tüm oluşumlarını bulur ve onu değiştirilen alt dizgiyle değiştirir.

Örnek 16. "Merhaba Dünya!" "Dünya" kelimesini "Arkadaşlar" kelimesiyle değiştirin.

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

Bu kodun yürütülmesinin sonucu, "Merhaba Arkadaşlar!"

StrNumberRows

StrSatır Sayısı(<Строка>) . Çok satırlı bir dizedeki satır sayısını saymanızı sağlar. 1s 8'de yeni bir satıra geçmek için 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"

Sayı = StrSatır Sayısı("Birinci satır"+Semboller.PS +"İkinci satır"+Semboller.PS +"Üçüncü satır"); Numarayı bildir);

Bu kodun yürütülmesinin sonucu, metindeki satır sayısının görüntülenmesi olacaktır: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Çok satırlı bir dizide numarasına göre 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 = "Birinci Satır"+Karakterler.PS +"İkinci Satır"+Karakterler.PS +"Üçüncü Satır"; LastLine = StrGetLine(Metin, StrSatır Sayısı(Metin)); Bildir(Son Satır);

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

StrNumberOkuma Sayısı

StrNumberGeçme 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. Durumuna bakılmaksızın “c” harfinin “1s ​​8.3 ve 8.2'deki Satır” satırına kaç kez girdiğini belirleyin.

String = "1s 8.3 ve 8.2'deki satırlar"; Oluşum Sayısı = StrOluşma Sayısı(Vreg(String), "C"); rapor(olay sayısı);

Bu kodu çalıştırmanın sonucu, ekranda oluşum sayısını gösterecektir: 2.

Sayfa Başlangıç ​​Kimden

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Birinci parametrede verilen stringin ikinci parametredeki string ile başlayıp başlamadığını kontrol eder.

Örnek 20. Seçilen karşı tarafın VKN'sinin 1 rakamıyla başlayıp başlamadığını belirleyin. karşı taraf karşı taraflar.

TIN = Yüklenici.TIN; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Sonra //Kodunuz EndIf;

Sayfa Bitiş Tarihi

StrEndsOn(<Строка>, <СтрокаПоиска>) . Birinci parametrede iletilen dizenin ikinci parametredeki dizeyle bitip bitmediğini kontrol eder.

Örnek 21. Seçilen karşı tarafın VKN'sinin 2 ile bitip bitmediğini belirleyin. karşı taraf dizin öğesinin bağlantısı saklanır karşı taraflar.

TIN = Yüklenici.TIN; İki İle Biter = Str İle Biter (TIN, "2"); If İki İle Bitiyorsa //Kodunuz EndIf;

Sayfa Bölünmüş

StrBöl(<Строка>, <Разделитель>, <ВключатьПустые>) . Bir dizeyi belirtilen sınırlayıcı karakterlere göre parçalara böler ve ortaya çıkan dizeleri bir diziye yazar. İlk parametre depolar orijinal dizi, ikincisinde ayırıcı içeren bir dizi, üçüncüsünde bir diziye yazmanın gerekli olup olmadığı belirtilir. boş satırlar(varsayılan Doğru).

Örnek 22. ";" sembolü ile ayrılmış sayıları içeren bir dizimiz olduğunu varsayalım, diziden bir sayı dizisi elde edin.

Dizgi = "1; 2; 3"; Dizi = StrSplit(Dize, ";"); For Count = 0 By Array.Quantity() - 1 Döngü Denemesi Dizi[Sayı] = Sayı(Ablp(Dizi[Sayı]))); İstisna Dizisi[W] = 0; EndTry EndCycle;

Yürütme sonucunda 1'den 3'e kadar sayıların olduğu bir dizi elde edilecektir.

StrConnect

StrConnect(<Строки>, <Разделитель>) . İkinci parametrede belirtilen sınırlayıcıyı kullanarak bir dize dizisini ilk parametreden dizinin tüm öğelerini içeren bir dizeye dönüştürür.

Örnek 23. Önceki örnekteki sayı dizisini kullanarak orijinal diziyi elde edin.

For Count = 0 By Array.Quantity() - 1 Döngü Dizi[Sayı] = String(Dizi[Sayı]); Döngü Sonu; String = StrConnect(Dizi, "; ");

8.3.6.1977 sürümünde uygulandı.

Dizelerle çalışmak için işlev kümesini genişlettik. Bunu, dize verilerini ayrıştırmak için size daha gelişmiş araçlar sağlamak amacıyla yaptık. Yeni işlevler, metin analizinin teknolojik görevlerinde kullanışlı ve faydalı olacaktır. Biçimlendirilmiş bir biçimde veri içeren metnin ayrıştırılmasıyla ilgili görevlerde. Bu, ekipmandan alınan bazı dosyaların analizi veya örneğin bir teknolojik günlüğün analizi olabilir.

Yeni işlevlerin gerçekleştirdiği tüm eylemleri daha önce gerçekleştirebilirsiniz. Gömülü bir dilde yazılmış az çok karmaşık algoritmaların yardımıyla. Bu nedenle, yeni işlevler size temelde yeni fırsatlar vermez. Ancak kod miktarını azaltmanıza, kodu daha basit ve anlaşılır hale getirmenize olanak tanırlar. Ek olarak, eylemlerin yürütülmesini hızlandırmanıza izin verirler. Çünkü platformda uygulanan işlevler, yerleşik dilde yazılmış benzer bir algoritmadan elbette daha hızlı çalışır.

Biçim işlevi StrTemplate()

Bu işlev, parametreleri bir dizgede değiştirir. Böyle bir dönüşüme duyulan ihtiyaç, örneğin uyarı mesajları görüntülenirken sıklıkla ortaya çıkar. Bu işlevin sözdizimi aşağıdaki gibidir:

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

<Шаблон>parametre temsillerinin yerini alacak dizedir.

<Значение1> , ... <Значение10>- bunlar, gösterimleri dizide ikame edilmesi gereken parametrelerdir (maksimum - on).

Değiştirmeyi gerçekleştirmek istediğiniz şablonda belirli bir yeri belirtmek için, %1, ... %10 biçiminde işaretleyiciler kullanmanız gerekir. Şablonda yer alan işaretçi sayısı ile değerleri içeren parametre sayısı eşleşmelidir.

Örneğin, böyle bir işleci yürütmenin sonucu:

bir satır olacak:

2. satırda veri hatası (Tarih türü gerektirir)

Dize İşlevi StrCompare()

Bu işlev, iki dizgeyi büyük/küçük harf duyarlılığı olmadan karşılaştırır. Örneğin, bunun gibi:

ValueComparison nesnesini kullanmadan önce aynı eylemi gerçekleştirebilirsiniz:

Ancak, yeni işlevi kullanmak daha basit görünüyor. Ayrıca işlev, Value Compare nesnesinden farklı olarak hem ince istemcide hem de web istemcisinde çalışır.

Dize İşlevleri StrBeginsC(), StrEndsTo()

Bu işlevler, bir dizenin belirli bir alt dizeyle başlayıp başlamadığını veya bir dizenin belirli bir alt dizeyle bitip bitmediğini belirler. Bu işlevlerin algoritmasını yerleşik bir dilde uygulamak zor değildir, ancak bunların varlığı, daha temiz ve daha anlaşılır kod yazmanıza olanak tanır. Ve daha hızlı çalışırlar.

Örneğin, If ifadesinde kullanımları uygundur:

StrSplit(), StrJoin() dizeleriyle çalışmak için işlevler

Bu işlevler, dizeyi belirtilen sınırlayıcıya göre parçalara ayırır. Veya tam tersi, seçilen ayırıcıyı aralarına ekleyerek birkaç satırı bir araya getirirler. Teknolojik bir günlük olan günlükleri oluşturmak veya analiz etmek için uygundurlar. Örneğin, bir teknolojik günlük girişini daha fazla analiz için uygun parçalara kolayca ayırabilirsiniz:

Dizelerle çalışma işlevi StrFind()

Eski Bul() işlevi yerine, yeni özellik ek özelliklere sahip olan:

  • Farklı yönlerde arama yapın (baştan sona);
  • Belirtilen konumdan arama yapın;
  • Şununla bir oluşum ara: belirtilen numara(ikinci, üçüncü vb.).

Aslında, eski işlevin yeteneklerini kopyalar. Bu, eski sürümlerde derlenen modüllerle uyumluluğu korumak için yapılır. Eski Bul() işlevinin artık kullanılmaması önerilir.

Aşağıda, yeni arama yeteneklerinin kullanıldığı bir örnek verilmiştir. Geriye doğru arama yapmak, biçimlendirilmiş bir dizenin son parçasına ihtiyacınız olduğunda kullanışlıdır, örneğin, Ad Soyad URL'deki dosya. Ve belirli bir konumdan arama yapmak, dizenin tamamında değil, bilinen bir parçada arama yapmanız gereken durumlarda yardımcı olur.