Página 1 de 1
Função compativel com ExtractStrings
Enviado: 26 Jun 2014 16:35
por Eros
Existe no clipper 5.2 ou em suas bibliotecas auxiliares alguma função que tem funcionalidade semelhante ou igual a ExtractStrings do delphi ??
ExtractStrings em delhi tem a finalidade de facilitar na importação de um arquivo texto, onde as informações em cada linha são separados por algum caractere (exemplo do sped que usa "|" pipe separando campos de dados).
Alguém saberia informar se existe função similar nas bibliotecas do clipper ??
Obs (A pergunta se refere a clipper, nao harbour)
Função compativel com ExtractStrings
Enviado: 26 Jun 2014 17:01
por alxsts
Olá!
Creio que o mais indicado neste caso é o comando
APPEND FROM.
Função compativel com ExtractStrings
Enviado: 26 Jun 2014 17:16
por Eros
Obrigado pela dica.. testando, foi o mais próximo que encontrei mesmo.. mas já ajuda..
Na verdade, é para criar uma rotina de importação de dados do sped fiscal.
Função compativel com ExtractStrings
Enviado: 26 Jun 2014 17:36
por Toledo
Amigos, segue um exemplo do que pode fazer:
Código: Selecionar todos
cText:="Funcao|compativel|com|ExtractStrings"
aRet:=SPLIT(cText,"|")
For i=1 to Len(aRet)
? aRet[i]
Next
retu
Function SPLIT(cStr,cDelim)
Local _Var1,_Var2, _aVar3:={}
If (PCount() < 2)
cDelim:= ","
EndIf
Do While .T.
_Var2:= At(cDelim,cStr)
If (_Var2 > 0)
_Var1:= Left(cStr,_Var2-1)
cStr:= SubStr(cStr,_Var2+Len(cDelim))
Else
_Var1:= cStr
cStr:=""
EndIf
AADD(_aVar3,_Var1)
If Empt(cStr)
Exit
Endif
Enddo
Return _aVar3
Abraços,
Função compativel com ExtractStrings
Enviado: 26 Jun 2014 17:48
por Eros
Valeu Toledo.. muito boa.. obrigado !
Função compativel com ExtractStrings
Enviado: 27 Jun 2014 01:39
por rochinha
Amiguinhos,
Ufahh!! custei para encontrar.
Tempos atrás tinha colocando uma postagem onde tinha uma função que fazia o mesmo que a do Toledo, só que com outra codificação.
Só para registro:
Código: Selecionar todos
function StringToArray( cString, cSeparator )
LOCAL nPos
LOCAL aString := {}
DEFAULT cSeparator := ";"
cString := ALLTRIM( cString ) + cSeparator
DO WHILE .T.
nPos := AT( cSeparator, cString )
IF nPos = 0
EXIT
ENDIF
AADD( aString, SUBSTR( cString, 1, nPos-1 ) )
cString := SUBSTR( cString, nPos+1 )
ENDDO
RETURN ( aString )
A função reversa:
Código: Selecionar todos
function ArrayToString( aArray, cSeparator )
LOCAL nPos
DEFAULT cSeparator := ";"
cString := ""
FOR nPos = 1 TO LEN(aArray)
cString := cString + aArray[nPos] + cSeparator
NEXT
RETURN ( cString )