Página 1 de 1
Corrigindo aplicativo antigo
Enviado: 17 Nov 2025 02:42
por JoséQuintas
Estou desenvolvendo utilitários muito doidos.
Na imagem o antes e o depois.
14.000 linhas de erro, reduzidas a 3.500 linhas, automaticamente.
E isso nem está contando a declaração de variáveis MEMVAR, senão a diferença seria maior ainda.
Agora olhar as que sobraram pra ver o que dá pra fazer.
Re: Corrigindo aplicativo antigo
Enviado: 17 Nov 2025 07:49
por JoséQuintas
De 3,500 pra 2.300
Código: Selecionar todos
PROCEDURE Main
LOCAL cTxt, aList, cLine, cFile, aPrgList := {}, nPos, aItem
SetMode(33,100)
SetMode("W/B")
CLS
cTxt := MemoRead( "errorlist.txt" )
aList := hb_RegExSplit( hb_Eol(), cTxt )
FOR EACH cLine IN aList
IF "procedure returns value" $ Lower( cLine )
cFile := Substr( cLine, 1, At( ":", cLine ) - 1 )
cLine := Substr( cLine, At( ":", cLine ) + 1 )
cLine := Val( Substr( cLine, 1, At( ":", cLine ) - 1 ) )
nPos := hb_AScan( aPrgList, { | e | e[1] == cFile } )
IF nPos == 0
AAdd( aPrgList, { cFile, {} } )
nPos := Len( aPrgList )
ENDIF
AAdd( aPrgList[ nPos ][ 2 ], cLine )
ENDIF
NEXT
hb_MemoWrit( "test.txt", hb_jsonEncode( aPrgList ) )
FOR EACH aItem IN aPrgList
IF File( aItem[1] )
? aItem[1]
RemoveReturn( aItem[1], aItem[2] )
ENDIF
NEXT
Inkey(0)
RETURN
FUNCTION RemoveReturn( cFile, acLine )
LOCAL cTxt, aList, cItem, nLine
cTxt := MemoRead( cFile )
aList := hb_RegExSplit( hb_Eol(), cTxt )
FOR EACH nLine IN acLine
IF nLine < Len( aList )
IF Right( Upper( Trim( aList[ nLine ] ) ), 10 ) == "RETURN .T."
aList[ nLine ] := Trim( aList[ nLine ] )
aList[ nLine ] := Substr( aList[ nLine ], 1, Len( aList[ nLine ] ) - 3 )
ENDIF
ENDIF
NEXT
cTxt := ""
FOR EACH cItem IN aList
cTxt += cItem + hb_Eol()
NEXT
hb_MemoWrit( cFile, cTxt )
RETURN Nil
Capturei os erros de "procedure returns value", e fiz a correção.
Re: Corrigindo aplicativo antigo
Enviado: 17 Nov 2025 09:45
por JoséQuintas
Melhorou, dos 13.000 do início do post, restam 200.
A grande maioria resolvida por utilitário em harbour, além de outras alterações.
Isso de fonte pra consertar fonte... é meio doido, mas tá funcionando.
Re: Corrigindo aplicativo antigo
Enviado: 17 Nov 2025 15:34
por JoséQuintas
Um alerta importante:
Essas rotinas são específicas, direcionadas a estes fontes.
Só devem ser usadas por quem trabalha usando GIT, assim tem controle total pra anular alterações inadequadas.
Dependendo dos fontes, podem estragar ao invés de consertar.