Boa tarde a todos.
Estou quase terminando e está ficando com a cara desejada. Bem o quase é que é o problema....
Quando da captura das variáveis acontece que consigo recuperar o nome das variáveis (ex: c_Var1), mas quando tento recuperar o conteúdo dela (ex: &c_var1) a coisa não funciona.
Abaixo o código do trecho em questão:
SAVE ALL Like * TO errormem
nMemHandle := FOpen( "errormem.mem", FO_READWRITE )
nMemLength := FSeek( nMemHandle, 0, FS_END )
FSeek( nMemHandle, 0 )
n_Count := 1
WHILE FSeek( nMemHandle, 0, 1 ) + 1 < nMemLength
nMemWidth := Space( 18 )
FRead( nMemHandle, @nMemWidth, 18 )
cVarName := Left( nMemWidth, At( Chr( 0 ), nMemWidth ) - 1 )
cVarType := SubStr( nMemWidth, 12, 1 )
cVarRec := Bin2W( Right( nMemWidth, 2 ) )
nMemCount := IIF( cVarType $ Chr( 195 ) + Chr( 204 ), 14 + cVarRec, 22 )
FSeek( nMemHandle, nMemCount, FS_RELATIVE )
nBytes := 0
*
c_Message += '1-' + cVarName + CRLF
c_Message += '2-' + Type( "cVarName" ) + CRLF
c_Message += '3-' + ValType( cVarName ) + CRLF
* c_Temp := StrValue( &cVarName )
* c_Message += StrValue( &cVarName )
* c_Message += " bytes : "
* c_Message += Left( cVarName + Space( 10 ), 10 )
* cTemp += ' '
* cTemp += ValType( cVarName )
* cTempo += ' '
* cTemp += strvalue( &cVarName )
* cTemp += " ValType " + ValType( cVarName )
* cTemp += " " + IIF( Type( cVarName ) == "C", '"' + &cVarName + '"', strvalue( &cVarName ) )
* c_Message += " VALTYPE " + ValType( cVarName )
* IF ValType( cVarName ) == "C"
* c_Message += '"' + ( cVarName ) + '"'
* ELSE
* c_Mesage += strvalue( &cVarName )
* ENDIF
* *
c_Message += CRLF
* SWITCH ValType( cVarName )
* CASE "C"
* nBytes += ( nLenTemp := Len( &cVarName ) )
* EXIT
* CASE "N"
* nBytes += ( nLenTemp := 9 )
* EXIT
* CASE "L"
* nBytes += ( nLenTemp := 2 )
* EXIT
* CASE "D"
* nBytes += ( nLenTemp := 9 )
* EXIT
* END
ENDDO
FClose( nMemHandle )
FErase( "errormem.mem" )
Observar que até onde inicia a parte comentada do código funciona corretamnente, mas basta descomentar a linha seguinte,
c_Temp := StrValue( &cVarName ), que busca recuperar o conteúdo da variável, a rotina deixa de funcionar e o aplicativo parece congelar e preciso fechá-lo no Gerenciador de Tarefas do Windows.
O que deve ser feito ?