Directories functions.
Funciones
Set DirExtAll(Text dirPth, Text chkExt, Real toLowe, Real casSen)Text DirReadFiles(Text dirPth, Text chkExt, Text filSep)//////////////////////////////////////////////////////////////////////////////
Set DirExtAll(Text dirPth, // Directory path
Text chkExt, // File extension
Real toLowe, // If true all paths are changed to lower case
Real casSen) // If true the extension match is case sensitive
//////////////////////////////////////////////////////////////////////////////
{
If(Not(DirExist(dirPth)), Empty,
{
Set getDir = GetDir(dirPth);
Set filSet = getDir[1];
Set dirSet = getDir[2];
Set filFnd = EvalSet(filSet, Text(Text filNam)
{
If(!FilCheckExtension(filNam, chkExt, casSen), "",
If(toLowe, ToLower(dirPth+"/"+filNam), dirPth+"/"+filNam))
});
Set filSel = Select(filFnd, Real(Text filNam) { filNam != "" });
Set dirFnd = EvalSet(dirSet, Set(Text subDir)
{ DirExtAll(dirPth+"/"+subDir, chkExt, toLowe, casSen) });
Real dirCar = Card(dirFnd);
If(EQ(dirCar,0), filSel,
If(EQ(dirCar,1), filSel << dirFnd[1],
filSel << BinGroup("+", dirFnd)))
})
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns a set of relative paths of files with the extension chkExt that
are inside the directory dirPth and inside all of its directories.
If toLowe then all names are changed to lower case.
If casSen then are case sensitive in the extension match.
Is a version of DirAll() function that only check extensions and not uses
TextMatch() that writes warnings at Tol 2.0.1.",
DirExtAll);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text DirReadFiles(Text dirPth, // Directory path
Text chkExt, // File extension
Text filSep) // File separator
//////////////////////////////////////////////////////////////////////////////
{
Set pthSet = DirExtAll(dirPth, chkExt, FALSE, TRUE);
Set txtSet = EvalSet(pthSet, Text(Text filPth) { ReadFile(filPth) });
Set2Txt(txtSet, "", "", filSep, filSep, "", "", "", "")
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns as a text the contents of all files in dirPth that theirs file names
match with file pattern filPat.
In this text, the contenst of each file will be separated with filSep.",
DirReadFiles);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// FILE : dir.tol
// AUTHOR : http://www.asolver.com
// PURPOSE : Directories functions.
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Set DirExtAll(Text dirPth, // Directory path
Text chkExt, // File extension
Real toLowe, // If true all paths are changed to lower case
Real casSen) // If true the extension match is case sensitive
//////////////////////////////////////////////////////////////////////////////
{
If(Not(DirExist(dirPth)), Empty,
{
Set getDir = GetDir(dirPth);
Set filSet = getDir[1];
Set dirSet = getDir[2];
Set filFnd = EvalSet(filSet, Text(Text filNam)
{
If(!FilCheckExtension(filNam, chkExt, casSen), "",
If(toLowe, ToLower(dirPth+"/"+filNam), dirPth+"/"+filNam))
});
Set filSel = Select(filFnd, Real(Text filNam) { filNam != "" });
Set dirFnd = EvalSet(dirSet, Set(Text subDir)
{ DirExtAll(dirPth+"/"+subDir, chkExt, toLowe, casSen) });
Real dirCar = Card(dirFnd);
If(EQ(dirCar,0), filSel,
If(EQ(dirCar,1), filSel << dirFnd[1],
filSel << BinGroup("+", dirFnd)))
})
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns a set of relative paths of files with the extension chkExt that
are inside the directory dirPth and inside all of its directories.
If toLowe then all names are changed to lower case.
If casSen then are case sensitive in the extension match.
Is a version of DirAll() function that only check extensions and not uses
TextMatch() that writes warnings at Tol 2.0.1.",
DirExtAll);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text DirReadFiles(Text dirPth, // Directory path
Text chkExt, // File extension
Text filSep) // File separator
//////////////////////////////////////////////////////////////////////////////
{
Set pthSet = DirExtAll(dirPth, chkExt, FALSE, TRUE);
Set txtSet = EvalSet(pthSet, Text(Text filPth) { ReadFile(filPth) });
Set2Txt(txtSet, "", "", filSep, filSep, "", "", "", "")
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Returns as a text the contents of all files in dirPth that theirs file names
match with file pattern filPat.
In this text, the contenst of each file will be separated with filSep.",
DirReadFiles);
//////////////////////////////////////////////////////////////////////////////
ChRules.Iterative programa de aplicacion iterativa de reglas de areas de caracteres
2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio