minigui ( manipular arquivo TXT)
Enviado: 04 Jun 2011 11:30
ola amigos
tenho um arquivo chamado F_ILES.INI este arquivo é texto puro e contem todas as TAG que uso para criar meu arquivo de indice *.CDX segue parte dele:
onde: T = TAG K=ao nome do campo F=condicao especifica O e C é so pra mostrar pro usuario
parte do arquivo...
para editar este arquivo uso a seguinte linha:
onde: VETE_ORDER recebe os ARRAYS criados
aSystem[ SYS_SYSDIR ] = ao diretorio onde esta o arquivo
f_iles = é o arquivo F_ILES.INI
"CHEQUES_ORDERS" = o que devo procurar no arquivo F_ILES.INI
a funçao LEARQINI() é esta
pois bem, tendo os arrays montado posso mostrar ao usuario manipular e por ai vai, meu problema esta como gravar uma informação que eu alterei, por exeplo eu trouxe somente os dados do arquivos que sao estes:
se eu alterar por exemplo o segundo item passando desta forma
como faço para gravar esta alteraçao no arquivo F_ILES.INI mantendo os outros dados, apesar do arquivo estar nomeado como INI nao posso utilizar a regra de manipulação de arquivo INI.
se alguem tiver alguma ideia sera bem vinda.
abraços
tenho um arquivo chamado F_ILES.INI este arquivo é texto puro e contem todas as TAG que uso para criar meu arquivo de indice *.CDX segue parte dele:
onde: T = TAG K=ao nome do campo F=condicao especifica O e C é so pra mostrar pro usuario
parte do arquivo...
Código: Selecionar todos
[BANCOS_ORDERS]
T:CODIGO;K:CODIGO;O:Código;
T:CONTAS;K:NUM_CONTA;O:Número da conta;
[CHEQUES_ORDERS]
T:NUMERO;K:NUMERO;O:Número;
T:RECEBIDOS;K:NUMERO;F:TIPO="RECEITA";O:Número;C:Recebidos;
T:EMITIDOS;K:NUMERO;F:TIPO="DESPESA";O:Número;C:Emitidos;
[CAIXAS_ORDERS]
T:NUMERO;K:NUMERO;O:Nº do Caixa;
T:ABERTOS;K:DtoS(DATA_ABRE)+OPERADOR;F:Empty(DATA_FECHA);O:Abertura;
T:FECHADOS;K:DtoS(DATA_FECHA)+OPERADOR+NUMERO;F:!Empty(DATA_FECHA);O:Fechamento;
T:CXTODOS;K:DTOS(DATA_ABRE)+OPERADOR+NUMERO;F:EMPTY(DATA_FECHA);O:Abertos;C:Todos;
Código: Selecionar todos
VETE_ORDER := LEARQINI( aSystem[ SYS_SYSDIR ], "F_ILES", "CHEQUES_ORDERS" )
aSystem[ SYS_SYSDIR ] = ao diretorio onde esta o arquivo
f_iles = é o arquivo F_ILES.INI
"CHEQUES_ORDERS" = o que devo procurar no arquivo F_ILES.INI
a funçao LEARQINI() é esta
Código: Selecionar todos
FUNCTION LEARQINI( CPASTA, cField, cKey )
LOCAL x := 0, y := 0, f := 0
LOCAL lOk := .F.
LOCAL cStr := ""
LOCAL aRetVal := {}
IF Empty( cField ) .OR. Empty( cKey )
RETURN {" "}
ENDIF
cField := AllTrim( cField )
cKey := Upper( AllTrim( cKey ) )
CPASTA := ALLTRIM( UPPER( CPASTA ) )
IF Right( CPASTA, 1 ) <> "\"
CPASTA += "\"
ENDIF
IF !FILE( CPASTA + cField + ".INI" )
ALERT( 'Arquivo de configuracao ' + cField + ' corrompido ou inexistente!' )
RETURN {" "}
ENDIF
cField := MEMOREAD( CPASTA + cField + ".INI" )
f := MLCount( cField, 250 )
FOR x := 1 TO f
cStr := Upper( AllTrim( MemoLine( cField, 250, x ) ) )
IF Empty( cStr ) .OR. cStr = "//"
LOOP
ENDIF
IF cStr = "[" .AND. ( cKey $ cStr )
lOk := .T.
EXIT
ENDIF
NEXT x
IF lOk
FOR y := x+1 TO f
cStr := AllTrim( MemoLine( cField, 250, y ) )
IF Empty( cStr ) .OR. cStr = "//"
LOOP
ENDIF
IF cStr = "[" // nova chave
EXIT
ENDIF
IF cStr == "<vazio>"
cStr := ""
ENDIF
AAdd( aRetVal, cStr )
NEXT y
ENDIF
RETURN aRetVal
Código: Selecionar todos
T:NUMERO;K:NUMERO;O:Número;
T:RECEBIDOS;K:NUMERO;F:TIPO="RECEITA";O:Número;C:Recebidos;
T:EMITIDOS;K:NUMERO;F:TIPO="DESPESA";O:Número;C:Emitidos;
Código: Selecionar todos
T:RECEBIDOS;K:NUMERO;F:TIPO="RECEITA" .AND. !EMPTY(DT_BAIXA) ;O:Número;C:Recebidos;
se alguem tiver alguma ideia sera bem vinda.
abraços