Secciones de la página

ftp. tol


Declaraciones


Funciones


Time oriented language


Árbol de ficheros

Funciones

Real FtpDir()

Real FtpBuild()

Real FtpAll()

Tol

Artículos del sitio

Presentación de Tol

Todos los programas

Simuladores visuales

Sitios que me gustan

Por categorías

Algoritmia

Búsqueda y ordenación

Computación fisiológica

Editorial y edición

Gráficos de datos

Herramientas y utilidades

Hipertexto

Informática forense

Lectura óptica de datos

Metaprogramación

No determinista

Ofimática

Recursión e iteración

Reglas y restricciones

Series y estadística









ftp.tol de iForense

Funciones para realizar Ftp (versión independiente del web). No realiza el Ftp sino que crea todos los ficheros de mandatos que permiten realizarlo de forma automatica.

Declaraciones

Funciones

  • Real FtpDir(Text hstDir, Text locDir, Text extPat, Text cmdFil, Real toLowe, Real casSen, Text dtePth)
    Agrega de formar recursiva a un fichero de nombre cmdFil las instrucciones necesarias para enviar todos los ficheros con extension extPat de un directorio local (locDir) y de sus subdirectorios. Hay que proporcionarle el directorio remoto (hstDir) bajo el cual se requiere hacer la copia. Si toLowe es minuscula todos los nombres de ficheros y subdirectorios son enviados en minusculas, esto es clasico para sistemas Unix o Linux. Si casSen es TRUE el math de fichero se realizar sensible a mayusculas y minusculas. Si se le proporciona el nombre de un fichero que indica una fecha dtePth, entonces solo transmite los ficheros mas recientes que dicho fichero, este fichero señal de fecha puede ser el fichero de log del ftp.
  • Real FtpBuild(Text hstDir, Text locDir, Text extPat, Text cmdFil, Text hstNam, Real toLowe, Real casSen, Real binCtr, Text dtePth)
    Crea un fichero de nombre cmdFil con las instrucciones necesarias para enviar todos los ficheros de extension extPat de un directorio local (locDir) y de sus subdirectorios. Hay que proporcionar el nombre del host y el nombre del directorio remoto (hstDir) bajo el cual se requiere hacer la copia: locDir hstDir / | \ -> / | \ a b c a b c Si toLowe es minuscula todos los nombres de ficheros y subdirectorios son enviados en minusculas, esto es clasico para sistemas Unix o Linux. Si casSen es TRUE el math de fichero se realizar sensible a mayusculas y minusculas. Sin binCtr es TRUE la transmision es en modo binario y en otro caso en Ascii. Si se le proporciona el nombre de un fichero que indica una fecha dtePth, entonces solo transmite los ficheros mas recientes que dicho fichero, este fichero señal de fecha puede ser el fichero de log del ftp. En Windows se ejecuta como ftp -n -s:cmdFil. Retorna el numero de ordenes de transmision dadas.
  • Real FtpAll(Text webNam, Text hstDom, Text locDir, Text dtePth, Set ftpSet)
    Funcion principal que crea todos los mandatos para la realizacion del ftp. Realiza un ciclo creando ficheros de mandatos para todos los elementos de la tabla ftpSet.

Funciones

Real FtpDir()

//////////////////////////////////////////////////////////////////////////////
Real FtpDir(Text hstDir, // Directorio remoto
            Text locDir, // Directorio local
            Text extPat, // Patron de extension de fichero
            Text cmdFil, // Fichero de salida con mandatos ftp
            Real toLowe, // Envio de nombre en minusculas
            Real casSen, // Equiparacion sensible a mayus/minusculas
            Text dtePth) // File path to obtain a update date
//////////////////////////////////////////////////////////////////////////////
{
  Set  getDir   = GetDir(locDir);
  Set  filSet   = getDir[1];
  Set  dirSet   = getDir[2];

  Set  filSnd  = EvalSet(filSet, Text(Text filNam)
  { 
    If(!FilCheckExtension(filNam, extPat, casSen), "", // Does not match
    {
      Real filNew = If(dtePth=="", TRUE, // There is not a file to compare
                       FileTime(locDir+"/"+filNam) >= FileTime(dtePth)); 
      If(! filNew, "", // Is not a recent update file
      {
        Text filLow = If(toLowe, ToLower(filNam), filNam);
        "send "+filNam+" "+filLow+"\n"
      })
    })
  });
  
  Text filCmd = If(Card(filSnd)==0, "", BinGroup("+",filSnd));
  Text allCmd = If(filCmd=="", "",
  {
    Text WriteLn("ftp> "+locDir);

    Text AppendFile(cmdFil, "mkdir "+hstDir+"\n");
    Text AppendFile(cmdFil, "cd "+hstDir+"\n");
    Text AppendFile(cmdFil, "lcd "+locDir+"\n");
    Text AppendFile(cmdFil, filCmd)
  });

  Set  dirSnd  = EvalSet(dirSet, Real(Text subDir)
  {
    Text dirName = If(toLowe, ToLower(subDir), subDir);
    FtpDir(hstDir+"/"+dirName, locDir+"/"+dirName, extPat,
           cmdFil, toLowe,  casSen, dtePth)
  });

  Card(filSnd)+Card(dirSnd)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Agrega de formar recursiva a un fichero de nombre cmdFil las instrucciones
necesarias para enviar todos los ficheros con extension extPat de un
directorio local (locDir) y de sus subdirectorios.
Hay que proporcionarle el directorio remoto (hstDir) bajo el cual se requiere
hacer la copia.
Si toLowe es minuscula todos los nombres de ficheros y subdirectorios son
enviados en minusculas, esto es clasico para sistemas Unix o Linux.
Si casSen es TRUE el math de fichero se realizar sensible a mayusculas y
minusculas.
Si se le proporciona el nombre de un fichero que indica una fecha dtePth,
entonces solo transmite los ficheros mas recientes que dicho fichero,
este fichero señal de fecha puede ser el fichero de log del ftp.",
FtpDir);
//////////////////////////////////////////////////////////////////////////////

Real FtpBuild()

//////////////////////////////////////////////////////////////////////////////
Real FtpBuild(Text hstDir, // Directorio remoto
              Text locDir, // Directorio local
              Text extPat, // Patron de extension de fichero
              Text cmdFil, // Fichero de salida con mandatos ftp
              Text hstNam, // Nombre del host remoto
              Real toLowe, // Envio de ficheros en minusculas
              Real casSen, // Equiparacion sensible a mayusculas/minusculas
              Real binCtr, // Si TRUE envio en binario, si FALSE en Ascii
              Text dtePth) // Fichero de señal de fecha de actualizacion
//////////////////////////////////////////////////////////////////////////////
{
  Text WriteLn("ftp> call as: ftp -n -s:"+cmdFil);
  Text WriteLn("ftp> searching...");

  Text WriteFile (cmdFil, "open "+hstNam+"\n");
  Text AppendFile(cmdFil, "user "+FtpHUs+" "+FtpHPa+"\n");
  Text AppendFile(cmdFil, "cd "+hstDir+"\n");
  Text AppendFile(cmdFil, "lcd "+locDir+"\n");

  Text If(binCtr, AppendFile(cmdFil, "binary"+"\n"), 
                  AppendFile(cmdFil, "ascii" +"\n"));

  Set  getDir   = GetDir(locDir);
  Set  filSet   = getDir[1];
  Set  dirSet   = getDir[2];

  Set  filSnd  = EvalSet(filSet, Text(Text filNam)
  { 
    If(!FilCheckExtension(filNam, extPat, casSen), "", // Doesn't match
    {
      Real filNew = If(dtePth=="", TRUE, // There is not a file to compare
                       FileTime(locDir+"/"+filNam) >= FileTime(dtePth)); 
      If(! filNew, "", // Is not a recent update file
      {
        Text filLow = If(toLowe, ToLower(filNam), filNam);
        AppendFile(cmdFil,"send "+filNam+" "+filLow+"\n")
      })
    })
  });

  Set  dirSnd  = EvalSet(dirSet, Real(Text subDir)
  {
    Text dirNam = If(toLowe, ToLower(subDir), subDir);
    FtpDir(hstDir+"/"+dirNam, locDir+"/"+dirNam, extPat,
           cmdFil, toLowe,  casSen, dtePth)
  });

  Text AppendFile(cmdFil,"close"+"\n");
  Text AppendFile(cmdFil,"quit"+"\n");
  Text WriteLn("ftp> done");

  Card(filSnd)+Card(dirSnd)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Crea un fichero de nombre cmdFil con las instrucciones necesarias para enviar
todos los ficheros de extension extPat de un directorio local (locDir)
y de sus subdirectorios.
Hay que proporcionar el nombre del host y el nombre del directorio remoto
(hstDir) bajo el cual se requiere hacer la copia:
         locDir         hstDir
       /   |   \  ->  /   |   \
      a    b    c    a    b    c
Si toLowe es minuscula todos los nombres de ficheros y subdirectorios son
enviados en minusculas, esto es clasico para sistemas Unix o Linux.
Si casSen es TRUE el math de fichero se realizar sensible a mayusculas y
minusculas.
Sin binCtr es TRUE la transmision es en modo binario y en otro caso en Ascii.
Si se le proporciona el nombre de un fichero que indica una fecha dtePth,
entonces solo transmite los ficheros mas recientes que dicho fichero, este
fichero señal de fecha puede ser el fichero de log del ftp.
En Windows se ejecuta como ftp -n -s:cmdFil.
Retorna el numero de ordenes de transmision dadas.",
FtpBuild);
//////////////////////////////////////////////////////////////////////////////

Real FtpAll()

//////////////////////////////////////////////////////////////////////////////
Real FtpAll(Text webNam, // Web name
            Text hstDom, // Dominio del host remoto
            Text locDir, // Directorio local
            Text dtePth, // Fichero de señal de fecha de actualizacion
            Set  ftpSet) // Tabla de transporte ftp
//////////////////////////////////////////////////////////////////////////////
{
  Text cmdFtp = "ftp/"+webNam+".bat";
  Text WriteFile(cmdFtp, W("cd "+Replace(locDir,"/web","/ftp")+"\n")+
                         "copy "+webNam+".bat "+webNam+".log\n");
 
  Real ftp(Text dirNam, Text extPat, Text filTyp, Real binCtr)
  {
    Text cmdFil = webNam + filTyp + ".ftp";
    Real bldFtp = FtpBuild(
                    If(dirNam!="", FtpHDi+"/"+dirNam, FtpHDi),
                    If(dirNam!="", locDir+"/"+dirNam, locDir),
                    extPat, 
                    "ftp/"+cmdFil,
                    hstDom,                 // Host domain
                    FALSE,                  // To lower all
                    TRUE,                   // Case sensitive
                    binCtr ,                // binary or Ascii
                    dtePth);                // File to obtain a update date

    Text AppendFile(cmdFtp, "ftp -n -s:"+cmdFil+" >> "+webNam+".log\n");
    bldFtp
  };

  Set ftpCic = EvalSet(ftpSet, Real(Set ftpReg)
  {
    ftp(ftpReg[1], ftpReg[2], ftpReg[3], ftpReg[4])
  });

  Card(ftpCic)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Funcion principal que crea todos los mandatos para la realizacion del ftp.
Realiza un ciclo creando ficheros de mandatos para todos los elementos de
la tabla ftpSet.",
FtpAll);
//////////////////////////////////////////////////////////////////////////////

Time oriented language

//////////////////////////////////////////////////////////////////////////////
// FILE    : ftp.tol
// AUTHOR  : http://www.asolver.com
// PURPOSE : Funciones para realizar Ftp (versión independiente del web).
// No realiza el Ftp sino que crea todos los ficheros de mandatos que
// permiten realizarlo de forma automatica.
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
Real FtpDir(Text hstDir, // Directorio remoto
            Text locDir, // Directorio local
            Text extPat, // Patron de extension de fichero
            Text cmdFil, // Fichero de salida con mandatos ftp
            Real toLowe, // Envio de nombre en minusculas
            Real casSen, // Equiparacion sensible a mayus/minusculas
            Text dtePth) // File path to obtain a update date
//////////////////////////////////////////////////////////////////////////////
{
  Set  getDir   = GetDir(locDir);
  Set  filSet   = getDir[1];
  Set  dirSet   = getDir[2];

  Set  filSnd  = EvalSet(filSet, Text(Text filNam)
  { 
    If(!FilCheckExtension(filNam, extPat, casSen), "", // Does not match
    {
      Real filNew = If(dtePth=="", TRUE, // There is not a file to compare
                       FileTime(locDir+"/"+filNam) >= FileTime(dtePth)); 
      If(! filNew, "", // Is not a recent update file
      {
        Text filLow = If(toLowe, ToLower(filNam), filNam);
        "send "+filNam+" "+filLow+"\n"
      })
    })
  });
  
  Text filCmd = If(Card(filSnd)==0, "", BinGroup("+",filSnd));
  Text allCmd = If(filCmd=="", "",
  {
    Text WriteLn("ftp> "+locDir);

    Text AppendFile(cmdFil, "mkdir "+hstDir+"\n");
    Text AppendFile(cmdFil, "cd "+hstDir+"\n");
    Text AppendFile(cmdFil, "lcd "+locDir+"\n");
    Text AppendFile(cmdFil, filCmd)
  });

  Set  dirSnd  = EvalSet(dirSet, Real(Text subDir)
  {
    Text dirName = If(toLowe, ToLower(subDir), subDir);
    FtpDir(hstDir+"/"+dirName, locDir+"/"+dirName, extPat,
           cmdFil, toLowe,  casSen, dtePth)
  });

  Card(filSnd)+Card(dirSnd)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Agrega de formar recursiva a un fichero de nombre cmdFil las instrucciones
necesarias para enviar todos los ficheros con extension extPat de un
directorio local (locDir) y de sus subdirectorios.
Hay que proporcionarle el directorio remoto (hstDir) bajo el cual se requiere
hacer la copia.
Si toLowe es minuscula todos los nombres de ficheros y subdirectorios son
enviados en minusculas, esto es clasico para sistemas Unix o Linux.
Si casSen es TRUE el math de fichero se realizar sensible a mayusculas y
minusculas.
Si se le proporciona el nombre de un fichero que indica una fecha dtePth,
entonces solo transmite los ficheros mas recientes que dicho fichero,
este fichero señal de fecha puede ser el fichero de log del ftp.",
FtpDir);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Real FtpBuild(Text hstDir, // Directorio remoto
              Text locDir, // Directorio local
              Text extPat, // Patron de extension de fichero
              Text cmdFil, // Fichero de salida con mandatos ftp
              Text hstNam, // Nombre del host remoto
              Real toLowe, // Envio de ficheros en minusculas
              Real casSen, // Equiparacion sensible a mayusculas/minusculas
              Real binCtr, // Si TRUE envio en binario, si FALSE en Ascii
              Text dtePth) // Fichero de señal de fecha de actualizacion
//////////////////////////////////////////////////////////////////////////////
{
  Text WriteLn("ftp> call as: ftp -n -s:"+cmdFil);
  Text WriteLn("ftp> searching...");

  Text WriteFile (cmdFil, "open "+hstNam+"\n");
  Text AppendFile(cmdFil, "user "+FtpHUs+" "+FtpHPa+"\n");
  Text AppendFile(cmdFil, "cd "+hstDir+"\n");
  Text AppendFile(cmdFil, "lcd "+locDir+"\n");

  Text If(binCtr, AppendFile(cmdFil, "binary"+"\n"), 
                  AppendFile(cmdFil, "ascii" +"\n"));

  Set  getDir   = GetDir(locDir);
  Set  filSet   = getDir[1];
  Set  dirSet   = getDir[2];

  Set  filSnd  = EvalSet(filSet, Text(Text filNam)
  { 
    If(!FilCheckExtension(filNam, extPat, casSen), "", // Doesn't match
    {
      Real filNew = If(dtePth=="", TRUE, // There is not a file to compare
                       FileTime(locDir+"/"+filNam) >= FileTime(dtePth)); 
      If(! filNew, "", // Is not a recent update file
      {
        Text filLow = If(toLowe, ToLower(filNam), filNam);
        AppendFile(cmdFil,"send "+filNam+" "+filLow+"\n")
      })
    })
  });

  Set  dirSnd  = EvalSet(dirSet, Real(Text subDir)
  {
    Text dirNam = If(toLowe, ToLower(subDir), subDir);
    FtpDir(hstDir+"/"+dirNam, locDir+"/"+dirNam, extPat,
           cmdFil, toLowe,  casSen, dtePth)
  });

  Text AppendFile(cmdFil,"close"+"\n");
  Text AppendFile(cmdFil,"quit"+"\n");
  Text WriteLn("ftp> done");

  Card(filSnd)+Card(dirSnd)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Crea un fichero de nombre cmdFil con las instrucciones necesarias para enviar
todos los ficheros de extension extPat de un directorio local (locDir)
y de sus subdirectorios.
Hay que proporcionar el nombre del host y el nombre del directorio remoto
(hstDir) bajo el cual se requiere hacer la copia:
         locDir         hstDir
       /   |   \  ->  /   |   \
      a    b    c    a    b    c
Si toLowe es minuscula todos los nombres de ficheros y subdirectorios son
enviados en minusculas, esto es clasico para sistemas Unix o Linux.
Si casSen es TRUE el math de fichero se realizar sensible a mayusculas y
minusculas.
Sin binCtr es TRUE la transmision es en modo binario y en otro caso en Ascii.
Si se le proporciona el nombre de un fichero que indica una fecha dtePth,
entonces solo transmite los ficheros mas recientes que dicho fichero, este
fichero señal de fecha puede ser el fichero de log del ftp.
En Windows se ejecuta como ftp -n -s:cmdFil.
Retorna el numero de ordenes de transmision dadas.",
FtpBuild);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Real FtpAll(Text webNam, // Web name
            Text hstDom, // Dominio del host remoto
            Text locDir, // Directorio local
            Text dtePth, // Fichero de señal de fecha de actualizacion
            Set  ftpSet) // Tabla de transporte ftp
//////////////////////////////////////////////////////////////////////////////
{
  Text cmdFtp = "ftp/"+webNam+".bat";
  Text WriteFile(cmdFtp, W("cd "+Replace(locDir,"/web","/ftp")+"\n")+
                         "copy "+webNam+".bat "+webNam+".log\n");
 
  Real ftp(Text dirNam, Text extPat, Text filTyp, Real binCtr)
  {
    Text cmdFil = webNam + filTyp + ".ftp";
    Real bldFtp = FtpBuild(
                    If(dirNam!="", FtpHDi+"/"+dirNam, FtpHDi),
                    If(dirNam!="", locDir+"/"+dirNam, locDir),
                    extPat, 
                    "ftp/"+cmdFil,
                    hstDom,                 // Host domain
                    FALSE,                  // To lower all
                    TRUE,                   // Case sensitive
                    binCtr ,                // binary or Ascii
                    dtePth);                // File to obtain a update date

    Text AppendFile(cmdFtp, "ftp -n -s:"+cmdFil+" >> "+webNam+".log\n");
    bldFtp
  };

  Set ftpCic = EvalSet(ftpSet, Real(Set ftpReg)
  {
    ftp(ftpReg[1], ftpReg[2], ftpReg[3], ftpReg[4])
  });

  Card(ftpCic)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Funcion principal que crea todos los mandatos para la realizacion del ftp.
Realiza un ciclo creando ficheros de mandatos para todos los elementos de
la tabla ftpSet.",
FtpAll);
//////////////////////////////////////////////////////////////////////////////

Árbol de ficheros

iForense construye las paginas del sitio sobre informática forense Forense.Info

  • make.tol proceso principal de generacion del sitio web y todas su páginas
  • tol directorios de código en lenguaje Tol
    • cmm funciones comunes
      • txt.tol código de funciones de textos
      • dte.tol código de funciones de fechas
      • set.tol código de funciones de conjuntos
      • fil.tol código de funciones de ficheros
      • dir.tol código de funciones de directorios
      • tme.tol funciones del macro-expansor doble de Tol en Html
      • img.tol funciones para imagenes declaradas en Html
      • ftp.tol para generar mandatos para hacer Ftp
      • xsm.tol para construir sitemaps en Xml
    • app funciones específicas de aplicación
      • glo.tol de términos del glosario forense e informatico
      • pdb.tol de manejo de los posts de una agenda
      • pht.tol funciones auxiliares para el Html de los post
    • inc.tol para la inclusión de ficheros en lenguaje Tol
  • agenda directorio destinado a la agenda de post
  • web directorio destinado a las páginas web generadas y a contenido
    • css directorio para ficheros de estilo de tipo Css
      • common.css fichero Cascading Style Sheets para las paginas Html
    • seed directorio para ficheros semilla
      • seed.htm semilla de página Html, template, con Tol embebido
    • src directorio para ficheros con código Javascript
      • common.js funciones Javascript de redes sociales y multimedia
    • imagenes directorio de ilustraciones del sitio web
    • articulos directorio para las páginas de artículos de informática forense
    • categorias directorio para paginas de categorias de informática forense
    • sitemap.xml mapa del sitio web generado automáticamente en Xml
  • resultado.html muestra del web de informática forense del dominio Forense.Info
  • iforense.pdf documento resumen de funciones del programa creador del web

2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio

Tol