Funciones de ficheros.
Funciones
Real FilWriteIfDiff(Text filPth, Text txtNew)Real FilCheckExtension(Text filPth, Text txtExt, Real casSen)Real FilCopy(Text oldPth, Text newPth, Real overwrite)Real FilDelete(Text filPth)Real FilRename(Text oldNam, Text newNam, Real overwrite)//////////////////////////////////////////////////////////////////////////////
Real FilWriteIfDiff(Text filPth, // Fichero de salida
Text txtNew) // Texto para escribir
//////////////////////////////////////////////////////////////////////////////
{
If(! FileExist(filPth), { Text WriteFile(filPth, txtNew); TRUE },
If(txtNew != ReadFile(filPth), { Text WriteFile(filPth, txtNew); TRUE },
FALSE ))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Escribe txtOut en filPth si filPth es un nuevo fichero o si su contenido
actual es diferente de txtOut y en otro caso no escribe nada.
Retorna true si lo ha escrito y false si no ha sido necesario hacerlo.
Evita que los ficheros adquiran una fecha de actualizacion reciente
cuando su contenido no ha cambiando realmente, evitando, por ejemplo,
retransmisiones por ftp de fichero que realmente no han cambiado.",
FilWriteIfDiff);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilCheckExtension(Text filPth, // Ruta del fichero
Text txtExt, // Extension para comprobar
Real casSen) // Si distingue mayus/minus en extension
//////////////////////////////////////////////////////////////////////////////
{
Text filExt = If(casSen, GetFileExtension(filPth),
ToLower(GetFileExtension(filPth)));
Text chkExt = If(casSen, txtExt,
ToLower(txtExt));
filExt==chkExt
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna cierto si el fichero de ruta filPth tiene la extension txtExt.
Si casSen es cierto distingue entre mayusculas de minusculas.",
FilCheckExtension);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilCopy(Text oldPth, // Ruta del fichero origen
Text newPth, // Ruta del fichero destino
Real overwrite) // Si cierto sobre-escribe
//////////////////////////////////////////////////////////////////////////////
{
Text cpyTxt = "copy "+oldPth+" "+newPth;
Text cpyCmd = Replace(cpyTxt, "/", "\\");
Case(
Not(FileExist(oldPth)), FALSE, // Original doesn't exist
oldPth==newPth, FALSE, // Auto-copy ?
Not(FileExist(newPth)), System(cpyCmd), // Execute copy
overwrite, System(cpyCmd), // Copy and overwrite
FALSE) // Don't overwrite
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns TRUE in the file oldNam can be copied over newNam.",
FilCopy);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilDelete(Text filPth)
//////////////////////////////////////////////////////////////////////////////
{
If(FileExist(filPth), FileDelete(filPth), FALSE)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns TRUE in the file filPth can be deleted.",
FilDelete);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilRename(Text oldNam, Text newNam, Real overwrite)
//////////////////////////////////////////////////////////////////////////////
{
If(Not(FileExist(oldNam)), FALSE,
If(oldNam==newNam, FALSE,
{
If(Not(FileExist(newNam)), FileRename(oldNam,newNam),
If(overwrite, { FileDelete(newNam);
FileRename(oldNam,newNam) },
FALSE))
}))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns TRUE in the file oldNam can be renamed ad newNam.
If overwrite is TRUE the overwrite the target file.",
FilRename);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// FILE : fil.tol
// AUTHOR : http://www.asolver.com
// PURPOSE : Funciones de ficheros.
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilWriteIfDiff(Text filPth, // Fichero de salida
Text txtNew) // Texto para escribir
//////////////////////////////////////////////////////////////////////////////
{
If(! FileExist(filPth), { Text WriteFile(filPth, txtNew); TRUE },
If(txtNew != ReadFile(filPth), { Text WriteFile(filPth, txtNew); TRUE },
FALSE ))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Escribe txtOut en filPth si filPth es un nuevo fichero o si su contenido
actual es diferente de txtOut y en otro caso no escribe nada.
Retorna true si lo ha escrito y false si no ha sido necesario hacerlo.
Evita que los ficheros adquiran una fecha de actualizacion reciente
cuando su contenido no ha cambiando realmente, evitando, por ejemplo,
retransmisiones por ftp de fichero que realmente no han cambiado.",
FilWriteIfDiff);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilCheckExtension(Text filPth, // Ruta del fichero
Text txtExt, // Extension para comprobar
Real casSen) // Si distingue mayus/minus en extension
//////////////////////////////////////////////////////////////////////////////
{
Text filExt = If(casSen, GetFileExtension(filPth),
ToLower(GetFileExtension(filPth)));
Text chkExt = If(casSen, txtExt,
ToLower(txtExt));
filExt==chkExt
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna cierto si el fichero de ruta filPth tiene la extension txtExt.
Si casSen es cierto distingue entre mayusculas de minusculas.",
FilCheckExtension);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilCopy(Text oldPth, // Ruta del fichero origen
Text newPth, // Ruta del fichero destino
Real overwrite) // Si cierto sobre-escribe
//////////////////////////////////////////////////////////////////////////////
{
Text cpyTxt = "copy "+oldPth+" "+newPth;
Text cpyCmd = Replace(cpyTxt, "/", "\\");
Case(
Not(FileExist(oldPth)), FALSE, // Original doesn't exist
oldPth==newPth, FALSE, // Auto-copy ?
Not(FileExist(newPth)), System(cpyCmd), // Execute copy
overwrite, System(cpyCmd), // Copy and overwrite
FALSE) // Don't overwrite
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns TRUE in the file oldNam can be copied over newNam.",
FilCopy);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilDelete(Text filPth)
//////////////////////////////////////////////////////////////////////////////
{
If(FileExist(filPth), FileDelete(filPth), FALSE)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns TRUE in the file filPth can be deleted.",
FilDelete);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Real FilRename(Text oldNam, Text newNam, Real overwrite)
//////////////////////////////////////////////////////////////////////////////
{
If(Not(FileExist(oldNam)), FALSE,
If(oldNam==newNam, FALSE,
{
If(Not(FileExist(newNam)), FileRename(oldNam,newNam),
If(overwrite, { FileDelete(newNam);
FileRename(oldNam,newNam) },
FALSE))
}))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns TRUE in the file oldNam can be renamed ad newNam.
If overwrite is TRUE the overwrite the target file.",
FilRename);
//////////////////////////////////////////////////////////////////////////////
Ediciones.aContracorriente construye las páginas del sitio web edicionesacontracorriente.com
2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio