O problema não é a idade do programa, é o fonte ruim mesmo.
Era mais fácil ter feito pra trabalhar na pasta atual, e apenas fazer um seletor de pastas.
Pra complicar ainda mais, não basta esse fonte pra definir as pastas, temc coisas que vém de outras rotinas.... rs
Com certeza, esse programa não é o principal, porque usa coisas que não tem aí. DTMV não existe.
// -----------------------------------------------------------------------
Programa : ECPRIN.PRG
Sistema : COFSE ( CONTROLE OPERACIONAL E FINANCEIRO DE SERV.EXECUTADO )
Finalidade : MODULO PRINCIPAL DO SISTEMA
Programador : < Sosthenes > - Clipper 5.0.
DATA de Inicio Programa‡Æo : 23 / 02 / 97
éltima Altera‡Æo : 16 / 08 / 97
VersÆo : 1.0
----------------------------------------------------------------------
// /
IF File( 'C:/COFSE/COFSE.EXE' ) .AND. !File( 'c:/CLIPPER/cofse.exe' ) // SERVIDOR DA CS (ARCELI)
//
// && AQUI O SERVIDOR DA CS, A (ARCELI)
//
IF programa = 'COFSE' // SE O PROGR COFSE
IF Year( dtmv ) < Year( Date() ) // ANOS ANTERIORES
c_red := 'd:\cof_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE // ANO ATUAL
c_red := 'c:\cofse\'
ENDIF
ELSE // SE O PROGR BUSIN
IF Year( dtmv ) < Year( Date() ) // ANOS ANTERIORES
c_red := 'd:\bus_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE // ANO ATUAL
c_red := 'c:\busin\'
ENDIF
ENDIF
CORRFAT()
//
// *
//
ELSE
//
// * AQUI TEM O SERVIDOR (DOPAI), USUARIOS (DOPAI) E USUARIOS DA (ARCELI)
//
IF File( 'c:/CLIPPER/cofse.exe' ) // AQUI O SERVIDOR (DOPAI) E SEUS USUARIOS
//
w_seim = .T.
//
IF File( 'c:/cofse/cofse.exe' ) // AQUI O (DOPAI)
IF programa = 'COFSE'
IF Year( dtmv ) < Year( Date() )
c_red := 'd:\cof_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE
c_red := 'c:\clipper\'
ENDIF
ELSE
IF Year( dtmv ) < Year( Date() )
c_red := 'd:\bus_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE
c_red := 'c:\clipper\'
ENDIF
ENDIF
CORRFAT()
ELSE // AQUI SAO OS USUARIOS DO (DOPAI)
destino := 'DoPai'
IF programa = 'COFSE'
IF Year( dtmv ) < Year( Date() )
c_red := '\\' + AllTrim( destino ) + '\d:\cof_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE
c_red := '\\' + AllTrim( destino ) + '\c:\cofse\'
ENDIF
ELSE
IF Year( dtmv ) < Year( Date() )
c_red := '\\' + AllTrim( destino ) + '\d:\bus_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE
c_red := '\\' + AllTrim( destino ) + '\c:\busin\'
ENDIF
ENDIF
SET PATH TO &c_red
ENDIF
ELSE // USUARIOS DO SERVIDOR DA CS,(DA ARCELI)
//
destino := 'Financeiro_01'
IF programa = 'COFSE' // SE O PROGR COFSE
IF Year( dtmv ) < Year( Date() )
c_red := '\\' + AllTrim( destino ) + '\d:\cof_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE
c_red := '\\' + AllTrim( destino ) + '\c:\cofse\'
ENDIF
ELSE // SE O PROGR BUSIN
IF Year( dtmv ) < Year( Date() )
c_red := '\\' + AllTrim( destino ) + '\d:\bus_' + AllTrim( Str( Year( dtmv ) ) ) + '\'
ELSE
c_red := '\\' + AllTrim( destino ) + '\c:\busin\'
ENDIF
ENDIF
ENDIF
//
ENDIF
De qualquer forma, que eu saiba esse tipo de mapeamento não existe, e não lembro se algum dia existiu.