AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Sintaxis WLanguage / Instrucciones estructuradas
  • Sintaxis 1: Navegar por las subcadenas separadas por un separador
  • Sintaxis 2 y 3: Encontrar las apariciones de una cadena dentro de otra cadena
  • PARA CADA CUERDA, PARA CADA POSICIÓN y UNICODE
  • Consejo: ¿Cómo hacer que get el separador?
  • Consejo: Navegación de una cadena XML
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
El PARA CADA UNO se usa para navegar por las cadenas de acuerdo a diferentes métodos:
  • Navegar por las subcadenas separadas por un separador.
  • Examinar las ocurrencias de una cadena dentro de otra.
Observación: Se aceptan las frases PARA TODOS, PARA CADA UNO .. En esta documentación se utilizará la sentencia FOR EACH , pero puede sustituirse por FOR ALL.
La instrucción FOR EACH también se puede utilizar para navegar por los objetos.net que implementan la interfaz IEnumerable.
Ejemplo
// Retrieves the list of libraries loaded in memory
LibraryList is string = ListDLL()
 
// For each library
FOR EACH STRING ALibrary OF LibraryList SEPARATED BY CR
// Adds the library into the TABLE_Library table
TableAddLine(TABLE_Library, ExtractString(ALibrary, 1, TAB))
END
// The "C:\MyDocuments\Exports.TXT" file contains the list
// of exported products, separated by ";"
// Retrieve each product
ExportedProduct is string = fLoadText("C:\MyDocuments\Exports.TXT")
FormerPosition is int
 
// For each product
FOR EACH POSITION CurrentPosition OF ";" IN ExportedProduct
// Adds the product into ProductList
ListAdd(LIST_Product, ...
ExportedProduct[[FormerPosition + 1 TO CurrentPosition - 1]]
// Store the position
FormerPosition = CurrentPosition
END
FOR EACH STRING sc1, nPosition, nCounter OF "A.B.C" SEPARATED BY "."
Trace(sc1 + " - " + nPosition + " - " + nCounter)
END
// Returns
// A - 1 - 1
// B - 3 - 2
// C - 5 - 3
s is string = "I am a sentence"+CR+"on several lines"
FOR EACH STRING s2 OF s SEPARATED BY [" ",CR]
Trace(s2)
END

// Returns
// I
// am
// a
// sentence
// on
// several
// lines
Sintaxis

Navegar por las subcadenas separadas por un separador Ocultar los detalles

FOR EACH STRING <Substring> [, <Position> [, <Counter>]] OF <Initial string>
                                                                   [SEPARATED BY <Separator>] [<Direction>]

    ...
END
<FOR EACH STRING>:
Marca el inicio del bloque de instrucciones.
<Substring>:
Cadena Variable que contiene el texto de la subcadena. No hay necesidad de declarar este Variable.
<Position>:
Número entero Variable que contiene la posición de la subcadena en la cadena. No hay necesidad de declarar este Variable.
<Counter>:
El entero Variable que contiene el número de iteraciones. No hay necesidad de declarar este Variable.
<Initial string>:
Cadena que contiene el texto completo. La iteración no tiene lugar si esta cadena está vacía.
<Separator>:
Cadena opcional que contiene el separador de subcadenas (TAB por Default).
Para especificar varios separadores, utilice la siguiente sintaxis:
[<Separator1> , ..., <Separator N>]
Por ejemplo: [TAB, CR]
<Direction>:
Indicador opcional para la dirección de navegación:
FromBeginning
(valor predeterminado)
Examinar la cadena desde el primer carácter hasta el último.
FromEndExaminar la cadena desde el último carácter hasta el primero.

Navegando por las ocurrencias de una cadena dentro de otra cadena Ocultar los detalles

FOR EACH POSITION <Position> OF <Search> IN <Initial String> [<Direction>]

    ...
END
<FOR EACH POSITION>:
Marca el inicio del bloque de instrucciones.
<Position>:
El entero Variable que contiene la posición actual. No hay necesidad de declarar este Variable.
<Search>:
Buscaba una cuerda.
<Initial string>:
Cadena que contiene el texto completo.
<Direction>:
Indicador opcional para la dirección de navegación:
FromBeginning
(valor predeterminado)
Examinar la cadena desde el primer carácter hasta el último.
FromEndExaminar la cadena desde el último carácter hasta el primero.

Navegando por las ocurrencias de una cadena dentro de otra cadena Ocultar los detalles

FOR EACH POSITION <Position> OF <Search> IN <Initial String> WITH <Options>

    ...
END
<FOR EACH POSITION>:
Marca el inicio del bloque de instrucciones.
<Position>:
El entero Variable que contiene la posición actual. No hay necesidad de declarar este Variable.
<Search>:
Buscaba una cuerda.
<Initial string>:
Cadena que contiene el texto completo.
<Options>:
Indicador para las opciones seleccionadas (combinable):
FromBeginning
(valor predeterminado)
Examinar la cadena desde el primer carácter hasta el último.
FromEndExaminar la cadena desde el último carácter hasta el primero.
WholeWordBuscar toda la palabra
IgnoreCaseBúsqueda que no distingue entre mayúsculas y minúsculas (mayúsculas / minúsculas)
Observaciones

Sintaxis 1: Navegar por las subcadenas separadas por un separador

Busca todas las subcadenas de <cadena inicial> separadas por <separador>.. La búsqueda no se realiza si <Initial String> es una cadena vacía.
Para cada iteración:
  • <Subcadena> se rellena con la subcadena actual.
  • <Posición> contiene la posición de la subcadena dentro de la cadena.
  • <Contador> contiene el número de iteraciones realizadas.
El comportamiento es indefinido si la cadena inicial o el separador se modifica durante la búsqueda.
Observación: Si <Cadena inicial> termina con el separador, <Subcadena> devuelve una cadena vacía al final. En caso contrario, <Substring> corresponde al último elemento comprobado.

Sintaxis 2 y 3: Encontrar las apariciones de una cadena dentro de otra cadena

Busca todas las apariciones de la subcadena <Búsqueda> en la <cadena inicial>.
En cada iteración, la posición de la subcadena actual se asigna a la <Posición> Variable.
El comportamiento es indefinido si la cadena inicial o la cadena buscada se modifica durante la búsqueda.

PARA CADA CUERDA, PARA CADA POSICIÓN y UNICODE

<Subcadena>, <Cadena inicial>, <Separador> y <Búsqueda> pueden corresponder a:
  • cadenas ANSI.
  • cadenas UNICODE.
Sin embargo, las cadenas ANSI y las cadenas de UNICODE no se pueden utilizar en la misma sintaxis.
Para obtener más información, consulte Gestión de UNICODE.

Consejo: ¿Cómo hacer que get el separador?

Para recuperar el separador en el bucle, utilice la siguiente sintaxis que le permite conocer la posición del separador. Para encontrar el separador, todo lo que tiene que hacer es recuperar el siguiente carácter.
Por ejemplo:
FOR EACH STRING sTempString, nPosition OF sStringIN SEPARATED BY [" ","-"]
sSeparator = sStringIN[[nPosition + Length(sTempString)]]
...
END

Consejo: Navegación de una cadena XML

Para iterar sobre un archivo XML, llame a XMLExecuteXPath antes de utilizar FOR EACH.
Versión mínima requerida
  • Versión 10
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local