1 / 28

Bestanden

Bestanden. Hoofdstuk 18. Inleiding. Opslaan van gegevens RAM Korte toegangstijd Duurder Tijdelijk Opslagmedia Langere toegangstijd, maar grotere capaciteit Goedkoper Relatief permanent. De basisbegrippen van streaming.

lilah-pratt
Download Presentation

Bestanden

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bestanden Hoofdstuk 18

  2. Inleiding • Opslaan van gegevens • RAM • Korte toegangstijd • Duurder • Tijdelijk • Opslagmedia • Langere toegangstijd, maar grotere capaciteit • Goedkoper • Relatief permanent Visual Basic .NET voor studenten

  3. De basisbegrippen van streaming • Een bestand wordt beschouwd als een stroom gegevens die in één doorlopende (sequentiële) beweging wordt gemanipuleerd • Een bestand is een “system resource”. Niet vergeten te sluiten!Hoe kan je dit garanderen? • Open bestand • Inlezen gegevens van “stream” ofWegschrijven gegevens naar “stream” • Bestand sluiten Visual Basic .NET voor studenten

  4. Overzichtsdiagram Visual Basic .NET voor studenten

  5. Bestandsuitvoer ImportsSystem.IO … Private Sub Button1_Click( _ ByValsender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click ' writesomelines of text to the file Dim outputStream As StreamWriter = _ File.CreateText("c:\myfile.txt") outputStream.WriteLine("This file will") outputStream.WriteLine("contain 3") outputStream.WriteLine("lines of text.") outputStream.Close() End Sub Visual Basic .NET voor studenten

  6. Bestandsuitvoer • Imports System.IO • File.CreateText(bestandsnaam) • Maakt een StreamWriter object naar een tekstbestand • Als dit bestand nog niet bestaat, wordt het aangemaakt. Anders wordt het bestaande bestand overschreven • outputStream.WriteLine(string) • Schrijft de string naar de stream (en dus in het bestand) en sluit af met een NewLine teken • outputStream.Close() • Sluit de stream af • Dit statement zou beter in een Finally block staan Visual Basic .NET voor studenten

  7. Bestandsinvoer ImportsSystem.IO … Private Sub Button1_Click( _ ByValsender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click 'read the file line-by-line Dim inputStream As StreamReader = _ File.OpenText("c:\myfile.txt") Dim line As String line = inputStream.ReadLine() Whileline <> Nothing TextBox1.AppendText(line & NewLine) line = inputStream.ReadLine() End While inputStream.Close() End Sub Visual Basic .NET voor studenten

  8. Bestandsinvoer • Imports System.IO • File.OpenText(bestandsnaam) • Maakt een StreamReader object naar een (bestaand) tekstbestand • Als dit bestand nog niet bestaat: FileNotFoundException • inputStream.ReadLine() • Leest een (volgende) regel uit het bestand tot Nothing wordt teruggegeven • inputStream.Close() • Sluit de stream af • Dit statement zou beter in een Finally block staan Visual Basic .NET voor studenten

  9. FileStreamDemo Openen en tonen Toevoegen aan bestand Bestand overschrijven Visual Basic .NET voor studenten

  10. FileStream • Meer algemene (.NET) manier om een stream naar een bestand te verkrijgen • Verschillende wijzen van toegang • FileAccess • FileMode • Eens je een FileStream object hebt, kan je ermee een StreamReader of StreamWriter mee aanmaken Visual Basic .NET voor studenten

  11. FileMode • Append: open op het einde of nieuw • Create: nieuw of overschrijf • CreateNew: nieuw of IOException • Open: open of FileNotFoundException • OpenOrCreate: open of nieuw • Truncate: openen en overschrijven Visual Basic .NET voor studenten

  12. FileAccess • Read: enkel lezen • Write: enkel schrijven • ReadWrite: lezen en schrijven Visual Basic .NET voor studenten

  13. FileStream Demo Private Sub OpenButton_Click(...) Handles OpenButton.Click Dim reader As StreamReader= Nothing ... Try fileStream = New FileStream(FileNameTextBox.Text, _ FileMode.Open, _ FileAccess.Read) reader = New StreamReader(fileStream) ContentTextBox.Text = reader.ReadToEnd() Catch ex As FileNotFoundException MessageBox.Show(FileNameTextBox.Text & " niet gevonden!") ... Visual Basic .NET voor studenten

  14. FileStream Demo ... Finally If Not (reader Is Nothing) Then reader.Close() End If If Not (fileStream Is Nothing) Then fileStream.Close() End If End Try Bestudeer zelf de overige code van deze demo Visual Basic .NET voor studenten

  15. Bestanden doorzoeken • Bestudeer de broncode • Waarom de dubbele conditie in de While lus? • Wat gebeurt er als de naam niet wordt gevonden? Visual Basic .NET voor studenten

  16. Bestanden en exceptions • Vrijwel elke IO operatie kan mislopen • FileNotFoundException • IOException • Kijk dus goed naar de online documentatie en vang indien nodig de exception op • Zeker: streams afsluiten (Close) in een Finally block. Anders zou dit kunnen aanleiding geven tot memory leaks Visual Basic .NET voor studenten

  17. MessageBox • Verschillende versies (overloading) • MessageBox.Show(boodschap) • MessageBox.Show(boodschap, titel) • MessageBox.Show(boodschap, titel, knoppen) • MessageBox.Show(boodschap, titel, knoppen, pictogram) • Vaststellen welke knop geklikt werd • DialogResult.Abort • DialogResult.Cancel • DialogResult.Ignore • DialogResult.No • DialogResult.None • DialogResult.OK • ... Visual Basic .NET voor studenten

  18. MessageBox MessageBox.Show("The age must be over 18", _ "Age is out of range!", _ MessageBoxButtons.OK, _ MessageBoxIcon.Exclamation) If MessageBox.Show("Do you want to buy this?", _ "CD Purchase", _ MessageBoxButtons.YesNo, _ MessageBoxIcon.Question) = DialogResult.Yes Then MessageBox.Show("user clicked yes") Else MessageBox.Show("user clicked no") End If Visual Basic .NET voor studenten

  19. Dialoogvensters • Ofwel via ToolBox • Ofwel zelf het object aanmaken • Gebruik van Filters • Eveneens: SaveFileDialog werkt compleet analoog Dim dialog As New OpenFileDialog() dialog.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;" & _ "*.JPG;*.GIF|All files (*.*)|*.*" If dialog.ShowDialog() = DialogResult.OK Then MessageBox.Show("je selecteerde " & dialog.FileName) End If Visual Basic .NET voor studenten

  20. Oefening: ColorDialog Visual Basic .NET voor studenten

  21. Een menu creëren • MenuStrip in Toolbox selecteren • ‘Type Here’ invullen naargelang aantal menu’s en menu items • Click event van een item afhandelen • Gebruik van &, bv: E&xit • sneltoets ALT-x • Separators • rechtsklik in design mode Visual Basic .NET voor studenten

  22. Menu event Private Sub ExitItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles ExitItem.Click Application.Exit() End Sub • Gebruik Application.Exit() om een programma af te sluiten • Eveneens ok, maar “oude” VB: End Visual Basic .NET voor studenten

  23. De klasse Directory • Faciliteiten om bestanden en mappen te manipuleren. Visual Basic .NET voor studenten

  24. De klasse Directory • GetFiles(path) • Retourneert een array van Strings; de bestandsnamen van files in directory path • GetDirectories(path) • Retourneert een array van Strings; de namen van de directories in directory path • Bestudeer zelf de andere methodes in de klasse Directory Visual Basic .NET voor studenten

  25. Meerdere formulieren Een nieuw formulier kan je toevoegen door rechtklik op het project  Add Windows Form Visual Basic .NET voor studenten

  26. Meerdere formulieren De form die opgestart wordt bij de programmastart, kan je instellen in de project properties (Startup form) Visual Basic .NET voor studenten

  27. Meerdere formulieren • Een Form is een klasse, dwz dat je een instantie moet maken om een form te openen. Vervolgens roep je op dit object de methode Show() op. • Als je vanuit één Form een andere form wil manipuleren, dien je referenties naar deze objecten door te geven (SetFormReferentie() in de demo) • Een Form verbergen zonder de applicatie af te sluiten doe je met Hide() Visual Basic .NET voor studenten

  28. Meerdere formulieren • Demo Visual Basic .NET voor studenten

More Related