BILGI: İşlev değişiklikleri art/AscB/AscW ve Chr/ChrB/ChrW

Makale çevirileri Makale çevirileri
Makale numarası: 145745 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Yıl, BASIC programcılar art kullanarak ve Chr işlevleri, erişim ve ASCII karakter kümesindeki. Unicode kabulü, temel işletim sistemi ve uygulama geliştirilirken ile gereksinimini art ve Chr işlevleri geliştirilmiş sürümü geliştirmiştir. Bu talebi karşılamak için <a0></a0>, Microsoft Visual Basic (4.0 ve daha yüksek) Windows AscB/ChrB ve AscW/ChrW işlevleri içerir.

Daha fazla bilgi

Sayısal bir formda bir karakter kodlama için kullanılan ANSI standardına değiştirmek için tasarlanmış bir standardı Unicode'dur. ANSI standart yalnızca tek bir bayt her bir karakteri göstermek için kullandığı en çok 256 farklı bir karakter için sınırlıdır. Bu konuşma ingilizce bir hedef kitle gereksinimlerini için yeterli olsa da, dünya çapında yazılım pazarda kabul ettiğinizde, kısa döner. Unicode standardı, her karakterin iki bit olarak gösterilir, tüm Unicode karakter kümesi 65,536 olası konumlarını içerir.

Microsoft Windows NT, Microsoft Windows 2000 ve Microsoft OLE 2.0 tamamen Unicode tabanlı; Visual Basic (4.0 ve üstü), kendi içinde Unicode biçiminde tüm dizeler temsil eder. AscW ve ChrW işlevleri, tam Unicode karakterleri erişim izni ver. 0'Den 65. 535'yerine bağımsız değişken yalnızca 0 ile 255 destekledikleri dışında bu işlevleri özgün art ve Chr işlevleri aynı şekilde çalışır. Birçok Visual Basic nesnelerini (örneğin, hata ayıklama penceresi ve etiket ve metin kutusu) bir "?", bu nesneleri bir Unicode karakter görüntülemek nasıl yönetileceği değil.

Tüm dizeleri Unicode biçiminde şimdi dahili olarak gösterilir, çünkü bu dize ikili verileri göstermek için kullanılan basit değil. Verileri bir dize olarak atamak için Chr işlevini kullanarak aynı davranış önce yol açmaz. Örneğin,:
   stringvar = Chr(65)
				

Sonuçları 1 bayt 65 ve 2 bayt değerinin bulunduğu iki baytlık uzun bir dizeyi, değeri 0 ("A" harfi Unicode gösterimi budur) vardır. ANSı'DEN Unicode'a dönüştürme her zaman bu durumda gibi yalnızca ikinci bir byte değeri sıfır olan ekleme gerektirdiği değil, akılda tutulması gereken dikkat edin. Örneğin, ANSI karakter kodları 130 159 aralığındaki en tamamen farklı bir Unicode değerler vardır. 'Debug.Print AscW(Chr(130))' ve değeri 8218 görüntülenir, yürütme deneyin.

Şimdilik, Microsoft Windows, birden çok bayt varlığı ilk baytın en az önemli olan ve birbirini izleyen bayt önemi artar küçük endian işlemci gerektirir. Bu açıklar, neden Unicode karakteri "A" dahili olarak aşağıdaki gibi gösterilir:
   -------------------
   |   65   |    0   |
   -------------------
     byte 0     byte 1
				

AscB ve ChrB işlevleri, çünkü bu işlevler, tek baytlık miktarların işleme izin ne art ve Chr işlevleri tarafından gerçekleştirilmesi için kullanılan çoğaltma için kullanılabilir. Ardışık 65, 66, 67 ve 68 numaralı ikili değerleri olan dört bayt dize isterseniz Chr işlevi'ı kullanarak çalışmayacak. Bunun yerine, ChrB işlevini kullanmanız gerekir. Örneğin,:
   stringvar = ChrB(65) & ChrB(66) & ChrB(67) & ChrB(68)
				

Alternatif olarak, yeni bayt veri türündeki diziler oluşturmak ve bu şekilde ikili veri özelliğini kullanabilirsiniz.

Aşağıda listelenen bazı basit kullanan daha da bu bilgileri açıklığa kavuşturmak için bu işlevlerin sonuçları hakkında bir açıklama var.

Asc(Chr(255)) yazdırma "255-->"

Chr işlevi, bir Unicode karakter veriyor dışında burada, yerine, tek baytlık bir ANSI karakter iki bayt kaplayan yeni bir şey.

Asc(ChrB(255)) yazdırma 5 - geçersiz yordam çağrısı-->.

Bu kullanımı, art işlevi, her zaman en az iki baytlık bir parametre umuyor ChrB işlevini yalnızca tek bir bayt döndürüyor olduğundan hata verir.

Asc(Chr(256)) yazdırma 5 - geçersiz yordam çağrısı-->.

Chr işlevi iki baytlık Unicode karakter verir, ancak yine de yalnızca 0 ile 255'bağımsız değişkeni (bir DBCS etkin sistemde art/Chr iki baytlık DBCS karakterlerini, bunları için ve Unicode dönüştürme işleme Not) arasında bir sayı alır. ChrW işlevini kullanarak Unicode karakter konumları 65. 536'tam erişim sağlar.

AscW(ChrW(256)) yazdırma "256-->"

Bu bu bölümdeki ilk deyim yeni sürümüdür. ChrW işlevi bir değeri 0'dan 65, 536 alır ve bu karakteri (32-bit sistemlerde) döndürür. AscW işlevi, bu iki baytlık karakter bir Unicode karakter olarak yorumlar ve doğru bu karakterin Unicode değerini verir.

Asc(ChrW(256)) yazdırma "65-->"
Asc(ChrW(5000)) yazdırma "63-->"

Işte ChrW işlevi ilk değerlendirilen neler olduğunu. Bu nedenle işlev için asc("A") azaltır. ChrW(256) "A" karakteridir ve Unicode (ve ANSI) "A" 65 sayısıdır. Visual Basic tarafından yalnızca görüntüler Chr(5000) temsil karakteri'ı görüntülemek nasıl bilmez, çünkü bir "?", ve beklendiği gibi için Unicode ve ANSI değer "?" 63 olur.

AscB(Chr(65)) yazdırma "65-->"
AscB(ChrW(256)) yazdırma "0-->"
AscB(ChrW(257)) yazdırma "1-->"
AscB(ChrW(555)) yazdırma "43-->"
AscB(ChrW(65535)) yazdırma "255-->"

Tüm bu değerleri her karakter kendi içinde nasıl temsil edilir anlama açıklanması iade (yukarıdaki küçük endian başvuru bakın) ve AscB işlevi, yalnızca ilk baytın aldığı karakterin altında görünen özellik. Görsel olarak aşağıdaki şemada gibi görünür:
             -------------------
   Chr(65)   |   65   |    0   |
             -------------------
   Chr(256)  |    0   |    1   |
            -------------------
   Chr(257)  |    1   |    1   |
             -------------------
   Chr(555)  |   43   |    1   |
             -------------------
   Chr(65535)|   255  |  255   |
             -------------------
               byte 0    byte 1
				

AscB işlevi, yalnızca her karakterin ilk baytı olan döndürür.

Yazdırma ChrB(65)-->. ""

Visual Basic ChrB işlevini yalnızca tek baytlık bir dize döndürüyor çünkü ChrB işlev çağrısı için hiçbir şey yazdırır. Bunların geçerli bir Unicode karakter (veya karakter dizisi) oluşturan değil çünkü bir bayt dizesini a?a??daki Visual Basic için hiçbir şey anlamına gelir.

"A"--> yazdırma ChrB(65) & ChrB(0)

Bu durumda, size iki bir bayt dizesini tek bir iki baytlık dize bitiştirme. Sonuç bit deseni, "A" Unicode için bit deseni aynı olduğundan, ne, Visual Basic yazdırır olmasıdır.

Özellikler

Makale numarası: 145745 - Last Review: 7 Mayıs 2003 Çarşamba - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
Anahtar Kelimeler: 
kbmt kbinfo KB145745 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:145745

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com