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.
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.)»
/