Wie verwende ich "include", um kompakten Code zu schreiben?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich öffne wiederholt einen bestimmten Dateityp, der zum korrekten Öffnen spezielle Importeinstellungen benötigt.
Ich möchte diese Importeinstellungen in kompakter Form schreiben können. Zum Beispiel:
dt = open ("fileref", Importeinstellungen ("string_that_parses_correctly");
Dabei ist "string_that_parses_correctly" die gesamte Zeichenfolge, die die Bedingungen der Einstellungen enthält. In meinem Fall verwende ich:
"string_that_parses_correctly" =
"Ende der Linie ( CRLF . CR . LF ) .
Ende des Feldes ( Tab ) .
Zitate streichen ( 1 ) .
Verwenden Sie Apostrophe als Anführungszeichen ( 0 ) .
Ganze Datei scannen ( 1 ) .
Leere Spalten als numerisch behandeln ( 0 ) .
Etiketten ( 1 ) .
Spaltennamen Start ( 1 ) .
Datenbeginn ( 2 ) .
Zeilen zum Lesen ( Alles ) .
Jahresregel ( "20xx" ) "
Ich habe diese Einstellungen aus dem Skript erfasst, das durch Öffnen einer dieser Dateien generiert wurde.
Gibt es eine Möglichkeit, eine Zeichenfolge zu definieren, zum Beispiel als globale Variable, die immer gesetzt ist, damit ich sie verwenden kann, wenn ich die Datei wie gezeigt öffne.
Ich hoffe es macht Sinn.
Grüße
Poul Ravn Sørensen
Re: Wie kann man mit 'include' kompakten Code schreiben?Sie fehlen doppelte Anführungszeichen um den Dateiverweis.
Ihr Befehl openxls macht nichts. Sie müssen OPEN hinzufügen.
Eines der schönen Dinge an JSL ist die Interaktivität. Wenn Sie die Zeichenfolge erstellen, markieren Sie sie und klicken Sie auf Ausführen. Überprüfen Sie das Protokollfenster und sehen Sie, was Sie erstellt haben. Wiederholen Sie so lange, bis Sie bekommen, was Sie wollen.
Möglicherweise versuchen Sie Folgendes:
xls_fileid = "\\ Servername \ Ordnername \ Dateiname.xls" ;
xls_settings = "\ [
Importeinstellungen(
Zeilenende (crlf, cr, lf),
Feldende (Tab),
Zitate (1),
Apostroph als Anführungszeichen (0) verwenden,
ganze Datei scannen (1),
leere Spalten als numerisch behandeln (0),
Etiketten (1),
Spaltennamen beginnen (1),
Datenbeginn (2),
Zeilen zum Lesen (alle),
Jahresregel ("20xx")
)] " ;
openxls = evalinsert ( "\ [open (" ^ xls_fileid ^ ", ^ xls_settings ^)] \" )
eval ( analysieren ( openxls )) ;
Re: Wie kann man mit 'include' kompakten Code schreiben?Hallo nochmal, hier ist mein JMPstart.jsl-Code, der die xls_settings festlegt (warum ich manchmal keinen Text in dieses Fenster einfügen kann, weiß ich nicht):

Hier sind meine Versuche, die Zeichenfolge zu verbreiten, die die eigentliche Excel-Datei öffnet:
xls_fileid = \\ Servername \ Ordnername \ Dateiname.xls ;
dlm = ",";
dqm = "\ ["] \ ";
openxls = xls_fileid || dqm || dlm || xls_settings;
und dann:
eval (parse (openxls));
Aber die Zitate verursachen immer wieder Fehler.
Grüße Poul
Re: Wie kann man mit 'include' kompakten Code schreiben?Sie können entweder \ [... ] \ um doppelte Anführungszeichen in eine Zeichenfolge zu setzen.
Oder entkommen Sie mit \! ". Hier sind einige Beispiele.
drucken ( "Hallo Welt" ) ;
// Die folgenden Aussagen liefern die gleichen Ergebnisse:
drucken ( "\!"Hallo Welt\!"" ) ;
drucken ( "\["Hallo Welt"]\" ) ;
Aus dem Protokoll:
"Hallo Welt"
"\!"Hallo Welt\!""
"\!"Hallo Welt\!""
Re: Wie kann man mit 'include' kompakten Code schreiben?HI, ich antworte selbst darauf.
Meine Probleme reduzieren das Problem der Kombination von Saiten zu einem auswertbaren Stück Jsl.
Ich habe eine Zeichenfolge definiert, die die Zeichenfolge enthält und die speziellen Einstellungen für den Import von xls (csv) setzt. Es fängt an: Einführen Die Einstellungen(. . . );
Dann möchte ich die Datei dynamisch zuweisen, die geöffnet werden soll, wie:
x ls_fileid = " \\ Server \ Ordner \ Dateiname ";
Zum Schluss möchte ich diese beiden so kombinieren:
openxls = xls_fileid || xls_settings;
eval (parse (openxls));
Aber irgendwie werden die doppelten Anführungszeichen durcheinander gebracht.
Hat jemand ein Beispiel, wie das gemacht wird?
Grüße
Poul