Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class xyzFile
- Public xValues() As Double
- Public yValues() As Double
- Public zValues() As Double
- Public xCount As Integer
- Public yCount As Integer
- Public zCount As Integer
- Public decimalSep As String = "."
- Public xyzSeperator As String = ""
- Public prevSave As Boolean = False
- Public prevSavePath As String = ""
- Public serialNumColumn As Boolean = False
- Sub isSerialNum(ByVal issetValue As Boolean)
- If issetValue = True Then
- Me.serialNumColumn = True
- Else
- Me.serialNumColumn = False
- End If
- End Sub
- Sub setXYZSeperator(ByVal strings As String)
- If strings = "Value seperator" Or strings = "" Then
- Me.xyzSeperator = " "
- Else
- Me.xyzSeperator = strings
- End If
- End Sub
- Sub setCommaAsDecimal(ByVal isComma As Boolean)
- If isComma = True Then
- decimalSep = ","
- Else
- decimalSep = "."
- End If
- End Sub
- Sub setX(ByVal xvalueString As String)
- Dim xValArray() As Double
- Dim tmpValue As String
- Dim valueDbl As Double
- Dim i As Integer
- xValArray = splitStringByLine(xvalueString)
- ReDim xValues(UBound(xValArray))
- For i = 0 To UBound(xValArray)
- tmpValue = xValArray(i)
- tmpValue = Replace(tmpValue, ",", DecimalSeparator)
- tmpValue = Replace(tmpValue, ".", DecimalSeparator)
- valueDbl = CDbl(tmpValue)
- xValues(i) = valueDbl
- Next i
- Me.xCount = i
- End Sub
- Sub setY(ByVal yvalueString As String)
- Dim yValArray() As Double
- Dim tmpValue As String
- Dim valueDbl As Double
- Dim i As Integer
- yValArray = splitStringByLine(yvalueString)
- ReDim yValues(UBound(yValArray))
- For i = 0 To UBound(yValArray)
- tmpValue = yValArray(i)
- tmpValue = Replace(tmpValue, ",", DecimalSeparator)
- tmpValue = Replace(tmpValue, ".", DecimalSeparator)
- valueDbl = CDbl(tmpValue)
- yValues(i) = valueDbl
- Next i
- Me.yCount = i
- End Sub
- Sub setZ(ByVal zvalueStirng As String)
- Dim zValArray() As Double
- Dim tmpValue As String
- Dim valueDbl As Double
- Dim i As Integer
- zValArray = splitStringByLine(zvalueStirng)
- ReDim zValues(UBound(zValArray))
- For i = 0 To UBound(zValArray)
- tmpValue = zValArray(i)
- tmpValue = Replace(tmpValue, ",", DecimalSeparator)
- tmpValue = Replace(tmpValue, ".", DecimalSeparator)
- valueDbl = CDbl(tmpValue)
- zValues(i) = valueDbl
- Next i
- Me.zCount = i
- End Sub
- Sub checkLenght()
- If Not (Me.xCount = Me.zCount And Me.xCount = Me.yCount And Me.zCount = Me.yCount) Then
- Error (1)
- End If
- End Sub
- Sub writeValues(ByVal path As String)
- Dim valueArray As String = ""
- Dim tempX As String
- Dim tempY As String
- Dim tempZ As String
- Dim serialNumColumnString As String = ""
- For i = 0 To Me.yCount - 1
- tempX = Me.xValues(i)
- tempX = Replace(tempX, ".", Me.decimalSep)
- tempX = Replace(tempX, ",", Me.decimalSep)
- tempY = Me.yValues(i)
- tempY = Replace(tempY, ".", Me.decimalSep)
- tempY = Replace(tempY, ",", Me.decimalSep)
- tempZ = Me.zValues(i)
- tempZ = Replace(tempZ, ".", Me.decimalSep)
- tempZ = Replace(tempZ, ",", Me.decimalSep)
- If Me.serialNumColumn = True Then
- serialNumColumnString = i & Me.xyzSeperator
- End If
- valueArray = valueArray & serialNumColumnString & tempX & Me.xyzSeperator & tempY & Me.xyzSeperator & tempZ & vbCrLf
- Next
- System.IO.File.WriteAllText(path, valueArray)
- End Sub
- Function splitStringByLine(ByVal strings As String, Optional ByVal warnings As String = "Empty data values has been found.")
- Dim masivs() As String
- Dim dblMasivs() As Double
- Replace(strings, vbCr, vbCrLf)
- Replace(strings, vbLf, vbCrLf)
- masivs = Split(strings, vbCrLf)
- dblMasivs = checkElement(masivs, warnings)
- Return dblMasivs
- End Function
- Private Function checkElement(ByVal masivs() As String, Optional ByVal warning As String = "Empty values has been found.")
- Dim j As Integer
- Dim i As Integer
- Dim lastEmpty As Boolean
- Dim dblMasivs() As Double
- Dim ubounds As Integer
- Dim tmpMasivs As String
- 'janočeko, vai pēdējais elements ir tukšs.
- If (masivs(UBound(masivs))) = String.Empty Then
- lastEmpty = True
- ubounds = UBound(masivs) - 1
- Else
- ubounds = UBound(masivs)
- End If
- 'janodefinē dbl masīva augša
- ReDim dblMasivs(ubounds)
- 'katrs masīva elements jāpārvērš par double
- 'ja ir tukšs elements, tad jāatstāj tukšs pa vidu
- For i = 0 To ubounds
- If Not (masivs(i) = String.Empty) Then
- tmpMasivs = Replace(masivs(i), ".", DecimalSeparator)
- tmpMasivs = Replace(tmpMasivs, ",", DecimalSeparator)
- dblMasivs(i) = CDbl(tmpMasivs)
- Else
- dblMasivs(i) = Double.NaN
- End If
- Next i
- 'jāsaskaita tukšie elementi pa vidu un ja ir, tad
- 'jādod brīdinājums
- j = 0
- For i = 0 To UBound(dblMasivs)
- If Double.IsNaN(dblMasivs(i)) Then
- j = j + 1
- End If
- Next i
- If j > 0 Then
- MsgBox(warning & vbCrLf & "Count: " & j)
- End If
- Return dblMasivs
- End Function
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement