Consoleprogramma’s Hoofdstuk 19
Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s Verwerking van argumenten De prompt Batchbestanden en scripts
Hoofdstuk 19 Visual Basic.NET voor studenten3 Inleiding Programma’s die enkel draaien via de commandoregel zijn nog steeds uiterst belangrijk: Sneller dan Windows programma’s Kunnen automatisch gestart worden (services) Vereisen weinig of geen interactie Vaak zeer handig Voorbeelden: “DOS commando’s”: dir, xcopy, cd, … netwerk clients: ftp, ssh, telnet, … Utilities: zip, vbc, … Vaak worden deze programma’s met mekaar verbonden tot nieuwe programma’s scripting Batch (.bat) bestanden Windows Scripting Host VB of JavaScript scripting PowerShell de nieuwe “prompt” voor windows is volledig met.NET geïntegreerd
Hoofdstuk 19 Visual Basic.NET voor studenten4 Een eerste consoleprogramma In hoofdstuk 9 hebben we al een consoleprogramma geschreven zonder Visual Studio Met Visual Studio kies je voor ‘Console Application’ als project type Demo Hello
Hoofdstuk 19 Visual Basic.NET voor studenten5 Een eerste consoleprogramma Module Module1 Sub Main() Dim name As String Console.WriteLine("Please enter your name:") name = Console.ReadLine() Console.WriteLine("Hi there " & name) Dim wait As String = Console.ReadLine() End Sub End Module
Hoofdstuk 19 Visual Basic.NET voor studenten6 Een eerste consoleprogramma Module : een groepering van procedures en/of functies (dit heeft niets te maken met een klasse!) Sub Main() : de “start” procedure van het programma Console : lezen en schrijven naar de console via ReadLine en WriteLine Het uitvoerbaar programma kan je ook terugvinden in de bin directory van je project
Hoofdstuk 19 Visual Basic.NET voor studenten7 DOS commando’s Bestaan al sinds de voorloper van het Windows besturinssysteem Voorbeelden: cd dir xcopy Via de switch /? kan je hulp over het commando verkrijgen
Hoofdstuk 19 Visual Basic.NET voor studenten8 Programma’s runnen Vanuit de IDE Dubbelklikken vanuit Windows Explorer Naam intikken in een Consolevenster Vanuit een batch bestand REM het volgende batch bestand voert hello.exe REM tweemaal na mekaar uit Hello.exe
Hoofdstuk 19 Visual Basic.NET voor studenten9 Programma’s runnen Vanuit een VBScript (geen examenstof!) 'Dit script voert hello.exe uit Dim WshShell, oExec Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("Hello.exe") 'Verzorg invoer voor het programma oExec.StdIn.WriteLine("Kris Hermans") oExec.StdIn.WriteLine("") Do While oExec.Status = 0 WScript.Sleep 100 Loop 'Schrijf uitvoer uit WScript.Echo oExec.StdOut.ReadLine() & vbNewLine & _ oExec.StdOut.ReadLine()
Hoofdstuk 19 Visual Basic.NET voor studenten10 Argumenten Als je een Main methode maakt met een array van Strings, dan zal deze array de commando argumenten bevatten Sub Main(ByVal args() as String)
Hoofdstuk 19 Visual Basic.NET voor studenten11 Argumenten Sub Main(ByVal args() As String) Dim line As String Dim fileName As String = args(0) Dim wanted As String = args(1) Dim inputStream As StreamReader = _ File.OpenText(fileName) line = inputStream.ReadLine() While line <> Nothing If line.IndexOf(wanted) >= 0 Then Console.WriteLine(line) End If line = inputStream.ReadLine() End While inputStream.Close() End Sub Wat gebeurt er als je geen argumenten meegeeft aan het programma?
Hoofdstuk 19 Visual Basic.NET voor studenten12 Argumenten in VS
Hoofdstuk 19 Visual Basic.NET voor studenten13 Pipes maken > De uitvoer naar een bestand sturen en overschrijven als het al bestond >> De uitvoer toevoegen aan een bestand < De invoer lezen van een bestand Demo