FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Archivo via FTP
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Archivo via FTP
Posted: Fri Jun 10, 2011 03:14 PM

Estimados;
Tengo un archivo de texto alojado en sitio.
El que lo recupero y leo correctamente. Aunque lo que no encuentro, y necesito, es la manera de saber el numero total de lineas de tal archivo.
No encuentro ninguna función/metodo que me devuelva tal valor. De que manera podría hacerlo?
Aclaro que la idea no es bajarlo y luego desde ahí leer el nro de lineas, que si lo podría hacer con la función de xHarbour: FLineCount( <cFileName> ); aunque si no existe otra manera quizás sea el camino

desde ya muchas gracias

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Archivo via FTP
Posted: Fri Jun 10, 2011 08:12 PM
El comando wc (word count) de unix/linux con la clausula -l cuenta numero de líneas.
Si rediriges la salida asi: wc -l archivo > salida.txt tendras el resultado en el fichero de salida.txt.

Para ejecutar un comando remoto en una máquina unix/linux utiliza el objeto COMM RemoteShell.
Code (fw): Select all Collapse
oRemoteShell:=CreateObject("WScript.Shell")
oRemoteShell:Run("cmd /C rsh Equipo -l NombreDeUsuario -n wc -l archivo > salida.txt & exit",0,.F.)
oRemoteShell:=nil

El fichero de salida.txt se queda en el PC desde el que ejecutas el RemoteShell. Si en vez de poner ">" pones ">>" el fichero se queda en el servidor.

La segunda línea del código que te pongo la puedes modificar según donde quieras la salida.

En el PC desde el que ejecutas la RemoreShell (c:\tmp\salida.txt):
Code (fw): Select all Collapse
oRemoteShell:Run("cmd /C rsh Equipo -l NombreDeUsuario -n wc -l archivo > c:\tmp\salida.txt & exit",0,.F.)

O en el servidor, pero tendras que traerte por FTP el fichero (/home/tmp/salida.txt):
Code (fw): Select all Collapse
oRemoteShell:Run("cmd /C rsh Equipo -l NombreDeUsuario -n wc -l archivo >> /home/tmp/salida.txt & exit",0,.F.)


NOTAS:
cmd /C Ejecuta el comando especificado mediante el parámetro cadena y, después, se detiene.
rsh Ejecuta comandos en equipos remotos que ejecutan en el servicio RSH o un equivalente.
Sintaxis: rsh [Equipo] [-l NombreDeUsuario] [-n] [Comando]
Equipo Dirección IP del equipo remoto.
NombreDeUsuario Nombre de usuario, no hace falta password.
& exit salida de "consola" del ordenador remoto.

Según la documentación del MSDN http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx esto es lo que dice sobre el método RUN del RemoteShell:
object:Run(strCommand, [intWindowStyle], [bWaitOnReturn])
strCommand: String value indicating the command line you want to run. You must include any parameters you want to pass to the executable file.
intWindowStyle: Optional. Integer value indicating the appearance of the program's window. Note that not all programs make use of this information. Value 0= Hides the window and activates another window.
bWaitOnReturn: Optional. Boolean value indicating whether the script should wait for the program to finish executing before continuing to the next statement in your script. If set to true, script execution halts until the program finishes, and Run returns any error code returned by the program. If set to false (the default), the Run method returns immediately after starting the program, automatically returning 0 (not to be interpreted as an error code).
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Archivo via FTP
Posted: Sat Jun 11, 2011 12:06 AM

JM muchas gracias
Nunca utilice este tipo de comandos, pero con tu precisa esplicación seguramente todo va a salir bien o, habrá mas consultas :-)

Saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Archivo via FTP
Posted: Tue Jun 14, 2011 10:26 PM
jm; creo que necesito ayuda
Esto es lo que yo interpreto que tendría hacer
Code (fw): Select all Collapse
      oRemoteShell:=CreateObject("WScript.Shell")
      oRemoteShell:Run("cmd /C rsh 31.170.160.105 -l a3466084 -n wc -l /home/a3466084/public_html/Descargas/versiones.dat > \mgideas\sigeco\temp\versiones.dat & exit",0,.F.)
      oRemoteShell:=nil


Pero el archivo creado es de tamaño 0, seguramente algo no estoy haciendo bien
Amplio con los datos del sitio



que esta mal?
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Archivo via FTP
Posted: Sat Jun 18, 2011 09:01 PM
Deberia de funcionar.
Especifica la letra del disco en el fichero de salida.
En vez de \mgideas\sigeco\temp\versiones.dat
pon c:\mgideas\sigeco\temp\versiones.dat

Y por ultimo ¿ has probado el comando wc en la máquina 31.170.160.105 ?
El servidor remoto tiene que admitir RemoteShell.

Y una última prueba: abre una consola de MS-DOS y ejecuta
rsh 31.170.160.105 -l a3466084 -n wc -l /home/a3466084/public_html/Descargas/versiones.dat
deberia de "salir" el resultado.

RSH es un comando del S.O. del PC. En Windows-XP me funciona.

Algunos enlaces:
http://es.wikipedia.org/wiki/Rsh
http://en.wikipedia.org/wiki/Remote_Shell
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Archivo via FTP
Posted: Tue Jun 21, 2011 08:00 PM
jm; gracias por responder

Ejecutandolo desde XP, obtengo esto en modo consola
hice un ping que respode correctamente (en mi ignorancia sobre el tema)


Como verás el IP es diferente del que figura en la página que me brinda los datos del FTP, por lo que lo cambié por el nombre (luego probé con el IP respuesta del ping); en ambos casos la respuesta es la misma.
Quizás no adminta RemoteShell

saludos
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Archivo via FTP
Posted: Thu Jun 23, 2011 10:13 AM
MarioG wrote:Quizás no adminta RemoteShell

Pues va a ser que no lo admite.
Yo uso el RemoteSehll desde Windows-XP y contra máquinas SUN con S.O. Solaris 10, y funciona.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013

Continue the discussion