‘Tirgul’ # 2 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #2
‘Tirgul’ # 2 Short Quiz What is a property? What is the difference between Sub and Function? Write a sub that gets 2 integers and perform an Add operation Write the same as function
‘Tirgul’ # 2 Objective Variables types In a nutshell –If - Then - Else –Case –Loops Write general sub procedures Write user-defined functions Examine some String manipulations
‘Tirgul’ # 2 Declaring Variables Private, public – In a general module Dim (Inside a sub/form) –New memory location to a variable Static(Inside a sub/form) –retains its value between procedure calls –uses same memory location and keeps old value –Use static for variables whose values are persistent (totals, counts, etc.) Const – for constants Sub test() static i As Integer i= i + 1 End Sub Sub test() dim i As Integer i= i + 1 End Sub
‘Tirgul’ # 2 Declaring Variables 2 dim counter As Integer private middleName As String Static Index as Integer Public const ARRAY_SIZE= 10
‘Tirgul’ # 2 Declaring Variables 3 Data Types –Boolean - True or false –Date - From Jan 1, 100 to Dec 31, 9999 –Integer - Numbers without a decimal point –Long - Long integer –Single - Numbers with a decimal point –Double - Long Single –Currency - Dollar amounts –String - Character and alphanumeric data –Object - Any object reference such as Word document –Variant - default, can hold any data type
‘Tirgul’ # 2 Data conversion Int to String? Use STR String to Int? Use Cint String to Numeric? Use Val – (Generic) Str(num) Cint(Str) Val(Str)
‘Tirgul’ # 2 Decisions in VB Used to alter the flow of a program while program is running based on TRUE/FALSE If condition Then statements to be executed if condition is true End If
‘Tirgul’ # 2 Decisions in VB 2 Complementary condition Use Else to perform both cases If condition Then statements to be executed if condition is TRUE Else statements to be executed if condition is FALSE If
‘Tirgul’ # 2 Example If index > 10 Then print “Index > 10” End If If index > 10 Then print “Index > 10” Else print ? End If
‘Tirgul’ # 2 Indentation!!! Indentation!!! I rest my case…
‘Tirgul’ # 2 More IF Examples If index > 10 AND printFlag = true Then print “Index > 10” End If If index > 10 OR printFlag = true Then print ? End If
‘Tirgul’ # 2 Using IF in actual VB programming TRUE FALSE
‘Tirgul’ # 2 Code: If opt1.Value = True Then print “Option 1 selected” End If If opt1.Value = Checked Then print “Option 1 selected” Else print “Option 2 selected” End If
‘Tirgul’ # 2 Case Structure Case Can replaces IF Code readability – Important issue! valueList options –Case 1 –Case 2 to 5 –Case 6, 9 –Case Is >= 10 –Case “text”
‘Tirgul’ # 2 Example Select Case textValue Case “Print” print Case “send” sendMail Case Else defaultAction End Select
‘Tirgul’ # 2 Loops The group of repeated instructions is called a loop a single execution of the statements in the loop is called an iteration All loops must have a mechanism to control the number of iterations Breaking point!
‘Tirgul’ # 2 For / Next Loops Format: For loopIndex = initialValue to testValue [Step increment] body of loop Next loopIndex Items enclosed in [ ] are optional loopIndex index is declared before loopIndex must be a numeric variable, testValue may be any numeric expression (e.g. function) Use For when you know the number of iterations.
‘Tirgul’ # 2 Example Dim index as integer For index = 1 to 10 print index Next index
‘Tirgul’ # 2 Procedures Event procedures - –associated with control events –bounded by Sub and End Sub General procedures - –not associated with events –consist of statements that are grouped together because they perform a specific task
‘Tirgul’ # 2 Example Event Procedures Private Sub cmdExit_Click() closeConnection End Sub Private Sub cmdDisplay_Click() refreshData End Sub Private Sub Form_Load() openConnection End Sub
‘Tirgul’ # 2 General procedures written in the General code section, but in a different window from the declarations two types: –Sub procedure - performs an action –Function procedure - performs an action and returns a value. Format is based on mathematical notation: f(x), g(x, y) May be user-defined or built in to VB (intrinsic)
‘Tirgul’ # 2 VB Intrinsic Functions Operate on 0 or more variables, and return exactly 1 value Functions we have already used: –Val(numeric string) returns a numeric value –Format(number, format string) returns a string in a specific form –Conversion functions Review
‘Tirgul’ # 2 More intrinsic functions General math –sqr( ), abs( ), exp( ), log( ), rnd( ) Trigonometric functions –sin( ), cos( ), tan( ) Financial functions String Functions Review
‘Tirgul’ # 2 String Functions Len - returns the length of a string Left, Mid, Right - returns the left, right, or middle part of a string Instr - returns the position of one string within another, or 0 if not found also note that “+” or “&” concatenates 2 strings together Review
‘Tirgul’ # 2 Example 1 Sub procedure PrintMessage is called from within the Click event procedure No arguments Private Sub PrintMessage( ) Print “Hello” End Sub Private Sub cmdDisplay_Click( ) PrintMessage End Sub
‘Tirgul’ # 2 Example 2 Sub procedure Add_And_Print is called from within the Click event procedure Two arguments - Score1 and Score2 Sub Add_And_Print (x as Single, y as Single) picOut.Print x + y End Sub Private Sub cmdDisplay_Click( ) Add_And_Print (Score1, Score2) End Sub
‘Tirgul’ # 2 Parameter passing When variables are used as inputs (parameters) –Parameters type must be consistent –order of Parameters –Optional - [ ] Sub Output (stName as String, iNum as Integer) Print stName, iNum End Sub ‘in another Sub Call Output (“Joe”, 31) ‘ NOT Call Output(31, “Joe”) Call Output (stFirst, sAge)
‘Tirgul’ # 2 User Defined Functions starts with the word FUNCTION returns EXACTLY ONE value - as a given type called by using its name on the right side of an assignment statement, returns to a variable on the left side of an assignment statement Function Add_Two (x as Integer, y as Integer) as Integer Add_Two = x + y End Function ‘ in calling sub sum = Add_Two(5, 6)
‘Tirgul’ # 2 Sample Functions Function NewName (stFirst as String, stSec as String) as String NewName = stFirst + “ “ + stSec End Function Function Celsius (ByVal fahrentemp As Single) as Single Celsius = 5/9*(fahrentemp - 32) End Function
‘Tirgul’ # 2 Example Find whatever a given integer is a perfect number.
‘Tirgul’ # 2 Example(2) Factorial Example Factorial(10) ?
‘Tirgul’ # 2 String Manipulation Usefull String manipulations: str = “welcome mid(str,4,4) = ? (watch index!!!) str1 = “welcome” str2 = “come” InStr(1,str1,str2) = ?
‘Tirgul’ # 2 String Manipulation (2) StrComp function return variant (Integer) indicating the result of a string comparison. Syntax : - StrComp(string1, string2, [compare]) dim MyStr1, MyStr2 As String dim MyComp As Integer MyComp = StrComp (MyStr1, MyStr2, vbDatabaseCompare) : returns 0 MyComp = StrComp (MyStr1, MyStr2, vbBinaryCompare) : Returns - 1 MyComp = StrComp (MyStr2, MyStr1) : Returns 1 0vbBinaryCompare - Performs a binary comparison. 1vbTextCompare Performs a textual comparison. 2vbDatabaseCompare For Microsoft Access performs a comparison based on information contained in your database.