This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
vba:functions:parsecsvline [12.01.2016 14:32:37] yaslaw created |
vba:functions:parsecsvline [18.01.2016 10:22:17] (current) yaslaw |
||
---|---|---|---|
Line 2: | Line 2: | ||
version=1.0.0 | version=1.0.0 | ||
vdate=11.01.2016 | vdate=11.01.2016 | ||
- | fname=udf_parsecsvline | + | fname=udf_parsecsvline.bas |
ns=%NAMESPACE% | ns=%NAMESPACE% | ||
fpath=/vba/functions | fpath=/vba/functions | ||
</const> | </const> | ||
- | ====== [VBA] list() ====== | + | ====== [VBA] parseCsvLine() ====== |
- | //Diese Funktion schreibt die Werte einer Auflistung in Variablen. Fast so wie list() in PHP. | + | //Zerlegen einer CSV-Zeile in einen String-Array |
- | list() ist geeignet um ein Array, Collection etc. in Variablen zu zerteilen. | + | |
//==Version %%version%% %%vdate%%== | //==Version %%version%% %%vdate%%== | ||
{{%%fname%%|Download %%fname%% (V-%%version%%)}} | {{%%fname%%|Download %%fname%% (V-%%version%%)}} | ||
+ | |||
+ | ===== Definition ===== | ||
+ | <code>Array<String> = parseCsvLine(line [,delemiter[,quote [,trim]]])</code> | ||
+ | <code vb>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()</code> | ||
+ | ***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<String> | ||
+ | |||
+ | |||
+ | ===== Beispiele ===== | ||
+ | |||
+ | > Für die Ausgabe der Resultate verwendete ich die Funktion [[:vba:functions:print_r:]]. | ||
+ | <code vb> | ||
+ | d parseCsvLine("123;abc;'def;ghi';;;0.12;") | ||
+ | <String()> ( | ||
+ | [0] => <String> '123' | ||
+ | [1] => <String> 'abc' | ||
+ | [2] => <String> 'def;ghi' | ||
+ | [3] => <String> '' | ||
+ | [4] => <String> '' | ||
+ | [5] => <String> '0.12' | ||
+ | [6] => <String> '' | ||
+ | ) | ||
+ | |||
+ | 'Mit "" als Quote mit Trim | ||
+ | d parseCsvLine("""abc;'def' "";0.12") | ||
+ | <String()> ( | ||
+ | [0] => <String> 'abc;'def'' | ||
+ | [1] => <String> '0.12' | ||
+ | ) | ||
+ | 'Mit ' Als Quote und ohne trim | ||
+ | d parseCsvLine("'abc;""def ""';0.12",,,false) | ||
+ | <String()> ( | ||
+ | [0] => <String> 'abc;"def "' | ||
+ | [1] => <String> '0.12' | ||
+ | ) | ||
+ | |||
+ | 'Mit dem Setting Delemiter = # Quote = ' | ||
+ | d parseCsvLine("12#""abc#def""#'ghi#jk'","#", "'") | ||
+ | <String()> ( | ||
+ | [0] => <String> '12' | ||
+ | [1] => <String> '"abc' | ||
+ | [2] => <String> 'def"' | ||
+ | [3] => <String> 'ghi#jk' | ||
+ | )</code> | ||
===== Code ===== | ===== Code ===== | ||
<source '%%fpath%%/%%fname%%' vb> | <source '%%fpath%%/%%fname%%' vb> |