130 likes | 305 Views
Osnove znakova i stringova Svaki znak je interno predstavljen kao small integer (8 bita - raspon između 0 i 255), npr. 65 predstavlja veliko slovo A, 66 veliko slovo B, 97 malo slovo a, 98 malo slovo b...
E N D
Osnove znakova i stringova • Svaki znak je interno predstavljen kao small integer (8 bita - raspon između 0 i 255), npr. 65 predstavlja veliko slovo A, 66 veliko slovo B, 97 malo slovo a, 98 malo slovo b... • Set vrijednosti koje može predstaviti small integer zove se ANSI (American National Standards Institute) niz znakova. • Prvih 128 ANSI znakova (vrijednosti small integer-a između 0 i 127) odnose se na ASCII (American Standard Code for Information Interchange) vrijednosti. ANSI vrijednosti između 128 i 255 predstavljaju mnoštvo specijalnih znakova. • String je niz znakova koji se tretira kao zasebna cjelina. String može uključivati slova, brojeve, te razne specijalne znakove kao što su +, -, *, /, $ i druge • Stringovi se u Visual Basic-u pišu kao niz znakova u znakovima navodnika kao npr: “John Q. Doe” - (ime) • “9999 Main Street” - (adresa) “Somewhere, Massachusetts” - (grad i država) “(555) 555-5555” - (broj telefona)
Manipulacija sa stringovima unutar računala uključuje zapravo manipulaciju sa odgovarajućim brojčanim kodovima (small integer-i koje smo prije spominjali) a ne sa samim znakovima • String tip podatka • Dva su tipa stringova koje možemo deklarirati: stringovi promjenljive duljine i stringovi stalne duljine • Stringovi promjenljive duljine mogu imati do 2,147,483,648 znakova dok stringovi stalne duljine mogu imati do 65,536 znakova • Po default-u varijable stringova su promjenljive duljine koje se dinamički smanjuju odnosno povećavaju zavisno o stringovima koji su im pridruženi • Dim s As String s=“blue” • Stringovi promjenljive duljine se deklariraju na slijedeći način: • Dim imevarijable As String*size • Dim BrojSocijalnogOsiguranja As String*11
Ulančavanje stringova sa & i + • s1=“Pro” • s2=“gram” • s3=s1&s2 • ili • s3=s1+s2 • Ako se koristi operator + u izrazima koji se sastoje od više tipova podataka, to može uzrokovati problem. Na primjer u izrazu • s1=“Hello”+22 • Visual Basic prvo pokušava pretvoriti string “Hello” u broj, a zatim ga dodati broju 22, što će izazvati pogrešku. Zbog ovog razloga bolje je koristiti operator &
Uspoređivanje stringova • Visual Basic dopušta sve relacijske (<, <=, >, >=) i operatore jednakosti (=, <>) za uspoređivanje stringova • StrComp funkcija se koristi za usporedbu dvaju stringova • Kako računalo zna koje slovo dolazi ispred drugoga? Svi su znakovi u računalu ustvari brojčani kodovi i kada računalo uspoređuje stringove, ono ustvari uspoređuje brojčane kodove • Funkcija StrComp prihvaća neobavezni treći argument koji označava tip usporedbe. Konstanta vbCompareOption označava da je tip usporedbe onaj koji je definiran u izrazu Option Compare na nivou modula • Option Compare type • gdje je type Binary, Text ili Database. Ako se ne koristi izraz Option Compare, uzima se Binary tip usporedbe • Za samu usporedbu koriste se operatori =, <>, <, >, <=, i >= • Npr. kod binarne usporedbe stringova “hello” i Hello”, “Hello” se smatra manjim od “hello” jer u ASCII setu znakova “h” dolazi iza “H”
Operator Like • Operator Like pruža drugi način usporedbe stringova. On dopušta programeru uspoređivanje uzoraka isto kao i stringova.Npr: • “HBLT55DD” Like “HBLT55DD” • i • “HBLT55DD” Like “HBLT*” • su oboje True • Znak * - asterisk zamjenjuje bilo koji broj znakova, dok ? zamjenjuje jedan bilo koji znak, # zamjenjuje jednu brojčanu znamenku pa tako • “HBLT55DD” Like “?#LT55DD” • je False jer drugo slovo stringa HBLT55DD nije znamenka • “HBLT55DD” Like “H[A-F]LT55DD” • je True jer se drugi znak u stringuHBLT55DD nalazi imeđu A i F • “HBLT55DD” Like “H[A-F]LT[!4-7]5DD” • je False jer je peti znak između 4 i 7. (Uskličnik se ponaša kao operator Not kada se stavi unutar uglatih zagrada)
Baratanje sa pojedinačnim znakovima u Stringu : Mid$ • Visual Basic pruža nekoliko različitih načina za upućivanje na pojedinačne znakove unutar stringa • Funkcija Mid$ ima tri argumenta: izvorni string iz kojeg ćemo selektirati substring, pozicija startnog znaka u stringu i broj znakova koje želimo selektirati • Mid$(“fraza”,1,2) ‘ vraća “fr” • x=“Visual Basic 6!” • Mid$(x,2,3)=“xxx” ‘ mijenja sadržaj varijable x u “Vxxxal Basic 6!” • Funkcija Len se koristi za određivanje broja znakova u stringu • Len(“fraza”)‘ vraća 5
Left$, Right$ i InStr • Left$ selektira najlijevilji dio stringa. Npr ako su s1 i s2 string varijable: • s1=“ABCDEF” • s2=Left$(s1,4) ‘ selektira četiri četiri znaka slijeva u s1 ‘ i pridružuje s2 ABCD • Right$ selektira najdesniji dio stringa • s1=“ABCDEF” • s2=Right$(s1,4)‘ selektira četiri četiri znaka sdesna u s1 i ‘ pridružuje s2 CDEF • InStr funkcija je korisna za pretraživanje search string-a unutar stringa koji se zove base string. Ako je pronađen search string, funkcija vraća poziciju početnog znaka search string-a • s1=“AEIOU” • s2=“IOU” • result=InStr(1,s1,s2) ‘ InStr vraća 3
Ako InStr ustanovi da nije pronađen traženi string, vraća nulu: • result=InStr(1,”aeiou”, “aeb”) • result=InStr(4,”aeiou”, “iou”) • result=InStr(1,”aeiou”, “aeiouy”)
LTrim$, RTrim$ i Trim$ • Funkcije LTrim$, RTrim$ i Trim$ uklanjaju prednje razmake s lijeve strane stringa, razmake s kraja stringa te razmake s obje strane stringa • String$ i Space$ • Funkcije String$ i Space$ kreiraju stringove određenog broja znakova • String$ kreira string određenog znaka, a Space$ kreira string od razmaka • String$(10, “A”) ‘ vraća “AAAAAAAAAA” • String$(5, 97) ‘ vraća “aaaaa” • Space$(5) & String$(5,”a”) ‘ vraća “ aaaaa”
Zamjena substringova u stringu korištenjem funkcije Replace • U funkciji Replace prvi argument je string u kojem će biti zamijenjen substring, drugi argument je substring kojeg tražimo i želimo zamijeniti, treći argument je string kojim zamjenjujemo substring • Funkcija Replace ima još tri neobavezna argumenta: četvrti argument predstavlja početnu poziciju traženja substringa, peti argument određuje broj zamjena, šesti argument određuje tip usporedbe korištenjem jedne od konstanti usporedbe • Obrtanje stringova korištenjem funkcije StrReverse • StrReverse(“Welcome to Visual Basic”) ‘ vraća • ‘ “cisaB lausiV ot emocleW”
Konvertiranje stringova u velika i mala slova • Funkcije UCase$ i LCase$ konvertiraju stringove u sva velika i sva mala slova • UCase$(“Visual Basic 6”) ‘ vraća “VISUAL BASIC 6” • LCase$(“Visual Basic 6”) ‘ vraća “visual basic 6”
Funkcije za konverziju • Asc i Chr$ • Funkcija Asc vraća ASCII kod koji odgovara danom znaku • Asc(“a”) ‘ vraća 97 • Funkcija Chr$ je komplement funkciji Asc, vraća string koji odgovara danom ASCII kodu • Chr(97) ‘ vraća “a” • IsNumeric, Val i Str$ • Funkcije IsNumeric, Val i Str$ su korisne za pretvaranje između brojeva i stringova • Funkcija Val pretvara string u broj • Funkcija Str$ je komplement funkciji Val - pretvara broj u string
Funkcija IsNumeric vraća True ako string prikazuje broj • Hex$ i Oct$ • Funkcija Hex$ pretvara broj u hexadecimalni (s bazom 16) string • Funkcija Oct$ pretvara broj u oktalni (s bazom 8) string