Herramientas de usuario

Herramientas del sitio


es:manual:items:generativos:siette.util.corpus.table

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
es:manual:items:generativos:siette.util.corpus.table [2021/05/27 08:46] – [get] rootes:manual:items:generativos:siette.util.corpus.table [2024/02/13 14:21] (actual) root
Línea 2: Línea 2:
 Esta clase da soporte al manejo de [[es:manual:items:generativos:tablas|tablas]], [[es:manual:items:generativos:bases_de_datos|bases de datos]] y [[es:manual:items:generativos:web-semantica|web semántica]]. Una tabla es una lista no ordenada de //registros//. Cada uno de estos registros tiene un conjunto de //atributos//, (tambien llamados //campos// por analogía con los //sistemas de bases de datos//) que toman //valores//. Una tabla puede describirse mediante un fichero cuya primera línea (opcionalmente) contiene los nombres de los campos, y las siguientes líneas, una por //registro// los valores de cada uno de los //atributos//. El tamaño de las tablas es teóricamente ilimitado, aunque evidentemente nada hay //ilimitado// en informática, simplemente no se especifica su tamaño. Esta clase da soporte al manejo de [[es:manual:items:generativos:tablas|tablas]], [[es:manual:items:generativos:bases_de_datos|bases de datos]] y [[es:manual:items:generativos:web-semantica|web semántica]]. Una tabla es una lista no ordenada de //registros//. Cada uno de estos registros tiene un conjunto de //atributos//, (tambien llamados //campos// por analogía con los //sistemas de bases de datos//) que toman //valores//. Una tabla puede describirse mediante un fichero cuya primera línea (opcionalmente) contiene los nombres de los campos, y las siguientes líneas, una por //registro// los valores de cada uno de los //atributos//. El tamaño de las tablas es teóricamente ilimitado, aunque evidentemente nada hay //ilimitado// en informática, simplemente no se especifica su tamaño.
  
-Esta clase soporta tanto fichero de texto en formato CSV con la extensión ''.txt'' o ''.csv''; o ficheros en formato de //hoja de cálculo// con extendión ''.xlx'' o ''.xlsx''.+Esta clase soporta tanto fichero de texto en formato CSV con la extensión ''.txt'' o ''.csv''; o ficheros en formato de //hoja de cálculo// con extendión ''.xlx'' o ''.xlsx'' 
 + 
 ==== Constructores ==== ==== Constructores ====
 <code java> <code java>
Línea 11: Línea 13:
 public Table(String sURL, boolean hasTitleRow) public Table(String sURL, boolean hasTitleRow)
 public Table(String sURL) public Table(String sURL)
 +public Table(Table table)
 public Table() public Table()
 </code> </code>
  
-Por comodidad de programación se han definido varios constructores. Unos llaman a otros pasándoles paarámetros por defecto. Si se onctruye el objeto sin inicializarlo la primera operación debe ser la llamada al método ''getTable''.+Por comodidad de programación se han definido varios constructores. Unos llaman a otros pasándoles parámetros por defecto. Si se construye el objeto sin inicializarlo la primera operación debe ser la llamada al método ''getTable''.
 Los constructores resuelven de forma inteligente la carga del fichero, dependiendo de su extensión. Por ejemplo los ficheros con extensión ''.xls'' se consideran ficheros de Excel en formato antiguo. Los constructores resuelven de forma inteligente la carga del fichero, dependiendo de su extensión. Por ejemplo los ficheros con extensión ''.xls'' se consideran ficheros de Excel en formato antiguo.
 +
 +El constructor ''Table(Table table)'' es un constructor de copia, duplica la. tabla que se le pasa como parámetro construyendo una nueva instancia.
  
 ^ Parámetro ^ Descripción ^Valor por defecto ^ ^ Parámetro ^ Descripción ^Valor por defecto ^
-|''sURL'' | Contiene la dirección web (URI) del fichero que contiene la tabla. Esta dirección puede ser relativa al directorio auxiliar de la asignatura o absoluta, si se trata de una localización externa a Siette |  |+|''sURL'' | Contiene la dirección web (URI) del fichero que contiene la tabla. Esta dirección puede ser relativa al [[es:manual:temas#directorio auxiliar]] de la asignatura o absoluta, si se trata de una localización externa a Siette |  |
 |''hasTitleRow'' | Indica si la tabla contiene una primera fila con los nombres de los campos | ''true'' | |''hasTitleRow'' | Indica si la tabla contiene una primera fila con los nombres de los campos | ''true'' |
 |''separator'' | Es una secuencia de caracteres que se usa en el método ''split'' de la clase ''String'' para separar los valores de los atributos | ''" \t,"'' | |''separator'' | Es una secuencia de caracteres que se usa en el método ''split'' de la clase ''String'' para separar los valores de los atributos | ''" \t,"'' |
Línea 33: Línea 38:
 </code> </code>
  
-Estos métodos sirven para cargar un fichero que contenga una tabla. Los tres primeros usan ficheros de texto, y los dos últimos ficheros de //hojas de cálculo//. (Ver la seccion [[#constructores]] para el significado de los parámetro)+Estos métodos sirven para cargar un fichero que contenga una tabla. Los tres primeros usan ficheros de texto, y los dos últimos ficheros de //hojas de cálculo//. (Ver la sección [[#constructores]] para el significado de los parámetro)
 ==== setExclusive ==== ==== setExclusive ====
 <code java> <code java>
Línea 40: Línea 45:
 </code> </code>
  
-La selección en una tabla tiene dos modos de funcionamiento //exclusivo// y //no exclusivo//. El modo //exclusivo// que es el que se usa por defecto elimina  de la tabla cada registro que se haya seleccioando previamente, de manera que no se pueda seleccionar dos veces el mismo registro. El modo //no exclusivo// si lo permite.+La selección en una tabla tiene dos modos de funcionamiento //exclusivo// y //no exclusivo//. El modo //exclusivo// que es el que se usa por defecto elimina  de la tabla cada registro que se haya seleccionando previamente, de manera que no se pueda seleccionar dos veces el mismo registro. El modo //no exclusivo// si lo permite.
 Si no se especifica lo contrario, el modo por defecto es //exclusivo//. Si no se especifica lo contrario, el modo por defecto es //exclusivo//.
 ==== setFilterHTML ==== ==== setFilterHTML ====
Línea 62: Línea 67:
 </code> </code>
  
-Cuando se realizán búsquedas en la tabla, hay dos modos de hacerlo considerando que debe haber conincidencia //total//, o //parcial// entre el contenido de la tabla y la cadena de búsqueda. Por ejemplo, si la tabla contiene el valor''alineamiento'' y la cadena de búsqueda es ''linea'', la busqueda tendrá exito en el caso de que sea en modo //parcial// ya que parte de la cadena de la tabla contiene la cadena de búsqueda. Sin embargo si el modo es //total// este término no se considerará correspondiente a la búsqueda. Por fecto el modo es //parcial//.+Cuando se realizan búsquedas en la tabla, hay dos modos de hacerlo considerando que debe haber conincidencia //total//, o //parcial// entre el contenido de la tabla y la cadena de búsqueda. Por ejemplo, si la tabla contiene el valor''alineamiento'' y la cadena de búsqueda es ''linea'', la busqueda tendrá exito en el caso de que sea en modo //parcial// ya que parte de la cadena de la tabla contiene la cadena de búsqueda. Sin embargo si el modo es //total// este término no se considerará correspondiente a la búsqueda. Por fecto el modo es //parcial//.
  
 Nótese que la secuencia de búsqueda es ''línea'' (con acento), a pesar de que el modo sea //parcial// puede que no se encuentre este valor, depende si se consideran iguales las letras acentuadas y no acentuadas. Ver [[#setIgnoreCase]] y [[#setIgnoreAccents]]. Nótese que la secuencia de búsqueda es ''línea'' (con acento), a pesar de que el modo sea //parcial// puede que no se encuentre este valor, depende si se consideran iguales las letras acentuadas y no acentuadas. Ver [[#setIgnoreCase]] y [[#setIgnoreAccents]].
Línea 89: Línea 94:
  
 Los métodos ''size'' y ''nRows'' devuelven el número de filas de la tabla. El método ''nCols'' devuelve el número de columnas (//atributos//). Los métodos ''size'' y ''nRows'' devuelven el número de filas de la tabla. El método ''nCols'' devuelve el número de columnas (//atributos//).
 +
 +==== sort ====
 +<code java>
 +public Table sort(int n)
 +public Table sort(String nombreColumna)
 +public Table sort(int n, boolean descendente)
 +public Table sort(String nombreColumna, boolean descendente)
 +</code>
 +
 +Devuelve una tabla con las filas ordenadas según la n-sima columna, o bien el de la columna etiquetada con el valor ''nombreColumna'' . El segundo parámetro, en caso de usarse con el valor ''true'' indicaría que la ordenación se realizaría en orden inverso.
 +
 ==== selectTable ==== ==== selectTable ====
 <code java> <code java>
Línea 121: Línea 137:
      String[] tallas = {"38","39","40"}      String[] tallas = {"38","39","40"}
      String[] colores = {"rojo","azul"};      String[] colores = {"rojo","azul"};
-     Table t2 = t.selectTable("TALLA", tallas, Dictionary.ANY, "COLOR", colores, Dictionary.ANY);+     Table t2 = t.selectTable("TALLA", tallas, Table.ANY, "COLOR", colores, Table.ANY);
  
 La instrucción ''selectTable'' forma una subtabla que contiene solamente los registros que en el campo ''TALLA'' tienen el valor ''28'', ''39'' o ''40'', y que en el campo ''COLOR'' no tienen ni el valor ''rojo'', ni el valor ''azul''. La instrucción La instrucción ''selectTable'' forma una subtabla que contiene solamente los registros que en el campo ''TALLA'' tienen el valor ''28'', ''39'' o ''40'', y que en el campo ''COLOR'' no tienen ni el valor ''rojo'', ni el valor ''azul''. La instrucción
Línea 152: Línea 168:
 <code java> <code java>
 public Table selectTable() public Table selectTable()
-public Object clone() 
 </code> </code>
  
 Devuelve una copia de la tabla integra. Devuelve una copia de la tabla integra.
 +
 ==== selectSet ==== ==== selectSet ====
 <code java> <code java>
Línea 176: Línea 192:
  
 Son métodos similares a [[#selectTable]] pero que devuelven conjuntos de elemntos de la clase [[siette.util.corpus.Row]], una clase auxiliar para el manejo de tablas. Son métodos similares a [[#selectTable]] pero que devuelven conjuntos de elemntos de la clase [[siette.util.corpus.Row]], una clase auxiliar para el manejo de tablas.
 +
 ==== selectAll ==== ==== selectAll ====
 <code java> <code java>
Línea 211: Línea 228:
 public String[] select() public String[] select()
 </code> </code>
 +
 +
 +==== addTable ====
 +<code java>
 +public void addTable(Table t)
 +</code>
 +
 +Añade ala  tabla todas las filas de la otra tabla ''t''.
 +
 +==== delRow ====
 +<code java>
 +public void delRow(int columnPos, String[] attPos, int modePos, int columnNeg, String[] attNeg, int modeNeg )
 +public void delRow(int columnPos, String[] attPos, int columnNeg, String[] attNeg)
 +public void delRow(int columnPos, String[] attPos, int modePos)
 +public void delRow(int columnPos, String[] attPos)
 +public void delRow(int columnPos, String attPos)
 +
 +public void delRow(String namePos, String[] attPos, int modePos, String nameNeg, String[] attNeg, int modeNeg )
 +public void delRow(String namePos, String[] attPos,  String nameNeg, String[] attNeg)
 +public void delRow(String namePos, String[] attPos, int modePos)
 +public void delRow(String namePos, String[] attPos)
 +public void delRow(String namePos, String attPos)
 +
 +public void delRow(String[] atts)
 +public void delRow(String att)
 +</code>
 +
 +Son métodos similares a [[#selectTable]], pero lo único que hacen es borrar de la tabla los elementos que coinciden con los atributos que se le pasa.
 +
  
 ==== getRow ==== ==== getRow ====
Línea 217: Línea 263:
 </code> </code>
  
-Deuvuelve un objeto de la clase [[siette.util.corpus.Row]] (una subclase de ''java.util.ArrayList<String>'' que representa una fila completa de la tabla. +Devuelve un objeto de la clase [[siette.util.corpus.Row]] (una subclase de ''java.util.ArrayList<String>'' que representa una fila completa de la tabla.
  
 ==== get ==== ==== get ====
 <code java> <code java>
 +public String[] get(int i)
 public String get(int i, int j) public String get(int i, int j)
 public String get(String[] rowString, String name) public String get(String[] rowString, String name)
Línea 227: Línea 273:
 </code> </code>
  
-Devuelve el valor de un campo concreto de la tabla, por fila y columna. Témgase en cuenta que la numéración tanto de filas como columnas comienza en 0, por lo que la fucnión:+Devuelve el valor de un campo concreto de la tabla, por fila y columna. Téngase en cuenta que la numeración tanto de filas como columnas comienza en 0, por lo que la función:
  
    get(1,3)    get(1,3)
Línea 235: Línea 281:
    get(1,"COLOR");    get(1,"COLOR");
  
-devuele el avlor del campo ''COLOR'' del segundo registro. (Si la tabla tiene una fila de títulos el segundo registro corresponderá a la tercera fila).+Devuele el valor del campo ''COLOR'' del segundo registro. (Si la tabla tiene una fila de títulos el segundo registro corresponderá a la tercera fila).
  
 Esta funcion esta pensada para utilizarla junto con la clase [[siette.util.Random]], obteniendo valores de registros al azar, por ejemplo: Esta funcion esta pensada para utilizarla junto con la clase [[siette.util.Random]], obteniendo valores de registros al azar, por ejemplo:
Línea 241: Línea 287:
    get(Random.nextInt(t.size()),"COLOR");    get(Random.nextInt(t.size()),"COLOR");
  
-devuelve un color al azar, evidentemente con una frecuencia proporcioanl al número deocurrencias que haya en la tabla.+devuelve un color al azar, evidentemente con una frecuencia proporcional al número de ocurrencias que haya en la tabla.
      
 +<code java>
 +public String[] get(int i)
 +</code>
 +
 +La función ''get'' con un solo argumento devuelve un vector de ''String'' con todos los valores de la fila, es decir, es similar a la función [[#getRow]]
  
        
Línea 273: Línea 324:
  
 Devuelve la //primera fila// de la tabla, es decir, un array con los nombres de todos los campos. Devuelve la //primera fila// de la tabla, es decir, un array con los nombres de todos los campos.
 +
 +==== toString ====
 +<code java >
 +public String toString()
 +</code>
 +
 +Devuelve sobre una cadena de caracteres toda la tabla, incluyendo la cabecera, con los valores separados por el separador por defecto.
 +
 ==== find ==== ==== find ====
 <code java> <code java>
-public String find(int pos)+public String find(int n)
 public int find(String title) public int find(String title)
 </code> </code>
  
-Estas dos funciones son una la inversa de la otra. La primera devuelve el nombre del campo i-esimo (Iniciando la cuenta en 0), y la segunda devuelve la posición del campo ''title'' en la secuencia de campos. +Estas dos funciones son una la inversa de la otra. La primera devuelve el nombre del campo n-esimo (Iniciando la cuenta en 0), y la segunda devuelve la posición del campo ''title'' en la secuencia de campos.  
 ==== allValues ==== ==== allValues ====
 <code java> <code java>
Línea 289: Línea 349:
 ==== getTable ==== ==== getTable ====
 <code java> <code java>
-public static String[][] getTable(ArrayList list) +public static String[][] getTable(ArrayList<String> list) 
-public static String[][] getTable(Set set)+public static String[][] getTable(Set<Row> set)
 </code> </code>
 +
 +Son funciones auxiliares para transformar las salidas de otros métodos en una matriz de cadenas de caracteres. 
  
 ==== toHint ==== ==== toHint ====
 <code java> <code java>
 public static String toHint(String in, String remove, String replace) public static String toHint(String in, String remove, String replace)
-public static String toHint(String in, Set set0, String replace)+public static String toHint(String in, Set<String> set, String replace)
 </code> </code>
 +
 +Se trata de una funcion auxiliar que permite construir de forma automática ayudas en las preguntas generadas a partir de textos. Es de mucha utilidad cuando se trabaja con [[es:manual:items:generativos:bases_de_datos|bases de datos]] y [[es:manual:items:generativos:web-semantica|web semántica]].
 +
 +La función da como resultado la misma cadena ''in'' pero en la que se han reemplazado todas las ocurrencias de la ubcadena''remove'' por la cadena ''replace''. La segunda función puede llamarse con un conjunto de cadenas de caracteres, y todas ellas serán reemplazadas. Por ejemplo
 +
 +   String texto = "Johannes Chrysostomus Wolfgangus Theophilus Mozart "
 +                + "más conocido como Wolfgang Amadeus Mozart o simplemente Mozart"
 +                + "fue un compositor y pianista del antiguo Arzobispado de Salzburgo,"
 +                + "maestro del Clasicismo, considerado como uno de los músicos más"
 +                + " influyentes y destacados de la historia."
 +   String[] remove = {"Johannes", "Chrysostomus", "Wolfgangus",  
 +                       "Theophilus", "Mozart", "Amadeus" };            
 +   String replace = "___";             
 +   Table.toHint(texto, remove, replace); 
 +
 +da como resultado:   
 +
 +   ___ ___ ___ ___ ___​ , más conocido como ___ ___ ___ o simplemente ___,
 +   fue un compositor y pianista del antiguo Arzobispado de Salzburgo, 
 +   maestro del Clasicismo, considerado como uno de los músicos más influyentes 
 +   y destacados de la historia.
  
  
es/manual/items/generativos/siette.util.corpus.table.1622105196.txt.gz · Última modificación: 2021/05/27 08:46 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki