Manual de Calibre | Page 155

Manual de usuario de calibre, Publicación 2.73.0 Este programa hace lo siguiente: especifica que el campo que se examina es series_index. Esto establece el valor de la variable $. ejecuta la función substr, que toma 3 argumentos (texto,inicio,fin). Devuelve un texto formado extrayendo los caracteres entre inicio y fin de texto (el primer carácter es el número cero). En este caso, el texto se calcula mediante la función strcat, inicio es 0 y fin es 6. En este caso, devolverá los primeros 6 caracteres del texto devuelto por strcat, que debe evaluarse antes de que substr pueda finalizar. ejecuta la función strcat (concatenación de textos). strcat acepta 1 o más argumentos, y devuelve un texto formado por la concatenación de todos los valores. En este caso hay tres argumentos. El primer argumento es el valor en $, que aquí es el valor de series_index. El segundo parámetro es el texto constante '->'. El tercer parámetro es el valor devuelto por la función cmp, que debe evaluarse completamente antes de que strcat pueda finalizar. La función cmp toma 5 argumentos (x,y,mn,ig,my). Compara x e y y devuelve el tercer argumento, mn si x < y, el cuarto argumento, ig, si x = y, y el quinto argumento, my, si x > y. Como en todas las funciones, todos los parámetros pueden ser sentencias. En este caso el primer parámetro (el valor de x) es el resultado de dividir series_index entre 2. El segundo parámetro, y, es la constante 1. El tercer parámetro, mn es una sentencia (volveremos a él más adelante). El cuarto parámetro, ig, es el texto constante 'eq'. El quinto parámetro es el texto constante 'gt'. El tercer parámetro (el de mn) es una sentencia, o una sequencia de expresiones. Recuerde que una sentencia (una sentencia de expresiones separadas por punto y coma) también es una expresión, que devuelve el valor de la última expresión de la lista. En este caso, el programa primero asigna el valor 1 a la variable local c, después devuelve un subtexto creado extrayendo desde el carácter número c hasta el final. Puesto que c siempre contiene la constante 1, el subtext o devolverá los caracteres desde el segundo hasta el final, o 't123'. Una vez que se ejecuta la sentencia que proporciona un valor para el tercer parámetro, cmp puede devolver un valor. En este punto, strcat puede devolver un valor, y substr puede devolver un valor. Entonces el programa finaliza. Para distintos valores de series_index, el programa devuelve: series_index == undefined, resultado = prefix ->t123 suffix series_index == 0.5, resultado = prefix 0.50-> suffix series_index == 1, resultado = prefix 1->t12 suffix series_index == 2, resultado = prefix 2->eq suffix series_index == 3, resultado = prefix 3->gt suffix Todas las funciones mostradas en el modo de función única puede usarse en el modo de programación. Para ello debe proporcionar el valor sobre el que actuará la función como primer parámetro, además de los parámetros documentados anteriormente. Por ejemplo, en el modo de programación los parámetros de la función test son test(x,texto_si_no_vacío,texto_si_vacío). El parámetro x, que es el valor que se comprueba, casi siempre será una variable o una llamada una función, a menudo field(). Las siguientes funciones están disponibles, además de las descritas en el modo de función única. Recuerde del ejemplo anterior que las funciones del modo de función única requieren un primer parámetro adicional que especifique el campo sobre el que se opera. Excepto el parámetro id de assign, todos los parámetros pueden ser sentencias (secuencias de expresiones). Tenga en cuenta que la documentación definitiva de las funciones está disponible en la sección Clasificación de funciones (página 155): and(valor,valor,...) – devuelve el texto «1» si todos los valores son no vacíos, en caso contrario devuelve un texto vacío. Esta función opera bien con test o first_non_empty. Pueden usarse tantos valores como se desee. add(x,y) – devuelve x + y. Da un error si x o y no son números. 1.9. Cursillos 151