19.12.2012 Views

Computer Programming Concepts and Visual Basic David I. Schneider

Computer Programming Concepts and Visual Basic David I. Schneider

Computer Programming Concepts and Visual Basic David I. Schneider

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Sometimes it is also necessary to pass a form-level array from one procedure to another.<br />

For example, you might have a sorting procedure (discussed in Section 6.3) <strong>and</strong> three<br />

form-level arrays to be sorted. The sorting procedure would be called three times, each time<br />

passing a different form-level array. The method for passing a form-level array to another<br />

procedure is the same as the method for passing a local array.<br />

EXAMPLE 5<br />

The following program incorporates all three topics discussed in this section. It reads ordered lists of computer<br />

languages <strong>and</strong> spoken languages into form-level arrays, requests a new language as input, <strong>and</strong><br />

inserts the language into its proper array position (avoiding duplication). The language arrays are dimensioned<br />

to hold up to 20 names; the variables numCompLangs <strong>and</strong> numSpokLangs record the actual number<br />

of languages in each of the ordered arrays. The original contents of the data files are<br />

COMPLANG.TXT:ADA, C, Cobol, Fortran, Pascal, <strong>Visual</strong> <strong>Basic</strong><br />

SPOKLANG.TXT:Cantonese, English, French, M<strong>and</strong>arin, Russian, Spanish<br />

Object Property Setting<br />

frmAdding Caption Adding to an Ordered<br />

Array<br />

lblNew Caption New language:<br />

txtLang Text (blank)<br />

cmdAddComp Caption Add to <strong>Computer</strong> List<br />

cmdAddSpok Caption Add to Spoken List<br />

picAllLang<br />

Dim compLang(1 To 20) As String<br />

Dim spokLang(1 To 20) As String<br />

Dim numCompLangs As IntegerDim numSpokLangs As Integer<br />

Private Sub AddALang(lang() As String, langCount As Integer)<br />

Dim language As String, n As Integer, i As Integer<br />

‘Insert a language into an ordered array of languages<br />

language = Trim(txtLang.Text)<br />

n = 0<br />

Do<br />

n = n + 1<br />

Loop Until (UCase(lang(n))>= UCase(language)) Or (n = langCount)<br />

If UCase(lang(n)) < UCase(language) Then ‘Insert new language at end<br />

lang(langCount + 1) = language<br />

langCount = langCount + 1<br />

ElseIf UCase(lang(n)) > UCase(language) Then ‘Insert before item n<br />

For i = langCount To n Step -1<br />

lang(i + 1) = lang(i)<br />

Next i<br />

lang(n) = language<br />

langCount = langCount + 1<br />

End If<br />

End Sub<br />

Private Sub cmdAddComp_Click()<br />

‘Insert language into ordered array of computer languages<br />

Call AddALang(compLang(), numCompLangs)<br />

Call DisplayArray(compLang(), numCompLangs)<br />

End Sub<br />

Private Sub cmdAddSpok_Click()<br />

‘Insert language into ordered array of spoken languages<br />

Call AddALang(spokLang(), numSpokLangs)<br />

Using Arrays 177

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!