SPLIT - Splitten (Aufteilen) von Strings

Für das Splitten von Strings steht der Befehl SPLIT zur Verfügung. Damit lassen sich Strings in der Form von: "Name;Vorname;Strasse;Nr;PLZ;Ort" in einzelne Segmente (Array) splitten.
Notiz
Notiz
Zur Verwendung in F-Scipt Blöcken siehe hier: SPLIT

Form

«SPLIT(<delimiter>,inputXVar>outputXArr)»
Der String (Inhalt von inputXVar) wird beim Delimiter gesplittet und die einzelnen Elemente in den XARR (Array) outputXArr abgefüllt. Die Elemente des XARR (Array) lassen sich anschliessend "by name" abfragen. Siehe hierzu auch X-Array

Beispiel

Direktlink auf F-Script
# ******************************************************************************************************
# DEMO-Script für Verwendung von SPLIT in F-Script
# 
# Version: 16.00.01
# Erstellt: 20.07.2016 - (c) Roman Vonwil
# ******************************************************************************************************
/headerreport
# ------------------------------------------------------------------------------------------------------
# Erzeugen der CSV-Datei (ANSI)
«/IO.CreateCSVFile»
# ------------------------------------------------------------------------------------------------------
# Öffnen des Lesekanals (ANSI)
«nz~READ(1:DIRECTANSI «XCNT(freeArg:InputFile)»)\I»«SYS(MSG ERROR File nicht vorhanden!)»«SYS(STOP)»
«nREPEAT(1)»
# ------------------------------------------------------------------------------------------------------
# Bei letzter Zeile abbrechen
«nz~READ(1:)\I»«GOTO(# JUMP.END.OF.FILE)»
# ------------------------------------------------------------------------------------------------------
# Komplette Zeile direkt in X-Variable speichern
«nREAD(1:MEM>CompleteLine)»
# ------------------------------------------------------------------------------------------------------
# X-Variable splitten und in X-ARRAY speichern
«nSPLIT(;,CompleteLine>Record)»
# ------------------------------------------------------------------------------------------------------
# Einzelne Elemente des X-ARRAYs durchlaufen
«nNO(2,NULL)»
«REPEAT(2)»
«nNO(2)»
# ------------------------------------------------------------------------------------------------------
# XFAS-Spalte befüllen
«XFAS(cell=«XARR(Record[«NO(2,0)»])»)»
# ------------------------------------------------------------------------------------------------------
# LOOP solange Counter <  XARRAY (Länge)
«nzNO(2,0)<«XARR(Record)\N»\N»«LOOP(2)»
«LOOP(1)»
# JUMP.END.OF.FILE
«READ(1:CLOSE)»
/

/IO.CreateCSVFile
«WRITE(1:DIRECT «XCNT(freeArg:InputFile)»)»
«WRITE(1:ANSI 1000;Werkzeug AG;;Würzenbach 12;CH;Luzern;;0;Deutsch;041 31 43 19;;KLF)»
«WRITE(1:ANSI 1001;Werkzeug AG;;Spalenhöhe;CH;Basel FD;;0;Deutsch;061 23 45 23;;K)»
«WRITE(1:ANSI 1002;Werkzeug AG;;Hönggerstrasse 159;CH;Zürich;;0;Deutsch;01 211 23 45;;K)»
«WRITE(1:ANSI 1003;Werkzeug AG;;Schützenmatte;CH;Winterthur;;0;Deutsch;01 721 12 16;;K)»
«WRITE(1:ANSI 1004;Trichter;Emanuel;Maihofstrasse 2;CH;Luzern;;0;Deutsch;041 36 23 34;;KM)»
«WRITE(1:ANSI 1005;MAAP Maschinen und Apparte;;Henziwil;CH;Worblaufen;;0;Deutsch;031 34 56 78;maap@masch.com;KL)»
«WRITE(1:ANSI 1006;"Andres AG Autoservice";;Maienfelderstr. 12;CH;Chur;;0;Deutsch;093 34 56 90;;KL)»
«WRITE(1:ANSI 1007;Hilti Vertriebs AG;;Obere Höhe;FL;Mauern;;0;Deutsch;083 45 45 45;;L)»
«WRITE(1:ANSI 1008;Heldner;Eduard;Rosenaustrasse 9;CH;Hellbühl;;0;Deutsch;041 67 12 16;;KM)»
«WRITE(1:ANSI 1009;Gisler;Manfred;Moos 12;CH;Emmenbrücke;;3;Deutsch;;;M)»
«WRITE(1:ANSI 1010;Gmür;Uschi;Seeblick;CH;Adligenswil;;0;Deutsch;041 31 34 56;;KM)»
«WRITE(1:ANSI 1011;Hartmann;Viola;Algisserstrasse 29;CH;Malters;;0;Deutsch;041 96 12 67;;M)»
«WRITE(1:ANSI 1012;Arnet;Franz;Pilatusstrasse 14;CH;Luzern;;2;Deutsch;041 23 45 76;;M)»
«WRITE(1:ANSI 1013;Marfurt;Renata;Sempacherstrasse 12;CH;Sempach Station;;0;Deutsch;041 34 23 45;;M)»
«WRITE(1:ANSI 1014;Kronenberg;Silvan;Kantonsstrasse 71;CH;Luzern;;0;Deutsch;041 45 12 89;;LM)»
«WRITE(1:CLOSE)»
/

# ******************************************************************************************************
# GetInfoScript
# ******************************************************************************************************
/GetInfoScript
«XFAS(head=SupportsScreenOutput)»
«XFAS(head=SupportsBoArgs)»
«XFAS(head=SupportedBoType)»
«XFAS(head=MlsKey)»
# ------------------------------------------------------------------------------------------------------
«XFAS(cells=1,0,,U.DEMO.STRINGSPLIT)»
/
# ******************************************************************************************************
# GetInfoScriptArg
# ******************************************************************************************************
/GetInfoScriptArg
«XFAS(heads=Argument,StateCd,DataTypeCd,Format,RelationshipCd,RelatedObject)»
«XFAS(heads=RelatedIndex,RelatedConstraint,DefaultValue,EntryMode,WithPrevious,MlsKey)»
«XFAS(cells=InputFile,1,A,4000,0,,,,..\TMP\ArtikelListe.csv,2,0,CSV-File)»
/
# ******************************************************************************************************
# GetInfoScriptCol
# ******************************************************************************************************
/GetInfoScriptCol
«XFAS(heads=Column,DataTypeCd,Format,RelationshipCd,RelatedObject,RelatedIndex,RelatedConstraint)»
«XFAS(heads=OnDemand,MlsKey)»
«XFAS(cells=MyCol1,N,8.0,0,,,,0,Addr.Number)»
«XFAS(cells=MyCol2,A,100,0,,,,0,Addr.LastName)»
«XFAS(cells=MyCol3,A,100,0,,,,0,Addr.FirstName)»
«XFAS(cells=MyCol4,A,100,0,,,,0,Addr.Street)»
«XFAS(cells=MyCol5,A,100,0,,,,0,Addr.City)»
«XFAS(cells=MyCol6,A,100,0,,,,0,Addr.CountrySc)»
«XFAS(cells=MyCol7,A,100,0,,,,0,Addr.Region)»
«XFAS(cells=MyCol8,A,100,0,,,,0,Addr.AddrStateNo)»
«XFAS(cells=MyCol9,N,2.0,0,,,,0,Addr.LangNo)»
«XFAS(cells=MyCol10,A,100,0,,,,0,Addr.Phone1)»
«XFAS(cells=MyCol11,A,100,0,,,,0,Addr.Email)»
«XFAS(cells=MyCol12,A,100,0,,,,0,Erw.)»
/