Come usare 'include' per scrivere codice compatto?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Apro ripetutamente un determinato tipo di file, che richiede impostazioni di importazione speciali per l'apertura corretta.
Mi piacerebbe essere in grado di scrivere queste impostazioni di importazione in un breve modulo compatto. Per esempio:
dt = open ("fileref", impostazioni di importazione ("string_that_parses_correctly");
dove "string_that_parses_correctly" è l'intera stringa, che contiene le condizioni delle impostazioni. Nel mio caso uso:
"string_that_parses_correctly" =
"Fine della linea ( CRLF , CR , LF ) ,
Fine del campo ( linguetta ) ,
Quotes Strip ( 1 ) ,
Usa Apostrofo come Virgolette ( 0 ) ,
Scansione intero file ( 1 ) ,
Tratta le colonne vuote come numeriche ( 0 ) ,
etichette ( 1 ) ,
Inizio di nomi di colonna ( 1 ) ,
Data inizia ( 2 ) ,
Linee da leggere ( Tutti ) ,
Regola annuale ( "20xx" )"
Ho catturato queste impostazioni dallo script generato aprendo uno di questi file.
Quindi c'è un modo per definire una stringa, ad esempio come una variabile globale, che è sempre impostata, in modo che io possa usarla quando si apre il file come mostrato.
Spero che abbia senso.
Saluti
Poul Ravn Sørensen
Ri: Come usare 'include' per scrivere il codice compatto?Ti mancano le virgolette doppie attorno al riferimento del file.
Il tuo comando openxls non fa nulla. Devi aggiungere OPEN ad esso.
Una delle cose belle di JSL è la sua interattività. Mentre costruisci la stringa, evidenziala e fai clic su Esegui. Controlla la finestra del registro e guarda cosa hai creato. Continua a ripetere finché non ottieni quello che vuoi.
Questo è probabilmente quello che stai cercando di fare:
xls_fileid = "\\ servername \ nomecartella \ filename.xls" ;
xls_settings = "\ [
Impostazioni di importazione (
Fine della linea (crlf, cr, lf),
fine campo (tab),
strip citazioni (1),
usa l'apostrofo come virgolette (0),
scansione di tutto il file (1),
considera le colonne vuote come numeriche (0),
etichette (1),
i nomi delle colonne iniziano (1),
i dati iniziano (2),
righe da leggere (tutto),
regola di anno ("20xx")
)] \" ;
openxls = evalinsert ( "\ [open (" ^ xls_fileid ^ ", ^ xls_settings ^)] \" )
eval ( analizzare ( openxls )) ;
Ri: Come usare 'include' per scrivere il codice compatto?Ciao di nuovo, ecco il mio codice JMPstart.jsl, che imposta xls_settings (perché a volte non posso incollare il testo in questa finestra che non conosco),:

Ecco i miei tentativi di creare la stringa che apre il vero file Excel:
xls_fileid = \\ nomeserver \ nomecartella \ filename.xls ;
dlm = "";
DQM = "\ ["] \ ";
openxls = xls_fileid || DQM || dlm || xls_settings;
e poi:
eval (parse (openxls));
Ma le virgolette continuano a causare errori.
Saluti Poul
Ri: Come usare 'include' per scrivere il codice compatto?Puoi utilizzare \ [... ] \ per inserire virgolette doppie in una stringa.
Oppure sfuggirli con \! ". Ecco alcuni esempi.
stampare ( "Ciao mondo" ) ;
// Le seguenti affermazioni danno gli stessi risultati:
stampare ( "\!"Ciao mondo\!"" ) ;
stampare ( "\["Ciao mondo"]\" ) ;
Dal registro:
"Ciao mondo"
"\!"Ciao mondo\!""
"\!"Ciao mondo\!""
Ri: Come usare 'include' per scrivere il codice compatto?Ciao, ti sto rispondendo io stesso.
I miei problemi riducono il problema di combinare le stringhe in un pezzo analizzabile di jsl.
Ho definito una stringa che contiene la stringa, che imposta le impostazioni speciali per l'importazione xls (csv). Inizia: Importare Impostazioni(. . . );
Quindi voglio assegnare in modo dinamico il file, che dovrebbe essere aperto, come:
X ls_fileid = " \\ server \ cartella \ filename ";
Alla fine voglio combinare questi due in questo modo:
openxls = xls_fileid || xls_settings;
eval (parse (openxls));
Ma in qualche modo ottenere le doppie virgolette mescolate.
Qualcuno ha un esempio di come è fatto?
Saluti
poul