Salvar screen

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Salvar screen

Mensagem por bencz »

Bom, agora, na hora q salvei, ficou mais estranho ainda...

nRange: 160
nCellSiz: 2

arquivo salvo:

Código: Selecionar todos


                OAMNO           aa
 L UD           lls                 5   
 aa                 2              0    
     5             8            ----    
    0           -----                   
 ----                                   
                                        

Era p/ aparecer:
OLA MUNDO
lalas
25
80
--------------
Algo assim...
Imagem
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

Nova tentativa...

Código: Selecionar todos

*--------------------------------------------------------------*
* RM_MVSAVE() 
*--------------------------------------------------------------*
FUNCTION RM_MVSAVE()
 LOCAL i := 0
 LOCAL nForLoop := 0
 LOCAL t := 0
 LOCAL l := 0
 LOCAL b := MAXROW()
 LOCAL r := MAXCOL()
 LOCAL cScreen := SAVESCREEN(t, l, b, r) //
 LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) / 2 )
 LOCAL nStart := 1
 LOCAL nRange := INT( ( ( r + 1 ) * nCellSize ) / 2 )
 LOCAL sAux := ''
 LOCAL cOutString := ''
 LOCAL cSubString := ''

 For i := 1 To b + 1
 cOutString := ''
 cSubString := Substr( cScreen, nStart, nRange )
 For nForLoop := 1 To nRange step nCellSize
 cOutString += Substr( cSubString, nForLoop, 1 )
 Next
 sAux += ( cOutString ) + CHR(13) + CHR(10)
 nStart += nRange
 Next

RETUNR( sAux )

M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Salvar screen

Mensagem por bencz »

Bom, ainda não :/

Código: Selecionar todos


                    
            OLA MUND
O                   
   lalas            
 OLA MUNDO          
            lalas   
                    
           25       
 lalas              
                    
25                  
         80         
         25         
                  80
                    
   ---------        
       80           
            --------
-                   
                    
 ---------          
                    
                    
                    
                    


Imagem
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Salvar screen

Mensagem por bencz »

Não consigo entender, o pq ele multiplica as strings....
pude notar, q qnd eu tirei o " WVW_nOpenWindow("MEU TESTE", 10, 20, 20, 50) ", ele salvou corretamente, só q qnd eu abri o arquivo, ele estava cheio de bolinhas, e nao estava "formatado" nas posições...
mas o problema, é q eu tenho q pegar a informação, q esta em uma dialog, separada da main...
Imagem
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

Tentar adivinhar a montagem de tela wvw

Vamos novamente... :)

Código: Selecionar todos

*--------------------------------------------------------------*
* RM_MVSAVE() 
*--------------------------------------------------------------*
FUNCTION RM_MVSAVE()
 LOCAL i := 0
 LOCAL nForLoop := 0
 LOCAL t := 0
 LOCAL l := 0
 LOCAL b := MAXROW()
 LOCAL r := MAXCOL()
 LOCAL cScreen := SAVESCREEN(t, l, b, r) //
 LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) * 2 )
 LOCAL nStart := 0
 LOCAL nRange := INT( ( ( r + 1 ) * nCellSize ) * 2 )
 LOCAL sAux := ''
 LOCAL cOutString := ''
 LOCAL cSubString := ''

 For i := 1 To b + 1
   cOutString := ''
   cSubString := Substr( cScreen, nStart, nRange )
   For nForLoop := 1 To nRange step nCellSize
     cOutString += Substr( cSubString, nForLoop, 1 )
   Next
   sAux += ( cOutString ) + CHR(13) + CHR(10)
   nStart += nRange
 Next

RETUNR( sAux )
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Salvar screen

Mensagem por bencz »

Vamos
Imagem
Imagem
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

DE NOVO... dificil nao usar wvw... kkk

Código: Selecionar todos

*--------------------------------------------------------------*
* RM_MVSAVE() 
*--------------------------------------------------------------*
FUNCTION RM_MVSAVE()
 LOCAL i := 0
 LOCAL nForLoop := 0
 LOCAL t := 0
 LOCAL l := 0
 LOCAL b := MAXROW()
 LOCAL r := MAXCOL()
 LOCAL cScreen := SAVESCREEN(t, l, b, r) //
 LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) * 1 )
 LOCAL nStart := 1
 LOCAL nRange := INT( ( ( r + 1 ) * nCellSize ) * 1 )
 LOCAL sAux := ''
 LOCAL cOutString := ''
 LOCAL cSubString := ''

 For i := 1 To ( b + 1 )
   cOutString := ''
   cSubString := Substr( cScreen, nStart, nRange )
   cOutString += Substr( cSubString, nStart, INT( nRange / 2) )
   sAux += ( cOutString ) + CHR(13) + CHR(10)
   nStart += nRange
 Next

RETUNR( sAux )
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Salvar screen

Mensagem por bencz »

bom, agora, ele só gravou uma linha, e continuou com as bolinhas...

Código: Selecionar todos

                                OLA MUND
Imagem
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

OPS: Erro na linha 22

Código: Selecionar todos

*--------------------------------------------------------------*
* RM_MVSAVE() 
*--------------------------------------------------------------*
FUNCTION RM_MVSAVE()
 LOCAL i := 0
 LOCAL nForLoop := 0
 LOCAL t := 0
 LOCAL l := 0
 LOCAL b := MAXROW()
 LOCAL r := MAXCOL()
 LOCAL cScreen := SAVESCREEN(t, l, b, r) //
 LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) * 1 )
 LOCAL nStart := 1
 LOCAL nRange := INT( ( ( r + 1 ) * nCellSize ) * 1 )
 LOCAL sAux := ''
 LOCAL cOutString := ''
 LOCAL cSubString := ''

 For i := 1 To ( b + 1 )
   cOutString := ''
   cSubString := Substr( cScreen, nStart, ( nRange / 2 ) )
   sAux += ( cOutString ) + CHR(13) + CHR(10)
   nStart += nRange
 Next

RETUNR( sAux )
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Salvar screen

Mensagem por bencz »

Olá, fiz uma alteração nessa linha:

Código: Selecionar todos

sAux += ( cSubString ) + CHR(13) + CHR(10)
E ele escreveu o texto no arquivo... mas o texto, ainda está cheio de bolinhas....

Código: Selecionar todos

                                OLA MUND
 OLA MUNDO                      lalas   
 lalas                                  
         25                           80
       80                       --------
 ---------                              
                                      
Imagem
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

VERSÃO FINAL

Código: Selecionar todos

*--------------------------------------------------------------*
* RM_MVSAVE() 
*--------------------------------------------------------------*
FUNCTION RM_MVSAVE()
 LOCAL i := 0
 LOCAL b := MAXROW()
 LOCAL r := MAXCOL()
 LOCAL cScreen := SAVESCREEN(0, 0, b, r) //
 LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) * 1 )
 LOCAL nStart := 1
 LOCAL nRange := INT( ( ( r + 1 ) * nCellSize ) * 1 )
 LOCAL cOutString := ''

 For i := 1 To ( b + 1 )
   cOutString += Substr( cScreen, nStart, INT( nRange / nCellSize ) ) + CHR(13) + CHR(10)
   nStart += nRange
 Next

RETUNR( cOutString )
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Salvar screen

Mensagem por bencz »

Bom, continua com texto duplicado, e cheio de bolinha :/

encontrei algo q pode fazer diferença...

qnd eu apago os numero dessa linha de comando:

Código: Selecionar todos

WVW_nOpenWindow("MEU TESTE",10,20,20,50)
ficando:

Código: Selecionar todos

WVW_nOpenWindow("MEU TESTE")
ele salva um unico texto... no arquivo, mas, o texto continua cheio de bolinhas, e a janela nao esta no tamanho q eu tenho q deixar ela;x
Imagem
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

Não se pode eliminar o 2o loop for...next

E aparentemente a www trabalha com 3 vetores enquanto o função só identifica 2

...

Vamos a novo modelo... aguarde...
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

Código: Selecionar todos


*--------------------------------------------------------------*
* RM_MVSAVE()
*--------------------------------------------------------------*
FUNCTION RM_MVSAVE()
  LOCAL i := 0
  LOCAL nForLoop := 0
  LOCAL b := MAXROW()
  LOCAL r := MAXCOL()
  LOCAL cScreen := SAVESCREEN(0, 0, b, r) //
  LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) * 2 )
  LOCAL nStart := 1
  LOCAL nRange := INT( ( ( r + 1 ) * nCellSize ) * 1 )
  LOCAL cSubString := ''
  LOCAL cOutString := ''
  
  For i := 1 To ( b + 1 )
    cOutString := ''
    cSubString := Substr( cScreen, nStart, nRange )
    For nForLoop := 1 To nRange step nCellSize
      cOutString += Substr( cSubString, nForLoop, 1 )
    Next
    sAux += ( cOutString ) + CHR(13) + CHR(10)
    nStart += nRange
  Next
  
RETURN( cOutString )

M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Salvar screen

Mensagem por Imatech »

pode usar o comando completo: não faz diferença...

WVW_nOpenWindow("MEU TESTE",10,20,20,50)

Caso o teste dé errado, modifique a linha:

LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) * 2 )

para

LOCAL nCellSize := INT( len( Savescreen( 0, 0, 0, 0 ) ) * 1.5 )
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Responder