version=1.0.0
vdate=11.01.2016
fname=udf_parsecsvline.bas
ns=%NAMESPACE%
fpath=/vba/functions
====== [VBA] parseCsvLine() ======
//Zerlegen einer CSV-Zeile in einen String-Array
//==Version %%version%% %%vdate%%==
{{%%fname%%|Download %%fname%% (V-%%version%%)}}
===== Definition =====
Array = parseCsvLine(line [,delemiter[,quote [,trim]]])Public Function parseCsvLine( _
ByVal iLine As String, _
Optional ByVal iDelemiter As String = ";", _
Optional ByVal iQuote As String = "'""", _
Optional ByVal iTrim As Boolean = True _
) As String()
***iDelemiter** Zeile
***iDelemiter** Delemiter für dieFleder: Standars: ;
***iQuote** Textbegrenzungszeichen Standard: ' unn "\\ Einer von beiden. Derjenige der Zuserst kommt, ist für die ganze Zeile gültig\\ Der Wert muss aus einzelnen Zeichen bestehen, di im Pattern in [] gesetzt werden
***iTrim** Flag, ob die Werte getrimmt werden sollen Standard: true
***return** Array
===== Beispiele =====
> Für die Ausgabe der Resultate verwendete ich die Funktion [[:vba:functions:print_r:]].
d parseCsvLine("123;abc;'def;ghi';;;0.12;")
(
[0] => '123'
[1] => 'abc'
[2] => 'def;ghi'
[3] => ''
[4] => ''
[5] => '0.12'
[6] => ''
)
'Mit "" als Quote mit Trim
d parseCsvLine("""abc;'def' "";0.12")
(
[0] => 'abc;'def''
[1] => '0.12'
)
'Mit ' Als Quote und ohne trim
d parseCsvLine("'abc;""def ""';0.12",,,false)
(
[0] => 'abc;"def "'
[1] => '0.12'
)
'Mit dem Setting Delemiter = # Quote = '
d parseCsvLine("12#""abc#def""#'ghi#jk'","#", "'")
(
[0] => '12'
[1] => '"abc'
[2] => 'def"'
[3] => 'ghi#jk'
)
===== Code =====