35
Peter Sobe 57 Dateiverarbeitung (1) Dateisystem Platten-Controller Anwendungsprogramm Betriebssystem Anwendung liest, verarbeitet und speichert Daten Betriebssystem stellt einheitliche Schnittstelle zu Dateisystemen bereit Dateisystem realisiert lineare Blockadressierung, Verzeichnisse, Zugriffsrechte u. mehr Daten werden durch Dateisystem auf ein block-orientiertes Gerät abgebildet Gerätetreiber und Plattencontroller sprechen Platten und dort jeweils Blöcke (Zylinder, Sektor, Kopf) an. Bibliotheken und Funktionen der Ausführungsplattform Pufferung, Zusatzfunktionen wie z.B. Dialoge zum Auswählen einer Datei

3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

  • Upload
    lyquynh

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 57

Dateiverarbeitung (1)

Dateisystem

Platten-Controller

Anwendungsprogramm

Betriebssystem

Anwendung liest, verarbeitet und speichert Daten

Betriebssystem stellt einheitliche Schnittstelle zu Dateisystemen bereit

Dateisystem realisiert lineare Blockadressierung, Verzeichnisse, Zugriffsrechte u. mehr

Daten werden durch Dateisystem auf ein block-orientiertes Gerät abgebildet

Gerätetreiber und Plattencontroller sprechen Platten und dort jeweils Blöcke (Zylinder, Sektor, Kopf) an.

Bibliotheken und Funktionen der

Ausführungsplattform

Pufferung, Zusatzfunktionen wie z.B. Dialoge zum Auswählen einer Datei

Page 2: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 58

Dateiverarbeitung (2)

Eine Datei ist ein benannter Bereich (mit Dateinamen und Zusatzinformationen) in den Daten geschrieben werden können. Daten werden innerhalb einer Datei auf nummerierten

Blockadressen abgelegt, beim aufeinanderfolgenden Schreiben wird die Blockadresse automatisch erhöht (Datei-Zeiger)

Daten können innerhalb einer Datei adressiert werden (Setzen des Dateizeigers)

Daten können nacheinander aus einer Datei gelesen werden, Adresse wird automatisch erhöht.

Eine Datei kann vergrößert werden, wenn zusätzliche Daten geschrieben werden.

Dateiinhalte können überschrieben werden. Eine Datei kann verkleinert werden. Vor dem Schreiben und Lesen muss eine Datei geöffnet werden. Sind alle Dateioperationen abgeschlossen, wird die Datei

geschlossen

Page 3: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 59

Dateiverarbeitung (3) Vor den Zugriff muss eine Datei geöffnet werden. Es können mehrere Dateien gleichzeitig geöffnet sein.

Öffnen einer Datei (Open):FileOpen(1,“meinedaten.txt“, OpenMode.Input ) Nach Open kann auf eine Datei über die angebene Nummer (hier 1) zugegriffen werden.

Allgemeine FormFileOpen(filenr As Integer, filename As String, Mode As Microsoft.VisualBasic.OpenMode)

Schliessen der Datei (Close)FileClose(1)

Allgemeine Form:FileClose(filenr As Integer)

Page 4: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 60

Dateiverarbeitung (4)

Zugriffsfunktionen für Textdateien

Input-Funktionen: ziel = LineInput ( filenr)Liest eine Zeile aus der mit filenr angegebenen Datei bis zum nächst folgenden Zeilenumbruch. Die gelesenen Zeichen werden der angegebenen Variablen zugewiesen (Variable muss von Typ Variant oder String sein).Allgemeine Form:LineInput(filenr As Integer) As String

zeile = InputString(filenr, 20)Liest eine festgelegte Anzahl Zeichen aus der Datei (hier 20)

Allgemeine Form:InputString(filenr As Integer, count As Integer) As String

Page 5: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 61

Dateiverarbeitung (5) Mittels EOF(filenr) wird getestet, ob das Dateiende schon erreicht ist.

Allgemeine Form:EOF(filenr As Integer) As Boolean

Schreiben in eine geöffnete Textdatei mittels PrintLine

Dim textzeile As String = “Der grüne Frosch springt vom Blatt.“PrintLine(13, textzeile)

Allgemeine Form:PrintLine(filenr As Integer, ParamArray Output() As Object)

Page 6: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 62

Dateiverarbeitung (6)

Beispiel:

Dim zeile As StringFileOpen(12,“eingabe.txt“,OpenMode.Input)FileOpen(13,“ausgabe.txt“,OpenMode.Output)While (Not EOF(12))

zeile=LineInput(12)PrintLine(13,zeile)

End WhileFileClose(12)FileClose(13)

Page 7: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 63

Dateiverarbeitung (7)

Das Unterprogramm Print erlaubt eine formatierte Ausgabe mehrerer Werte in eine Datei.

Beispiel: Schreiben einer Textdatei in Visual Studio 2010:

FileOpen(1, "C:\TEMP\vbadatei.txt", OpenMode.Output)Print(1, "Peter Sobe", 99, vbCrLf) Print(1, "Max Meier", 103)FileClose(1)

Allgemeine Form:Print(filenr As Integer, ParamArray Output() As Object)

Page 8: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 64

Dateiverarbeitung (8) Binärer Zugriff: Daten werden in ihrem internen Darstellungsformat in Datei geschrieben, bzw. aus ihnen gelesen.

Wie üblich werden Dateien vor allen Zugriffen mit Open geöffnet und am Schluss mit Close geschlossen. FileOpen(3, "C:\TEMP\bindatei.bin", OpenMode.Binary, OpenMode.Output)

Operationen:FileGet(filenr, variable, [Recordnr oder Bytepostion]) Lesen von einer Datei auf eine Variable. As Variable können alle Typen, außer Objekte und Felder angegeben werden. Wird Recordnr, Byteposition nicht angegeben, wird vom aktuellen Dateizeiger beginnend gelesen

FilePut(filenr, variable, [Recordnr oder Bytepostion])Schreiben auf Datei. Parameter wie Get.

Page 9: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 65

Dateiverarbeitung (9)

Operationen für binären Zugriff (Fortsetzung):

curr_pos = Loc ( filenr)Loc() gibt die aktuelle Position des Dateizeigers zurück. An dieser Postion startet die nächste Zugriffsoperation.

Seek (filenr) gibt ebenfalls die aktuelle Position des Dateizeigers zurück. curr_pos = Seek ( filenr)Setzen des Dateizeigers, wenn Byteposition als zweiter Parameter angegeben wird. Zum Beispiel:Seek ( filenr, curr_pos+42)

Page 10: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 66

Dateiverarbeitung (10)

Durch Importieren des System.IO Namensraum, können vorab bereitgestellte Klassen zum Umgang mit Dateien benutzt werden.

Imports System.IO

Beispiel:Dim binReader As New BinaryReader( _

File.Open(fileName, FileMode.Open))…binReader.BaseStream.Seek(0, SeekOrigin.Begin)MeasuredValue = binReader.ReadSingle()Position = binReader.ReadString()TimeValue = binReader.ReadInt32()

Page 11: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 67

Klassen und Objekte (1)

Begriffe

Objekt – Objekte definieren sich über Eigenschaften und auf sie anwendbare Methoden. Für grafische Elemente einer Anwendung, stehen Objekte bereit. Das ermöglicht z.B. das Auslesen von Werten aus Eingabefeldern:

Dim Value As IntegerValue = Val(TextBox1.Text)

Eigenschaften – definieren Zustände eines Objekts. Eigenschaften können gelesen oder gesetzt werden. Alle Eigenschaften zusammen ergeben den Zustand des Objekts.

Methoden – Unterprogramme, die an einen Objekt-Typ gebunden sind und den Objektzustand ändern können

Page 12: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 68

Klassen und Objekte (2)

Sicht auf ein Objekt:

Klasse: Softwarekonstruktion, die ein Objekt mit seinen Methoden und

Variablen definiert. Wird oft auch als Objekttyp bezeichnet.

Vergleichbar mit Struktur-Typ und daraus deklarierten Variablen Man erhält ein Objekt, indem man eine Klasse instanziiert, d.h.

eine Instanz einer Klasse bildet

Verhalten (über Methoden)

Zustand (Werte aller objekt-lokalen Variablen)

Page 13: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 69

Klassen und Objekte (3)

Zugriff auf Eigenschaften und Methoden:Name des Objekts, gefolgt von einem Punkt (.) und danach der Name der Eigenschaft oder der Methode

Beispiele (aus Forms-Projekten):t1 = TagBox1.TextDifferenzBox.Text = diffMe.Close() REM das ist ein Methodenaufruf des Objekts Me

Me verweist immer auf das Formular, dessen Programmcode gerade ausgeführt wird.

Page 14: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

R. Grossmann / P. Sobe 70

Ziele der Objektorientierung (1)

Es sollen kurz die Hauptziele angegeben werden, die objektorientierte Sprachen charakterisieren:

Datenabstraktion: Definition und Verwendung anwendungs-bezogener Datentypen und der auf ihnen möglichen Operationen (Methoden und Operatoren).

Datenkapselung: Vereinbarung von Daten und zugeordneten Prozeduren (Methoden), die diese Daten verwalten, in einer Programmeinheit. Zugriffe auf Daten und die Benutzung der Methoden können über Zugriffsspezifizierer einschränkt werden. Oft sind die Datenelemente eines Objektes vollständig gekapselt (private) und für den Nutzer nicht einsehbar. Nur über die öffentlichen Methoden (public) kann der Nutzer das Objekt manipulieren.

Page 15: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

R. Grossmann / P. Sobe 71

Trennung von Implementierung und Schnittstelle: Durch die Datenkapselung wird es möglich, dass der Programmierer Freiheiten bei der internen Realsisierung der Klassen hat. Er ist nur an die Schnittstelle und die äußere Wirkung der Methoden gebunden. Der Nutzer der Klasse benötigt in seinem Programm ausschließlich die Schnittstelle, die durch die Methoden bestimmt wird.

Damit ist ein Anwendungsprogramm vollkommen unabhängig von konkreten internen Realisierungen der Klassen.

Ziele der Objektorientierung (2)

Page 16: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

R. Grossmann / P. Sobe 72

Spezialisierung und Generalisierung (Vererbung): Durch das Prinzip der Spezialisierung wird es möglich, aus einer Basisklasse eine weitere Klassen abzuleiten, die viele Gemeinsamkeiten mit ersterer haben und nur in einigen Details abweichen. Eine abgeleitete Klasse erbt die Datenstruktur und vererbbare Elementfunktionen von der Basisklasse. Es müssen folglich nur die Abweichungen (Spezialisierung) neu programmiert werden. Das vermindert den Kodierungsaufwand, eliminiert mehrfachen ähnlichen Code und senkt die mögliche Fehlerquote.

Polymorphismus: In Klassenhierarchien mit Vererbung kann dieselbe Methode für Objekte unterschiedlicher Typen unterschiedliche Aktionen auslösen.

Ziele der Objektorientierung (3)

Page 17: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 73

Benutzerdefinierte Objekte (1)Benutzerdefinierte Objekte definieren:Public Class Fahrzeug

Dim v, vmax, leermasse, nutzmasse As IntegerDim Bezeichnung As String

Sub New (ByVal bez as String, ByVal vm as Integer, ByVal lm As Integer)Bezeichnung = bezvmax=vmleermasse = lm

End Sub

Function ausgabe() As Stringausgabe = Bezeichnung + “ mit Geschwindigkeit: " + Format(v)

End Function…

Beispiel angelehnt an: http://openbook.galileocomputing.de/einstieg_vb_2010

Page 18: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 74

Benutzerdefinierte Objekte (2)Benutzerdefinierte Objekte definieren (Fortsetzung):…

Sub beschleunigen(ByVal wert As Integer)v = v + wertif v>xmax Then v=vmax

End SubSub bremsen(ByVal wert As Integer)

v = v - wertif v<0 Then v=0

End SubEnd Class

Beispiel angelehnt an: http://openbook.galileocomputing.de/einstieg_vb_2010

Page 19: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 75

Benutzerdefinierte Objekte (3)

Benutzerdefinierte Objekte instanziieren:

Dim stadtrad,rennrad As fahrzeugstadtrad = New fahrzeug(“Stadtrad“, 30, 15)REM hier mal ein träges Fahrrad, mit vmax=30 Km/h und 15 Kg rennrad = new fahrzeug(“Wettkampfrad“, 55, 8)REM ein leichteres und schnelleres Rad

Dim kleinwagen As New fahrzeug(“Fiat Topolino“,80, 650) REM Deklaration und Instanziierung in einem Schritt

Page 20: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 76

Benutzerdefinierte Objekte (4)Benutzerdefinierte Objekte benutzen:

stadtrad.beschleunigen(10)rennrad.beschleunigen(25)stadtrad.bremsen(10)…kleinwagen.beschleunigen(50)rennrad.beschleunigen(20)…kleinwagen.bremsen(25)…

Am Ende sind Objekte freizugebenstadtrad = Nothingrennrad = Nothing

Page 21: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 77

Dateizugriff in Visual Basic 2010Klasse StreamReader mit Methode ReadLine

Imports System.IODim fs As FileStreamDim sr As StreamReaderDim dateiname As String = “meineDatei.txt"Dim zeile As String

If Not File.Exists(dateiname) ThenMessageBox("Dateiexistiert nicht")

Elsefs = New FileStream(dateiname, FileMode.Open)sr = New StreamReader(fs)Do Until sr.Peek() = –1

zeile = sr.ReadLine()Textstring &= zeile & vbCrLf

Loopsr.Close()

Page 22: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 78

Dateizugriff in Visual Basic 2010Klasse StreamReader mit Methode WriteLine

Imports System.IODim fs As FileStreamDim sw As StreamWriterDim dateiname As String = "C:\Tmp\aus.txt"

Tryfs = New FileStream( dateiname, FileMode.Create)sw = New StreamWriter(fs)sw.WriteLine(EingabeText) ‘vorausgesetzt EingabeText wurde vorab

‘vom Programm mit Inhalt versehensw.Close()

Catch ex As ExceptionMessageBox(ex.Message)

End Try

Beispiele angelehnt an: Einstieg in Visual Basic 2010 von Thomas Theis, Galileo Computing

Page 23: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 79

Interoperabilität mit Office-Anwendungen (1)

Durch .NET Programme (z.B. Visual Basic) können Microsoft-Office-Anwendungen automatisiert werden.

Diese Technik basiert auf den s.g. Interop-Assemblys – das sind Sammlungen von Funktionen und Objekten, die gemeinsam durch verschiedene auf der .NET Plattform ausgeführten Anwendungen benutzt werden können.

Installierte Assemblys sind gelistet unter C:\Windows\assembly

Page 24: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 80

Interoperabilität mit Office-Anwendungen (2)

Assembly

Manifest

ModulMetadaten

Code Intermediate LanguageTyp (Klasse, Struktur)EigenschaftenMethodenFelder

Assemblys, verwaltet von der CLR

Page 25: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 81

Interoperabilität mit Office-Anwendungen (3)

Ein Beispiel für MS-Excel Automatisierung findet man unter http://microsoft.com/kb/301982

In Visual Studio unter Projekt:• Verweis hinzufügen• .NET Plattform auswählen• Assembly Microsoft.Office.Interop.Excel auswählen

Page 26: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 82

Interoperabilität mit Office-Anwendungen (4)Imports Microsoft.Office.Interop

Dim oXL As Excel.ApplicationDim oWB As Excel.WorkbookDim oSheet As Excel.Worksheet

oXL = CreateObject("Excel.Application")

oWB = oXL.Workbooks.AddoSheet = oWB.ActiveSheet

oSheet.Cells(1, 1).Value = "Artikel"oSheet.Cells(1, 2).Value = "Menge"oSheet.Cells(1, 3).Value = "Gewicht"oSheet.Cells(1, 4).Value = "Preis“

Nach Art dieses Beispiels können z.B. Berechnungsdaten als Tabelle ausgegeben werden und danach Diagramme erstellt werden.

Page 27: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 83

Interoperabilität mit Office-Anwendungen (5)

Imports Microsoft.Office.Interop

Dim oXL As Excel.ApplicationDim oWB As Excel.WorkbookDim oSheet As Excel.WorksheetDim oRng As Excel.RangeDim eingabe As String

MsgBox("Geben Sie jetzt in F2 etwas ein!")

eingabe = oSheet.Range("F2").ValueDisplay.Text = eingabe

Page 28: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 84

Interoperabilität mit Office-Anwendungen (6)Bei den bisherigen Beispielen wurde eine neue Excel-Tabelle erzeugt. Der Nutzer kann diese unter einem neuen Dateinamen speichern.

Auch das Öffnen bereits existierender Dokumente ist möglich:

Const NVAL As Integer = 20Dim eingabe(NVAL) As Single Dim oXL As Excel.ApplicationDim oWB As Excel.WorkbookDim oSheet As Excel.WorksheetoXL = CreateObject("Excel.Application")oWB = oXL.Workbooks.Open(“C:\usr\tabellen\experimente.xls“)oSheet = oWB.ActiveSheetREM Einlesen der Spalte (B1:B20)FOR i=1 TO NVAL

eingabe(i) = oSheet.Range(„B"+Format(i)).ValueNEXT i

Page 29: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

übernommen von Prof.Dr.Grossmann 85

DB

Active Server Pages

DB

ADO Component BComponent A

Script-engineBuild-In-Objects

ADO .NET (1)

ADO – ActiveX Data Objects, u.a. ADODB Objekt für Datenbanken

Application BApplication A

Page 30: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

ADO .NET (2)

Peter Sobe 86

ADO bietet ein zentrales unabhängiges Datenbankobjekt dataSet

Mögliche (parallele) Nutzung relationaler Datenbanken (Tabellen-orientiert) und hierarchischer Datenbanken (XML)

Trennung des Datenbankzugriffs und der Weiterverarbeitung der Daten

XML als Datenaustauschformat zwischen Anwendung und Datenbank

Mehr dazu im Abschnitt 4

Page 31: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 87

VBA-Skript (1)

Visual Basic ist als Skriptsprache in einige Office-Programme eingebaut, so z.B. in Excel.

Skripte laufen innerhalb der Excel-Anwendung und dabei greifen auf Daten des Excel Dokuments zu.

Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die von der .NET Plattform bereitgestellten Funktionen und Objektmethoden können nicht benutzt werden.

Zum Beispiel Excel und die Datenbank Access besitzen eine eigene eingebaute Entwicklungsumgebung für VBA (zum Start Alt+F11)

Page 32: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 88

VBA-Skript (2)

InputBox und MsgBox können benutzt werden

Beispiel

Page 33: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 89

VBA-Skript (3)

Zugriff auf Dokumentdaten aus VBA-Skripten am Beispiel von Excel

Sichtbare Objekte:

Application

Workbook

Worksheet

Range

Arbeitsmappe

Tabellenblatt

Ausgewählte Felder

Page 34: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 90

VBA-Skript (4)

Programmierung wie in Visual Basic .NET. Ein Verbinden mit der Excel-Anwendung kann in der Skript-Umgebung aber weggelassen werden.

Zugriff auf Dokumentdaten aus VBA-Skripten am Beispiel von Excelper Range:

Z= ActiveSheet.Range(“M22“).Value

Z = …ActiveSheet.Range(“N32“).Value = Z

Alternative Technik zum Auslesen und Setzen von Zellen gegenüber Range: Cells ActiveCell – muss vorher gesetzt werden

Range übernimmt einen String zur Identifikation der Zelle oder des Bereichs.

Spalte (A, B, C, …) dann Zeile (1,2,3,..

Page 35: 3a Programmiersprache VB.ppt [Kompatibilitätsmodus]sobe/InfoChem_2016/Vo/3a_Programmierspr... · Die Sprache „Visual Basic“ wird dabei mit gleicher Syntax verwendet. Aber die

Peter Sobe 91

VBA-Skript (5)

Cells:Z= ActiveSheet.Cells(13,22).Value REM Angabe der Feldposition mit Zeilen- und Spaltenindex

ActiveCell:Wenn vorab eine Zelle mit Activate ausgewählt wurde, kann der Bezug auf ActiveCell erfolgen

Range(“F8").ActivateActiveCell.Value = 37

Eine gute Übersicht zu VBA Skriptprogrammierung findet man z.B. unter ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b012.pdf