Expressions.e_AscChr1 (ilkin kod) 1) Sub e_AscChr1()
2) Dim s As String, i As Integer
3) s = "A"
4) i = Asc(s)
5) Debug.Print i 'res:65
6) i = 66
7) s = Chr(i)
8) Debug.Print s 'res:"B"
9) End Sub
Analiz: 2-cisətrdəi, s dəyişənləri tipləri göstərilməklə, açıq şəkildə elan etdik.
3-cü sətrdəs dəyişənini inisilizasiya etdərək, ona "A" simvolunu mənimsətdik.
4-cü sətrdə i dəyişəninə Asc daxili funksiyası vasitəsilə, s dəyişəninin ASCII kodunu mənimsətdik. Nəticəni 5-ci sətrdə çap etdik
6-cı sətrdə i dəyişəninə 66 tam ədədini mənimsətdik.
7-ci sətrdə i dəyişəninin qiymətinə (ASCII koduna) uyğun simvolu, Chr daxili funksiyası vasitəsilə s dəyişəninə mənimsətdik. Nəticəni 8-ci sətrdə çap etdik.
Praktik məsələ. ASCII kod cədvəlindən çap simvollarının hamısını Immediate Window pəncərəsinə çıxaran proseduru yazın.
Bu proseduru yazmamışdan əvvəl bir neçə zəruri məlumatları bilmək lazımdır:
ASCII kod cədvəlində 0-31 kodlarına uyğun simvollar idarəetmə xüsusiyyətli olub, çap üçün nəzərdə tutulmayıb. Yerdə qalan 224 koda (255-31=224) müəyyən çap simvolları bağlanıb.
Kod cədvəlində ilk çap kodu 32-dir. Bu kod "probelə", 33-cü kod "!" işarəsinə, 65-ci kod "A" simvoluna və s. uyğundur.
Prosedurdakı sətrlərin sayını azaltmaq üçün For...Next dövr bildirişindən istifadə etmək məsləhətdir.
Algorithms.PrintFullAsciiSimvols (ilkin kod) 1) Sub PrintFullAsciiSimvols()
2) Dim i As Integer
3) For i = 32 To 255
4) Debug.Print i; " "; Chr(i)
5) Next i
6) End Sub
Bu prosedur Immediate Window pəncərəsində yeni sətrdən ASCII kodu və bu koda uyğun simvolu çap edəcəkdir.
Nəzərə almaq lazımdır ki, For...Next dövr bildirişindəki i dəyişəninin: 1) aşağı sərhəd 0-dan başlayarsa,proqram çap üçün nəzərdə tutulmayan simvolları çap etməyə cəhd edəcək. 2) yuxarı sərhəd 255-dən böyük olarsa, kompilyasiya səhvi baş verəcək2.