De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.

Verwante presentaties


Presentatie over: "Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen."— Transcript van de presentatie:

1 Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen

2 Voorbeeld: Tekst-Editor Multiple Document Interface Open/Save: standaard- dialoog Zoek/Vervang: eigen dialoog files lezen en schrijven

3 Multiple Document Interface MDI- container MDI- child MDI- children

4 MDI-container en -children class Hoofdscherm : Formclass Tekst : Form { } { } Hoofdscherm ( ) Tekst ( ) { } { } menu.DropDownItems.Add ("Nieuw", null, this.nieuw ); void nieuw (object o, EA ea ) { } this.IsMdiContainer = true; menu = new ToolStripMenuItem("File"); Tekst t = new Tekst(); t.Show ( ); t.MdiParent = this; TextBox invoer; Label status; invoer = new TextBox(); status = new Label(); invoer.TextChanged += anders; void anders (object o, EA ea ) { } status.Text = invoer.Text.Length.ToString();

5 Multiple Document Interface menu-regel bevat items van de parent èn children

6 MDI-container en -children class Hoofdscherm : Formclass Tekst : Form { } { } Hoofdscherm ( )Tekst ( ) { } { } menu.DropDownItems.Add ("Nieuw", null, this.nieuw ); this.IsMdiContainer = true; menu = new ToolStripMenuItem("File"); MenuStrip strip = new MenuStrip ( ); strip.Items.Add(menu); this.MainMenuStrip = strip; menu.DropDownItems.Add ("Open", null, this.openen ); menu = new ToolStripMenuItem("File"); MenuStrip strip = new MenuStrip ( ); strip.Items.Add(menu); strip.Visible = false;

7 Dialogen voeren

8

9 class Hoofdscherm : Formclass Tekst : Form { } { } void openen (obj o, EA ea ) { } { } OpenFileDialog d = new OpenFileDialog(); void zoeken (obj o, EA ea ) d.ShowDialog()if ( ==DialogResult.OK ) { } Tekst t = new Tekst(); t.MdiParent = this; t.Show(); t.lees();d.FileName ZoekDialoog d = new ZoekDialoog(); d.ShowDialog() ==DialogResult.OK ) { } if ( TextBox invoer; invoer.Select(pos, int pos = alles.IndexOf(zk); string alles = invoer.Text; string zk = d.Zoek.Text; zk.Length); d.Filter = "Teksten|*.txt";

10 ZoekDialoog class ZoekDialoog : Form { } ZoekDialoog ( ) { } Zoek = new TextBox(); Zoek.Location=...;...Add(Zoek); public TextBox Zoek; ok = new Button(); ok.Text="OK"; ok.Location=...;...Add(ok); cc = new Button(); cc.Text="Cancel"; cc.Location=...;...Add(cc); ok.Click += this.positief; void positief (obj o, EA ea ) { } this.DialogResult = DialogResult.OK; this.Close ( ); this.CancelButton = cc; this.AcceptButton = ok; reageert ook op ESC sluit automatisch reageert ook op Enter private Button ok, cc;

11 Openen en Opslaan class Hoofdscherm : Formclass Tekst : Form { } { } void openen (obj o, EA ea ) { } OpenFileDialog d = new OpenFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } TextBox invoer; d.Filter = "Teksten|*.txt"; void opslaanAls (obj o, EA ea ) { } SaveFileDialog d = new SaveFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } d.Filter = "Teksten|*.txt";

12 Openen en Opslaan class Hoofdscherm : Formclass Tekst : Form { } { } void openen (obj o, EA ea ) { } OpenFileDialog d = new OpenFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } Tekst t = new Tekst(); t.MdiParent = this; t.Show(); t.lees();d.FileName TextBox invoer; d.Filter = "Teksten|*.txt"; void opslaanAls (obj o, EA ea ) { } SaveFileDialog d = new SaveFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } this.schrijf( d.FileName ); d.Filter = "Teksten|*.txt"; void lees (string naam) {...... } void schrijf (string naam) {...... }

13 Openen en Opslaan class Tekst : Form { } TextBox invoer; void lees (string naam) { } void schrijf (string naam) { } StreamReadersr = new StreamReader (naam); sr. ReadToEnd ( )this.invoer.Text =; sr. Close ( ) ; StreamWritersw = new StreamWriter (naam); sw. Write () ;this.invoer.Text sw. Close ( ) ; this.Text = naam;

14 Klassen om files te lezen en te schrijven Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter XmlWriter TextReader StreamReader StringReader BinaryReader XmlReader Object store decorator

15 Klassen om files te lezen en te schrijven Stream FileStream MemoryStream NetworkStream StreamWriterStreamReader leest en schrijft bytes leest string en char schrijft string en char leest/schrijft een file leest/schrijft het geheugen leest/schrijft het netwerk

16 Methoden van Stream Stream FileStream MemoryStream NetworkStream FileStream fs; fs = new FileStream ("test", FileMode.Open ); FileMode.Create FileMode.Append fs.ReadByte( )int b =; levert getal tussen 0...255 of –1 als er niets meer is byte [ ] ruimte = new byte[100]; fs.Read ( ruimte, 100 ) int n =; class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max;

17 Methoden van Stream Stream FileStream MemoryStream NetworkStream class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max; Stream int ReadByte ( ) virtual { /* leeg */ } class FileStream : Stream { } override int ReadByte ( ) { return............... }

18 Methoden van Stream Stream FileStream MemoryStream NetworkStream class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max; Stream int ReadByte ( ) virtual { /* leeg */ } class FileStream : Stream { } override int ReadByte ( ) { return............... } abstract ;

19 Abstracte methode/klasse Stream FileStream MemoryStream NetworkStream nAbstracte methode: methode zonder body nAbstracte klasse: bevat abstracte methode ●kun je geen new object van maken ●alleen bedoeld als superklasse Brush SolidBrush HatchBrush

20 Abstracte methode/klasse Stream FileStream MemoryStream NetworkStream nAbstracte methode: methode zonder body nAbstracte klasse: bevat abstracte methode ●kun je geen new object van maken ●alleen bedoeld als superklasse MotorVoertuig PersonenAuto VrachtWagen

21 Methoden van Stream Stream FileStream MemoryStream NetworkStream class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max; Stream int ReadByte ( )virtual class FileStream : Stream { } override int ReadByte ( ) { return............... } abstract ;

22 Decorator Streams Stream FileStream MemoryStream NetworkStream Stream str; BufferedStream GZipStream CryptoStream store decorator str = new FileStream ( "test", FileMode.Create ); GZipStream klein; klein = new GZipStream ( str ) ; klein.Write( mijnByteArray ); geef het onderliggende store-medium "in beheer" CryptoStream geheim; geheim = new CryptoStream ( klein ) ; je kunt decorators combineren

23 Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter TextReader StreamReader StringReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char vanuit een Stream vanuit een String

24 Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter TextReader StreamReader StringReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char Stream str; str = new FileStream ( "test.txt", FileMode.Open ); TextReader lezer; lezer = new StreamReader ( str ); string s; s = lezer. ReadToEnd ( );

25 Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter TextReader StreamReader StringReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char Stream str; str = new FileStream ( "test.txt", FileMode.Open ); TextReader lezer; lezer = new StreamReader ( str ); string s; s = lezer. ReadToEnd ( ); lezer = new StreamReader ( "test.txt" ); convenience-methode

26 Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter XmlWriter TextReader StreamReader StringReader BinaryReader XmlReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char leest int en double leest XML-teksten

27 Figuur 32 Stream FileStream Memory Stream Network Stream Buffered Stream GZip Stream Crypto Stream TextReader StreamReader StringReader BinaryReader XmlReader Object store decorator (Filenaam,FileMode) ( ) (Socket) (Stream, int) (Stream, CompressionMode) (Stream, CryptoStreamMode) (Stream) (Filenaam) (String) (Stream).Create(…) (Stream, Encoding) (wat de constructor nodig heeft) statische methode die het constructie-werk doet

28 Encoding: char naar byte nASCII ●1 byte per char, <128 nUnicode ●2 bytes per char aäAα 41613F 4161E4B100 03 nBigEndianUnicode ●2 bytes, grote eerst 4161E4B100 03 nLatin-1 (iso-8859-1) ●1 byte per char, <256 4161E43F nUTF8 ●1/2/3 bytes per char 4161A4B1C3CE header FEFF FE EFBBBF

29 Encoding


Download ppt "Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen."

Verwante presentaties


Ads door Google