jj: Write Vector fields \o/

This commit is contained in:
Jonathan Jenne
2018-10-29 13:26:57 +01:00
parent ac8709a0f9
commit 52966dcc47
10 changed files with 290 additions and 264 deletions

View File

@@ -1427,17 +1427,17 @@ Public Class ClassWindream
''' <param name="werte">Der Wert/die Werte die dem Index zugewiesen werden sollen</param>
''' <returns>Liefert True wenn das Indexieren erfolgreich war, sonst False</returns>
''' <remarks></remarks>
Private Shared Function Indexiere(ByVal filenameZiel As String, ByVal index As String, ByVal werte As Object)
Public Shared Function Indexiere(ByVal filenameZiel As String, ByVal index As String, ByVal werte As Object) As Boolean
If LogErrorsOnly = False Then ClassLogger.Add(" - In Indexierungsvorgang für: " & filenameZiel, False)
Try
Dim WMObject As WINDREAMLib.WMObject = Nothing '= CreateObject("WINDREAMLib.WMObject") '= New WINDREAMLib.WMObject 'CreateObject("WINDREAMLib.WMObject")
'MsgBox("Indexiere: " & vbNewLine & filenameZiel)
'werte Is Nothing Or _
' überprüfen ob alle notwendigen Informationen angegeben wurden (sonst abbrechen)
If filenameZiel Is Nothing Or _
filenameZiel = "" Or _
index Is Nothing Or _
index = "" Or _
If filenameZiel Is Nothing Or
filenameZiel = "" Or
index Is Nothing Or
index = "" Or
Not ExistIndexInObjekttyp(_WDObjekttyp, index) Then
If LogErrorsOnly = False Then ClassLogger.Add("=> Hinweis: Die Datei wurde auf Grund eines Problems in der Initialisierung nicht vollständig indexiert.", False)
Return False
@@ -1624,23 +1624,36 @@ Public Class ClassWindream
' wenn es sich um einen TypVektorIndex handelt
If TypDesIndexes >= 4096 And TypDesIndexes < 8192 Then
If LogErrorsOnly = False Then ClassLogger.Add("- Es handelt sich um einen Vektorindex", False)
Dim temp_arr As New ArrayList
'Dim temp_arr As New ArrayList
Dim arrayIndex = 0
Dim temp_arr As Object
Dim arrayLength As Integer = 0
For Each element In werte
arrayLength = arrayLength + 1
Next
ReDim temp_arr(arrayLength - 1)
Select Case (TypDesIndexes - WMObjectVariableValueTypeVector)
'VektorIndex vom Typ String 64'
Case 1
If LogErrorsOnly = False Then ClassLogger.Add("- VektorIndex vom Typ String 1", False)
For Each wert As Object In werte
'Führende Nullen Entfernen
If werte.ToString.StartsWith("0") Then
Dim werteString As String = CStr(CInt(wert.ToString))
wert = werteString
temp_arr.Add(CStr(wert))
temp_arr(arrayIndex) = CStr(wert)
ClassLogger.Add("- Führende Nullen wurden entfernt", False)
Else
temp_arr.Add(CStr(wert))
temp_arr(arrayIndex) = CStr(wert)
End If
arrayIndex = arrayIndex + 1
If LogErrorsOnly = False Then ClassLogger.Add("- Wert " & CStr(wert) & " konvertiert", False)
Next
Case WMObjectVariableValueTypeUndefined
@@ -1652,61 +1665,72 @@ Public Class ClassWindream
'Führende Nullen Entfernen
If werte.ToString.StartsWith("0") Then
wert = CInt(wert)
temp_arr.Add(CStr(wert))
temp_arr(arrayIndex) = CStr(wert)
ClassLogger.Add("- Führende Nullen wurden entfernt", False)
Else
temp_arr.Add(CStr(wert))
temp_arr(arrayIndex) = CStr(wert)
End If
arrayIndex = arrayIndex + 1
If LogErrorsOnly = False Then ClassLogger.Add("- Wert " & CStr(wert) & " konvertiert", False)
Next
Case WMObjectVariableValueTypeInteger
If LogErrorsOnly = False Then ClassLogger.Add("- VektorIndex vom Typ Integer", False)
For Each wert As Object In werte
temp_arr.Add(CInt(wert))
temp_arr(arrayIndex) = CInt(wert)
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeFloat
For Each wert As Object In werte
wert = wert.ToString.Replace(".", ",")
temp_arr.Add(CDbl(wert))
temp_arr(arrayIndex) = CDbl(wert)
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeBoolean
For Each wert As Object In werte
Try
temp_arr.Add(CBool(wert))
temp_arr(arrayIndex) = CBool(wert)
Catch ex As Exception
' Nothing zuweisen damit SetVariableValue nicht ausgeführt wird
temp_arr = Nothing
End Try
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeDate
For Each wert As Object In werte
'wert =
temp_arr.Add(CDate(wert))
temp_arr(arrayIndex) = CDate(wert)
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeFixedPoint
For Each wert As Object In werte
temp_arr.Add(CDbl(wert))
temp_arr(arrayIndex) = CDbl(wert)
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeTimeStamp
For Each wert As Object In werte
temp_arr.Add(CInt(wert))
temp_arr(arrayIndex) = CInt(wert)
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeCurrency
For Each wert As Object In werte
Dim aValue As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(werte)
temp_arr.Add(aValue)
temp_arr(arrayIndex) = aValue
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeTime
For Each wert As Object In werte
temp_arr.Add(CDate(wert))
temp_arr(arrayIndex) = CDate(wert)
arrayIndex = arrayIndex + 1
Next
Case WMObjectVariableValueTypeVariant
@@ -1714,13 +1738,8 @@ Public Class ClassWindream
End Select
If temp_arr.Count > 0 Then
If LogErrorsOnly = False Then ClassLogger.Add("- Einträge in temp_arr also Speichern des Arrays in convertValue", False)
' convertValue = Nothing
' convertValue = temp_arr.ToArray
Else
' convertValue = vbEmpty
End If
werte = temp_arr
If LogErrorsOnly = False Then ClassLogger.Add("- Werte erfolgreich konvertiert", False)
Else
' convertValue = vbEmpty
@@ -1760,28 +1779,10 @@ Public Class ClassWindream
WMObject.unlock()
If LogErrorsOnly = False Then ClassLogger.Add(" - die Sperrung des Dokuments aufheben", False)
Catch ex As Exception
' nichts tun (Datei war nicht gesperrt)
End Try
'Catch ex As Exception
' ' auch wenn ein Fehler aufgetreten ist muss das Dokument gespeichert werden, um den Dokumenttypen zu speichern
' WMObject.Save()
' ' Unlock in einem unbehandelten Try-Block um Fehler abzufangen,
' ' wenn eine Datei nicht gelocked ist
' Try
' WMObject.unlock()
' Catch ex2 As Exception
' ' nichts tun (Datei war nicht gesperrt)
' End Try
' ' Nachricht für den TreeView-Log
' indexBeschreibung &= "konnte nicht indexiert werden"
' ClassLogger.Add(" DATEI konnte nicht indexiert werden", True)
'End Try
' die Indexierungsinformationen für den TreeView-Log zurückgeben
Return True
Else