310 lines
12 KiB
VB.net
310 lines
12 KiB
VB.net
Public Class ClassDIRegel
|
|
|
|
#Region "***** Variablen *****"
|
|
'Public xmlConfigFile As String = My.Settings.vConfigDatei
|
|
|
|
Public _profilname As String = ""
|
|
|
|
Public _zielindex As String = ""
|
|
|
|
Public _indexieren_aus As String = ""
|
|
Public _art As String = ""
|
|
Public _aktiv As Boolean = True
|
|
Public _id As Integer = 0
|
|
|
|
Public _trennzeichen As String = ""
|
|
Public _dateiendung As String = ""
|
|
Public _text As String = ""
|
|
Public _anzahl As Integer = 0
|
|
Public _position As Integer = 0
|
|
Public _position_von As Integer = 0
|
|
Public _position_bis As Integer = 0
|
|
Public _mit_endung As Boolean = False
|
|
Public _datum_format As String = ""
|
|
Public _ordner_ebene As Object = Nothing
|
|
Public _removeZeros As Boolean = False
|
|
|
|
Public _beschreibung As String = ""
|
|
|
|
' Private _parentClass As ClassDateiimport = ClassDateiimport.GetInstance
|
|
#End Region
|
|
|
|
|
|
#Region "***** Konstruktoren *****"
|
|
''' <summary>
|
|
''' Konstruktor für KOMPLETT
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Sub New(ByVal id As Integer, ByVal zielindex As String, ByVal aktiv As Boolean, ByVal indexieren_aus As String, ByVal datum_format As String, ByVal mit_endung As Boolean, Optional ByVal ordner_ebene As Object = Nothing)
|
|
Me._id = id
|
|
Me._zielindex = zielindex
|
|
Me._aktiv = aktiv
|
|
Me._mit_endung = mit_endung
|
|
Me._indexieren_aus = indexieren_aus
|
|
Me._art = "KOMPLETT"
|
|
If ordner_ebene IsNot Nothing Then Me._ordner_ebene = ordner_ebene
|
|
If datum_format IsNot Nothing Then Me._datum_format = datum_format
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Konstruktor für TRENNZEICHEN
|
|
''' </summary>
|
|
''' <param name="indexieren_aus"></param>
|
|
''' <param name="trennzeichen"></param>
|
|
''' <param name="position"></param>
|
|
''' <remarks></remarks>
|
|
Sub New(ByVal id As Integer, ByVal zielindex As String, ByVal aktiv As Boolean, ByVal indexieren_aus As String, ByVal datum_format As String, ByVal trennzeichen As String, ByVal position As Integer, ByVal mit_endung As Boolean, Optional ByVal ordner_ebene As Object = Nothing, Optional remove0 As Boolean = True)
|
|
Me._id = id
|
|
Me._zielindex = zielindex
|
|
Me._aktiv = aktiv
|
|
Me._indexieren_aus = indexieren_aus
|
|
Me._art = "TRENNZEICHEN"
|
|
Me._trennzeichen = trennzeichen
|
|
Me._position = position
|
|
Me._removeZeros = remove0
|
|
If ordner_ebene IsNot Nothing Then Me._ordner_ebene = ordner_ebene
|
|
If datum_format IsNot Nothing Then Me._datum_format = datum_format
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Konstruktor für BEREICH
|
|
''' </summary>
|
|
''' <param name="indexieren_aus"></param>
|
|
''' <param name="position_von"></param>
|
|
''' <param name="anzahl"></param>
|
|
''' <remarks></remarks>
|
|
Sub New(ByVal id As Integer, ByVal zielindex As String, ByVal aktiv As Boolean, ByVal indexieren_aus As String, ByVal datum_format As String, ByVal position_von As Integer, ByVal anzahl As Integer, Optional ByVal ordner_ebene As Object = Nothing, Optional remove0 As Boolean = True)
|
|
Me._id = id
|
|
Me._zielindex = zielindex
|
|
Me._aktiv = aktiv
|
|
Me._indexieren_aus = indexieren_aus
|
|
Me._art = "BEREICH"
|
|
Me._position_von = position_von
|
|
Me._anzahl = anzahl
|
|
Me._removeZeros = remove0
|
|
If ordner_ebene IsNot Nothing Then Me._ordner_ebene = ordner_ebene
|
|
If datum_format IsNot Nothing Then Me._datum_format = datum_format
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Konstruktor für REST
|
|
''' </summary>
|
|
''' <param name="indexieren_aus"></param>
|
|
''' <param name="position_von"></param>
|
|
''' <remarks></remarks>
|
|
Sub New(ByVal id As Integer, ByVal zielindex As String, ByVal aktiv As Boolean, ByVal indexieren_aus As String, ByVal datum_format As String, ByVal position_von As Integer, ByVal mit_endung As Boolean, Optional ByVal ordner_ebene As Object = Nothing, Optional remove0 As Boolean = True)
|
|
Me._id = id
|
|
Me._zielindex = zielindex
|
|
Me._aktiv = aktiv
|
|
Me._indexieren_aus = indexieren_aus
|
|
Me._art = "REST"
|
|
Me._position_von = position_von
|
|
If ordner_ebene IsNot Nothing Then Me._ordner_ebene = ordner_ebene
|
|
If datum_format IsNot Nothing Then Me._datum_format = datum_format
|
|
Me._removeZeros = remove0
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Konstruktor für DATEIENDUNG
|
|
''' </summary>
|
|
''' <param name="indexieren_aus"></param>
|
|
''' <param name="dateiendung"></param>
|
|
''' <remarks></remarks>
|
|
Sub New(ByVal id As Integer, ByVal zielindex As String, ByVal aktiv As Boolean, ByVal indexieren_aus As String, ByVal datum_format As String, ByVal dateiendung As String, ByVal text As String)
|
|
Me._id = id
|
|
Me._zielindex = zielindex
|
|
Me._aktiv = aktiv
|
|
Me._indexieren_aus = indexieren_aus
|
|
Me._art = "DATEIENDUNG"
|
|
Me._dateiendung = dateiendung
|
|
Me._text = text
|
|
If datum_format IsNot Nothing Then Me._datum_format = datum_format
|
|
End Sub
|
|
''' <summary>
|
|
''' Konstruktor für FEST
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Sub New(ByVal id As Integer, ByVal zielindex As String, ByVal aktiv As Boolean, ByVal indexieren_aus As String, ByVal _value As String, ByVal datum_format As String, Optional ByVal ordner_ebene As Object = Nothing)
|
|
Me._id = id
|
|
Me._zielindex = zielindex
|
|
Me._aktiv = aktiv
|
|
Me._mit_endung = False
|
|
Me._indexieren_aus = indexieren_aus
|
|
Me._art = _value
|
|
If ordner_ebene IsNot Nothing Then Me._ordner_ebene = ordner_ebene
|
|
If datum_format IsNot Nothing Then Me._datum_format = datum_format
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
Private Sub beschreibungAuslesen()
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
''' <summary>
|
|
''' Liefert an Hand einer übergebenen Zeichenkette, abhängig der Regelart, einen Teilstring zurück
|
|
''' </summary>
|
|
''' <param name="zuZerlegenderString">die zu zerlegende Zeichenkette</param>
|
|
''' <returns></returns>
|
|
''' <remarks></remarks>
|
|
Public Function GetTeilstring(ByVal zuZerlegenderString As String) As String
|
|
|
|
Dim ergebnis As String = ""
|
|
|
|
If Me._indexieren_aus = "ORDNER" Then
|
|
|
|
Select Case Me._art.ToUpper
|
|
Case "KOMPLETT"
|
|
ergebnis = zuZerlegenderString
|
|
|
|
Case "BEREICH"
|
|
|
|
'MsgBox(dateinameOhneEndung & vbNewLine & "Bereich: " & Me._position_von - 1 & "-" & Me._anzahl + 1 & vbNewLine & vbNewLine & dateinameOhneEndung.Length & " >= " & Me._position_von + Me._anzahl)
|
|
|
|
If Me._position_von > 0 Then
|
|
If zuZerlegenderString.Length >= Me._position_von - 1 + Me._anzahl Then
|
|
ergebnis = zuZerlegenderString.Substring(Me._position_von - 1, Me._anzahl)
|
|
Else
|
|
If zuZerlegenderString.Length >= Me._position_von - 1 Then
|
|
ergebnis = zuZerlegenderString.Substring(Me._position_von - 1)
|
|
Else
|
|
ergebnis = ""
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Case "REST"
|
|
|
|
If Me._position_von > 0 And Me._position_von < zuZerlegenderString.Length Then
|
|
ergebnis = zuZerlegenderString.Substring(Me._position_von - 1)
|
|
End If
|
|
|
|
Case "TRENNZEICHEN"
|
|
Dim temp As String = zuZerlegenderString
|
|
Dim nichtVorhanden As Boolean = False
|
|
|
|
For i As Integer = 1 To Me._position - 1
|
|
If temp.Contains(Me._trennzeichen) Then
|
|
temp = temp.Substring(temp.IndexOf(Me._trennzeichen) + 1)
|
|
Else
|
|
nichtVorhanden = True
|
|
ergebnis = ""
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Not nichtVorhanden Then
|
|
|
|
If temp.Contains(Me._trennzeichen) Then
|
|
temp = temp.Substring(0, temp.IndexOf(Me._trennzeichen))
|
|
End If
|
|
|
|
ergebnis = temp
|
|
End If
|
|
|
|
End Select
|
|
|
|
ElseIf Me._indexieren_aus = "DATEI" Then
|
|
|
|
Dim dateinameMitEndung As String = zuZerlegenderString.Substring(zuZerlegenderString.LastIndexOf("\") + 1)
|
|
Dim dateinameOhneEndung As String = ""
|
|
If dateinameMitEndung.Contains(".") Then dateinameOhneEndung = dateinameMitEndung.Substring(0, dateinameMitEndung.LastIndexOf("."))
|
|
|
|
Select Case Me._art.ToUpper
|
|
Case "KOMPLETT"
|
|
If Me._mit_endung Then
|
|
ergebnis = dateinameMitEndung
|
|
Else
|
|
ergebnis = dateinameOhneEndung
|
|
End If
|
|
Case "BEREICH"
|
|
|
|
'MsgBox(dateinameOhneEndung & vbNewLine & "Bereich: " & Me._position_von - 1 & "-" & Me._anzahl + 1 & vbNewLine & vbNewLine & dateinameOhneEndung.Length & " >= " & Me._position_von + Me._anzahl)
|
|
|
|
If Me._position_von > 0 Then
|
|
If dateinameOhneEndung.Length >= Me._position_von - 1 + Me._anzahl Then
|
|
ergebnis = dateinameOhneEndung.Substring(Me._position_von - 1, Me._anzahl)
|
|
Else
|
|
If dateinameOhneEndung.Length >= Me._position_von - 1 Then
|
|
ergebnis = dateinameOhneEndung.Substring(Me._position_von - 1)
|
|
Else
|
|
ergebnis = ""
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Case "REST"
|
|
If Me._position_von > 0 And Me._position_von < zuZerlegenderString.Length Then
|
|
ergebnis = dateinameOhneEndung.Substring(Me._position_von - 1)
|
|
End If
|
|
|
|
Case "TRENNZEICHEN"
|
|
Dim temp As String = dateinameOhneEndung
|
|
Dim nichtVorhanden As Boolean = False
|
|
|
|
For i As Integer = 1 To Me._position - 1
|
|
If temp.Contains(Me._trennzeichen) Then
|
|
temp = temp.Substring(temp.IndexOf(Me._trennzeichen) + 1)
|
|
Else
|
|
nichtVorhanden = True
|
|
ergebnis = ""
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Not nichtVorhanden Then
|
|
|
|
If temp.Contains(Me._trennzeichen) Then
|
|
temp = temp.Substring(0, temp.IndexOf(Me._trennzeichen))
|
|
End If
|
|
|
|
ergebnis = temp
|
|
End If
|
|
|
|
|
|
Case "DATEIENDUNG"
|
|
If dateinameMitEndung.Contains(".") Then
|
|
'Console.WriteLine(dateinameMitEndung & " enthält einen Punkt an Position (letzte) " & dateinameMitEndung.LastIndexOf("."))
|
|
Dim dateiEndung As String = dateinameMitEndung.Substring(dateinameMitEndung.LastIndexOf(".") + 1)
|
|
'Console.WriteLine("Die ausgelesene Dateiendung ist " & dateiEndung)
|
|
If dateiEndung.ToUpper = Me._dateiendung.ToUpper Then
|
|
ergebnis = Me._text
|
|
End If
|
|
Else
|
|
'Console.WriteLine(dateinameMitEndung & " enthält keinen Punkt.")
|
|
ergebnis = ""
|
|
End If
|
|
|
|
End Select
|
|
|
|
End If
|
|
|
|
Return ergebnis
|
|
End Function
|
|
|
|
|
|
''' <summary>
|
|
''' Setzt eine Regel sowohl im Objekt, als auch in der XML-Datei auf (de-)aktiviert
|
|
''' </summary>
|
|
''' <param name="aktivieren">True für aktiv, False für inaktiv</param>
|
|
''' <remarks></remarks>
|
|
Public Sub SetRegelAktiv(ByVal aktivieren As Boolean)
|
|
Dim xml As New Xml.XmlDocument()
|
|
|
|
' XML-Datei öffnen und laden
|
|
xml.Load(My.Settings.vDIConfigDatei)
|
|
|
|
' Anzahl der Regelelemente in der XML-Datei zählen
|
|
Dim xmlRegel As Xml.XmlElement = xml.SelectSingleNode("Settings/Profile/Profil[@profilname='" & Me._profilname & "']/Regel[@id='" & Me._id & "']")
|
|
|
|
If xmlRegel IsNot Nothing Then
|
|
xmlRegel.SetAttribute("aktiv", aktivieren)
|
|
|
|
xml.Save(My.Settings.vDIConfigDatei)
|
|
End If
|
|
End Sub
|
|
|
|
End Class
|