Por exemplo:
Código: Selecionar todos
Linha 01: RCS file: /cvs/1.fmb,v
Linha 02: head: 1.5
Linha 03: locks: strict
Linha 04: total revisions: 6; selected revisions: 1
Linha 05: description:
se alguem puder ajudar...
Muito Obrigado
Moderador: Moderadores
Código: Selecionar todos
Linha 01: RCS file: /cvs/1.fmb,v
Linha 02: head: 1.5
Linha 03: locks: strict
Linha 04: total revisions: 6; selected revisions: 1
Linha 05: description:
Código: Selecionar todos
#define _kSIZE 16*1024
#define _kEOL Chr(13)+Chr(10)
//------------------------------------------------------------
function Leitura(cFileN)
local nByts // bytes lidos na iteração
local nLins := 0 // quantidade de linhas
local cBuff := Space(_kSIZE) // buffer de armazenamento
local cRest := "" // resto da leitura
local cFileH := FOpen(cFileN)) = -1 // alça do arquivo aberto
*
if nFileH = -1
// Erro na abertura do arquivo! Trate o erro à sua maneira
return .F.
end
*
while (nByts := FRead(cFileH,@cBuff,_kSIZE)) > 0 .or. !Empty(cRest)
cBuff := RTrim(cBuff)
cBuff := cRest+cBuff
cBuff += if(nByts=0 .and. Right(cBuff,2) != _kEOL, _kEOL, "")
//
// Individualização da linha através do par CR/LF (_kEOL)
while (i := At(_kEOL,cBuff)) > 0
// A linha já individualizada, sem _kEOL
cLine := Left(cBuff,i-1)
// Ajuste do buffer, descartando o _kEOL
cBuff := SubStr(cBuff,i+2)
// Contador de linhas, caso precise
nLins ++
//
//
// Neste ponto você poderá fazer sua pesquisa
// dentro da linha, usando as funções básicas
// do Clipper.
//
//
end
// Pode sobrar algo após o último _kEOL
cRest := cBuff
// Reset do buffer para nova leitura
cBuff := Space(_kSIZE)
end
return .T.
O que não estaria errado. O exemplo dado pelo Maligno é feito diretamente no arquivo TXT em baixo nível (é correto também).Valentim escreveu:Cheguei até a utilizar o SDF pra passar o arquivo TXT pra DBF
Código: Selecionar todos
cRCS := cRev := cDtAu := cDesc := ""
cArqTmp := "CVS"
aTemp := {}
Aadd (aTemp, {"TEXTO","C",300,0})
DBCreate (cArqTmp, aTemp)
DBUseArea ( .t.,,cArqTmp,, .f., .f.)
Append From log_cvs.txt SDF
SET PRINTER ON
SET DEVICE TO PRINTER
SET PRINTER TO LogCVS.txt
SET CONSOLE OFF
SET CURSOR OFF
DBGoTop()
Do While !Eof()
cLoc1 := "RCS file: "
nPosIni1 := AT(cLoc1,TEXTO)
nPosFim1 := AT(",v",SubStr(TEXTO,nPosIni1,Len(TEXTO)))
if nPosFim1 > 0
cRCS := SubStr(TEXTO,nPosIni1,nPosFim1-nPosIni1)
@ PROW() + 00,00 SAY cRCS
endif
cLoc2 := "revision "
nPosIni2 := AT(cLoc2,TEXTO)
nPosFim2 := AT("revision ",SubStr(TEXTO,nPosIni2,Len(TEXTO)))
if nPosFim2 > 0
cRev := SubStr(TEXTO,nPosIni2,(nPosFim2+20)-nPosIni2)
@ PROW() + 01,00 SAY cRev
endif
cLoc3 := "date: "
nPosIni3 := AT(cLoc3,TEXTO)
nPosFim3 := AT("; state: ",SubStr(TEXTO,nPosIni3,Len(TEXTO)))
if nPosFim3 > 0
cDtAu := SubStr(TEXTO,nPosIni3,(nPosFim3+1)-nPosIni3)
@ PROW() + 01,00 SAY cDtAu
@ PROW() + 01,00 SAY Replicate('=',77)
@ PROW() + 01,00 SAY ""
endif
DBSkip()
EndDo
Código: Selecionar todos
RCS file: /u01/cvs/rps-v48/acma/M_SOLICITACAO_SERV.fmb,v
Working file: M_SOLICITACAO_SERV.fmb
head: 1.20
branch:
locks: strict
access list:
keyword substitution: b
total revisions: 28; selected revisions: 1
description:
----------------------------
revision 1.17
date: 2007/09/14 18:36:48; author: author001; state: Exp; lines: +354 -296
/*
PDA 201138 - 14/09/2007 - D.F.N.
DESCRIÇÃO: Na Trigger WHEN-VALIDATE-ITEM do campo CD_BEM e DSP_DS_PLAQUETA, alterada a consulta, pois não trazia
o código do Setor
*/
=============================================================================
RCS file: /u01/cvs/rps-v48/acma/M_TIPO_OS.fmb,v
Working file: M_TIPO_OS.fmb
head: 1.8
branch:
locks: strict
access list:
keyword substitution: b
total revisions: 9; selected revisions: 1
description:
----------------------------
revision 1.6
date: 2007/04/13 18:26:24; author: author002; state: Exp; lines: +142 -206
recompilacao
=============================================================================
RCS file: /u01/cvs/rps-v48/acma/R_ABERTURAOS.rdf,v
Working file: R_ABERTURAOS.rdf
head: 1.6
branch:
locks: strict
access list:
keyword substitution: b
total revisions: 9; selected revisions: 1
description:
----------------------------
revision 1.6
date: 2007/04/29 19:05:11; author: author003; state: Exp; lines: +3965 -1612
PDA 178252
Substituida a trigger after repport pela formula CF_ATUALIZAOSIMPRESSA
=============================================================================
Código: Selecionar todos
RCS file: /u01/cvs/rps-v48/acma/M_SOLICITACAO_SERV.fmb,v
revision 1.17
date: 2007/09/14 18:36:48; author: author001;
=============================================================================
RCS file: /u01/cvs/rps-v48/acma/M_TIPO_OS.fmb,v
revision 1.6
date: 2007/04/13 18:26:24; author: author002;
=============================================================================
RCS file: /u01/cvs/rps-v48/acma/R_ABERTURAOS.rdf,v
revision 1.6
date: 2007/04/29 19:05:11; author: author003;
=============================================================================
Código: Selecionar todos
Registro XX: AAAAAAAAAAAAAAAAAAAAAAA
Registro 11: /*
Registro 12: PDA 201138 - 14/09/2007 - D.F.N.
Registro 13: DESCRIÇÃO: Na Trigger WHEN-VALIDATE-ITEM do campo CD_BEM e Registro 14: DSP_DS_PLAQUETA, alterada a consulta, pois não trazia
Registro 15: o código do Setor
Registro 16: */
Registro XX: AAAAAAAAAAAAAAAAAAAAAAAA
