Luis María Guayán
Tucumán, Argentina
_____________________________
http://comunidadvfp.blogspot.com
Efectivamente, esa funcionalidad se utilizaba antes, yo trabajé con la ofimática de UNISYS, el Ofis DSSP (de hecho desarrollé algún módulo en C ), y podías fácilmente dejar un texto con un espacio solo.
Pepe Llopis
Saludos,Ultraton500.
#DEFINE _TRIPLE_ " "
#DEFINE _DOBLE_ " "
#DEFINE _UNICO_ " "
#DEFINE _PTRIP_ " ."
#DEFINE _PDOUB_ " ."
#DEFINE _PVALE_ "."
#DEFINE _PSIGUE_ ". "
#DEFINE _EOL_ CHR(13)+CHR(10)
LOCAL lnLines, i,j,lcResulta,lcFrase
lcResulta=""
LOCAL ARRAY laLines(1)
TEXT TO LcFrase NOSHOW PRETEXT 7
En aquellos tiempos la gente solía concurrir a matear en las plazas .
Nada había para temer . recuerdo que dejábamos nuestros bolsos sin el menor cuidado .
Muy de vez en cuando alguno se quejaba . . .
eran los felices años 60 . Con todos sus problemas eran años felices .
ENDTEXT
MESSAGEBOX(lcFrase)
lnLines=ALINES(laLines,lcFrase)
FOR i=1 TO lnLines
laLines[i]=STRTRAN(STRTRAN(laLines[i], _TRIPLE_, _UNICO_), _DOBLE_ , _UNICO_ )
laLines[i]=Strtran(Strtran(laLines[i],_PTRIP_ ,_pVALE_ ), _PDOUB_ , _PVALE_ )
IF OCCURS(_PVALE_,laLines[i]) > 0
lnPuntos=ALINES(laPoint , laLines[i] ,16+1, _PVALE_ )
laLines[i]=""
FOR j=1 TO lnPuntos
laLines[i]=laLines[i]+ _UNICO_ + UPPER(LEFT(laPoint[j],1))+SUBSTR(laPoint[j],2)
ENDFOR
ENDIF
lcREsulta=lcREsulta+UPPER(LEFT(laLines[i],1))+SUBSTR(laLines[i],2) + _EOL_
NEXT
LcResulta=LEFT(lcResulta,LEN(lcREsulta)-LEN(_EOL_))
MESSAGEBOX(lcResulta)
Otra más:
Function UnSoloEspacio(tcTexto)
*Do While At(Space(2), tcTexto) > 0
Do While Space(2) $ tcTexto
tcTexto = Strtran(tcTexto, Space(32), Space(1))
tcTexto = Strtran(tcTexto, Space(16), Space(1))
tcTexto = Strtran(tcTexto, Space(08), Space(1))
tcTexto = Strtran(tcTexto, Space(04), Space(1))
tcTexto = Strtran(tcTexto, Space(02), Space(1))
Enddo
Return tcTexto
* irTrim_b
* Versión modificada de irTrim() (mapner)
* Utilizando una formulación de Victor Hugo Espínola Dominguez
* Mezclador: Fidel
*
* PROCEDURE irTrim_B
#DEFINE _TRIPLE_ " "
#DEFINE _DOBLE_ " "
#DEFINE _UNICO_ " "
LPARAMETERS tcString , tlRecursiveMode
tcString=IIF(_DOBLE_ $ tcString,;
this.IrTrim_b(STRTRAN(STRTRAN(tcString, _TRIPLE_, _UNICO_), _DOBLE_ , _UNICO_ ), .t. ),;
tcString)
RETURN tcString
* ENDPROC
STACKSIZE)
. Para el caso en que se aplica, raramente supere los 10 niveles, pero al reducir las iteraciones mejora el rendimiento.