Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Parte de una cadena
Message
From
04/02/2008 10:30:11
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivia
 
General information
Forum:
Visual FoxPro
Category:
Troubleshooting
Environment versions
Visual FoxPro:
VFP 9 SP2
Database:
MS SQL Server
Miscellaneous
Thread ID:
01288881
Message ID:
01289068
Views:
12
This message has been marked as the solution to the initial question of the thread.
>Hola hilmar.
>El asunto es que el usuario ingresa esa cadena dentro de un archivo TXT, el archivo puede tener:
>
>
>
>
>Cadena de caracteres__(Seccion)__con otra cadena__(Otra)__
>
>
>
>Tengo que buscar todo lo que comience por __( y termine por )__
>Lo que el usuario ingresa no esta bajo mi control, aun asi debo extraer lo que escribe de otras cadenas en un archivo plano.

Bueno, en ese caso, las funciones que te mencioné son apropiadas. Por ejemplo, el siguiente ejemplo extrae todo el texto desde "(" hasta ")":
lcCadenaUsuario = "Cadena de caracteres__(Seccion)__con otra cadena__(Otra)__"
local lnInicio, lnFin
lnInicio = at("(", lcCadenaUsuario)
lnFin = at(")", lcCadenaUsuario)
do case
case lnInicio = 0 or lnFin = 0
  MessageBox("No se encuentran los paréntesis requeridos.")
case lnInicio > lnFin
  MessageBox("Los paréntesis no están en el orden correcto.")
otherwise && No hay problema, extraer el string
  * Extraer, incluyendo paréntesis:
  lcExtracto = substr(lcCadenaUsuario, lnInicio, lnFin - lnInicio + 1
  * o bien, excluyendo paréntesis:
  * lcExtracto = substr(lcCadenaUsuario, lnInicio + 1, lnFin - lnInicio - 1
  ? "El texto extraído es:", lcExtracto
endcase
Como no lo probé, es posible que tengas que ajustar ligeramente los cálculos, especialmente los límites de extracción (es decir, de dónde hasta dónde).

HTH,

Hilmar.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform