¿Cómo usar 'incluir' para escribir código compacto?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Abro repetidamente un cierto tipo de archivo, que necesita una configuración de importación especial para abrir correctamente.
Me gustaría poder escribir estas configuraciones de importación en una forma compacta y breve. Por ejemplo:
dt = open ("fileref", configuración de importación ("string_that_parses_correctly");
donde "string_that_parses_correctly" es la cadena completa, que contiene las condiciones de la configuración. En mi caso yo uso:
"string_that_parses_correctly" =
"Fin de la línea ( CRLF , CR , LF ) ,
Fin de campo ( Lengüeta ) ,
Cotizaciones de la tira ( 1 ) ,
Utilice Apostrophe como comilla ( 0 ) ,
Escanear todo el archivo ( 1 ) ,
Trate las columnas vacías como numéricas ( 0 ) ,
Etiquetas ( 1 ) ,
Inicio de nombres de columna ( 1 ) ,
Inicio de datos ( 2 ) ,
Líneas para leer ( Todos ) ,
Regla del año ( "20xx" ) "
Capturé esta configuración desde el script generado al abrir uno de estos archivos.
Entonces, ¿hay una manera de definir una cadena, por ejemplo, como una variable global, que siempre esté configurada, de modo que pueda usarla cuando abra el archivo como se muestra?
Espero que tenga sentido.
Saludos
Poul Ravn Sørensen
Re: ¿Cómo usar 'include' para escribir código compacto?Te estás perdiendo las comillas dobles en la referencia del archivo.
Su comando openxls no hace nada. Necesitas agregar ABIERTO a ello.
Una de las cosas buenas de JSL es su interactividad. Mientras creas la cadena, resáltala y haz clic en Ejecutar. Compruebe la ventana de registro y vea lo que ha creado. Sigue iterando hasta que obtengas lo que quieres.
Esto es posiblemente lo que estás tratando de hacer:
xls_fileid = "\\ servername \ foldername \ filename.xls" ;
xls_settings = "\ [
Importar ajustes(
Fin de línea (crlf, cr, lf),
final del campo (pestaña),
comillas (1),
utilizar apóstrofe como comilla (0),
escanear todo el archivo (1),
tratar las columnas vacías como numéricas (0),
etiquetas (1),
nombres de columna comienzan (1),
los datos comienzan (2),
líneas para leer (todas),
regla del año ("20xx")
)] \ " ;
openxls = evaluar inserte ( "\ [open (" ^ xls_fileid ^ ", ^ xls_settings ^)] \" )
evaluar ( analizar gramaticalmente ( openxls )) ;
Re: ¿Cómo usar 'include' para escribir código compacto?Hola de nuevo, aquí está mi código JMPstart.jsl, que establece los xls_settings (por qué a veces no puedo pegar texto en esta ventana, no sé),:

Aquí están mis intentos de crear la cadena para abrir el archivo de Excel real:
xls_fileid = \\ servername \ foldername \ filename.xls ;
dlm = ",";
dqm = "\ ["] \ ";
openxls = xls_fileid || dqm || dlm || xls_settings;
y entonces:
eval (parse (openxls));
Pero las citas siguen causando errores.
Saludos poul
Re: ¿Cómo usar 'include' para escribir código compacto?Puedes usar \ [... ] \ para poner comillas dobles en una cadena.
O escapar de ellos con \! ". Aquí hay unos ejemplos.
impresión ( "Hola Mundo" ) ;
// Las siguientes afirmaciones dan los mismos resultados:
impresión ( "\!"Hola Mundo\!"" ) ;
impresión ( "\["Hola Mundo"]\" ) ;
Desde el registro:
"Hola Mundo"
"\!"Hola Mundo\!""
"\!"Hola Mundo\!""
Re: ¿Cómo usar 'include' para escribir código compacto?Hola, estoy respondiendo a esto yo mismo.
Mis problemas se reducen a la cuestión de combinar cadenas en una pieza de jsl analizable.
He definido una cadena que contiene la cadena, que establece la configuración especial para la importación xls (csv). Empieza: Importar Configuraciones (. . . );
Luego quiero asignar dinámicamente el archivo, que debería abrirse, como:
X ls_fileid = " \\ server \ folder \ filename ";
Finalmente quiero combinar estos dos así:
openxls = xls_fileid || xls_settings;
eval (parse (openxls));
Pero de alguna manera confundir las comillas dobles.
¿Alguien tiene un ejemplo de cómo se hace esto?
Saludos
Poul