FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Buscando archivo en RED Local
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Buscando archivo en RED Local
Posted: Wed Jan 06, 2010 11:02 PM

Compañero:

¿ Se puede, desde un terminal conectado al PC-Servidor mediante "unidad de red", buscar un fichero que esté en otra carpeta distinta a la del aplicativo?
Intento crear un archivo inventado por mí en carpetas del sistema que siempre existen y de nombre parecido a algún otro del propio widows y que mi aplicativo lo busque al ejecutarse y...: si existe DEMO=.F., en otro caso DEMO=.T.
Este fichero solo debe estar en el PC-Servidor, y el problema lo tengo cuando el aplicativo se ejecuta desde los terminales. ¿Como hago para localizar el archivo?

Mil gracias.
LORENZO

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Buscando archivo en RED Local
Posted: Thu Jan 07, 2010 11:13 AM
Code (fw): Select all Collapse
#Include "FiveWin.Ch"
#Include "Directry.ch"
#Include "SSay.Ch"         // SAY'S Transparentes   precisa desta .ch

#Define CLR_LGRAY    RGB(230,230,230)
#Define CLR_LGREEN   RGB(190,215,190)
#Define CLR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra
#Define CLR_AMARELO  nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo

STATIC oMeter         //-> O Objeto do METER
STATIC nTotalMt := 0  //-> Totalizador do METER

*-----------------------------------------------------------------------------*



//-> Busca os Arquivos no Servidor de Arquivos-------------------------------//

FUNCTION BUSCA_ARQUIVOS( oDlg )

    FIELD COR2

    LOCAL Nome_Arq, nRegistro
    LOCAL oDlgAtu, oFont, iDcor, oIco, oFnt, oBrush, oGroup, oSaida

    PUBLIC xAtual

    nTotalMt := 0 ; oMeter:Refresh() ; SysRefresh()

    MSGRUN( "Desconectando o Servidor de Arquivos...", ;
            "Aguarde Um Momento, Por Favor!         ", ;
            { || DESCONECTA_SERVIDOR() } )

    MSGRUN( "Conectando ao Servidor de Arquivos...  ", ;
            "Aguarde Um Momento, Por Favor!         ", ;
            { || CONECTA_SERVIDOR() } )

    //-> Para Caso NÆo Consiga Se Conectar a Primeira Vez, Tenta de Novo
    IF FILE( "Z:\SISTEMAS\BALCAO\ESTOQUE.DBF" )
        //-> Passa Batido... Conectou
    ELSEIF !FILE( "Z:\SISTEMAS\BALCAO\ESTOQUE.DBF" )
        //-> Tenta Conectar a Rede ao Servidor de Arquivos de Novo

        MSGRUN( "Conectando ao Servidor de Arquivos...", ;
                "Aguarde Um Momento, Por Favor!       ", ;
                { || CONECTA_SERVIDOR() } )

        MsgInfo( OemToAnsi( "NÆo Consegui Conectar a REDE  " ) + CRLF + ;
                 OemToAnsi( "na Primeira Vez, Tecle <Enter>" ) + CRLF + ;
                 OemToAnsi( "Para Tentar Mais Uma Vez.     " ),         ;
                 OemToAnsi( "Erro ao Conectar a REDE!      " ) )

    ENDIF

    //-> Se NÆo Conseguiu Conectar Mesmo... Ap¢s duas tentativas...
    IF !FILE( "Z:\SISTEMAS\BALCAO\ESTOQUE.DBF" )
        MsgInfo( OemToAnsi( "Aten‡Æo, Servidor de Arquivos  " ) + CRLF +      ;
                 OemToAnsi( "Desligado, Por Favor Ligue o   " ) + CRLF +      ;
                 OemToAnsi( "Computador Principal(Servidor) " ) + CRLF +      ;
                 OemToAnsi( "e Tente Novamente!       ERRO! " ),              ;
                 OemToAnsi( "Erro ao Conectar Com o Servidor" ) )
        RETURN NIL
    ENDIF

    BEEP(3)
    SndPlaySound(".\Init.Wav" )

    CursorWait()

    IF  .NOT. NETUSE("Z:\SISTEMAS\BALCAO\EMPRESA",.T.)

        MsgInfo( "Não Localizado Arquivo Z:\sistemas\balcao\EMPRESA.DBF " +     ;
                 "Necess rio ao Sistema", "AVISO" )

    ENDIF

    TRAVEREG(0)
    REPLACE COR2 WITH "I"+SUBS(COR2,2,10)
    DESTRAVA()


    DBCLOSEALL()

    nTotalMt := 05 ; oMeter:Refresh() ; CursorWait() ; SysRefresh()

    //-> Faz Uma C¢pia dos Arquivos Anteriores, Antes de Copiar.
    COPYFILE( "C:\SISTEMAS\BALCAO\ESTOQUE.DBF", "C:\SISTEMAS\BALCAO\ESTV.DBF", .F. )
    nTotalMt := 10 ; oMeter:Refresh() ; CursorWait() ; SysRefresh()


RETURN NIL

//-> Conecta a Rede

STATIC FUNCTION CONECTA_SERVIDOR()

    //->Memory(-1)
    /*limpia arreglo y llama al colecor de basura de xharbour*/
    hb_gcAll()

    WNetAddCon( "\\MICRO0\C",,"Z:" )

    SysWait(1)

RETURN NIL

//-> Desconecta a Rede

STATIC FUNCTION DESCONECTA_SERVIDOR()

    //->Memory(-1)
    /*limpia arreglo y llama al colecor de basura de xharbour*/
    hb_gcAll()

    wNetDelConnection( "Z:", .T. )

    SysWait(1)

RETURN NIL

// ---------------------- FIM DO PROGRAMA -----------------------------------//
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: Buscando archivo en RED Local
Posted: Tue Jan 12, 2010 10:00 PM

Karina, estuve haciendo pruebas y adaptando tus sugerencias a mis necesidades, pero solo funciona correctamente si la carpeta en el servidor está compartida.

Yo necesito verificar si un determinado archivo existe en el PC-Servidor, independientemente si está compartida la carpeta o no.

Despues de varios intentos, creo que no se puede.
No obstante, Mil gracias.

LORENZO

Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Buscando archivo en RED Local
Posted: Tue Jan 12, 2010 10:35 PM

Lorenzo

Para poder ver archivos necesitas cuenta de administrador del servidor y hacer asi:

WinExec("Net use \192.10.1.3\C$ clave /user:ctaadmin",0) //192.10.1.3 es la direccion de tu server

//Con esto no necesitas compartir la carpeta

If File("\192.10.1.3\C$\WINDOWS\ARCHIVO.XYZ")
?"Existe"
Esle
?"No Existe"
Endif

Espero te sirva

Saludos

Adhemar

Saludos,



Adhemar C.

Continue the discussion