missing files on first upload
This commit is contained in:
16
harbour/source/tools/datesx.c
Normal file
16
harbour/source/tools/datesx.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <extend.h>
|
||||
#include <time.h>
|
||||
|
||||
HARBOUR DATETIME( void )
|
||||
{
|
||||
time_t current_time;
|
||||
char * szResult = ( char * ) _xgrab( 26 );
|
||||
|
||||
time( ¤t_time );
|
||||
|
||||
szResult = strcpy( szResult, ctime( ¤t_time ) );
|
||||
|
||||
_retc( szResult );
|
||||
_xfree( szResult );
|
||||
}
|
||||
|
||||
237
harbour/source/tools/io.c
Normal file
237
harbour/source/tools/io.c
Normal file
@@ -0,0 +1,237 @@
|
||||
#include <extend.h>
|
||||
#include <dos.h>
|
||||
#include <dir.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <bios.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
|
||||
HARBOUR renfile()
|
||||
{
|
||||
int ok;
|
||||
PITEM arg1 = _param(1,IT_STRING);
|
||||
PITEM arg2 = _param(2,IT_STRING);
|
||||
if( arg1 && arg2)
|
||||
{
|
||||
ok=rename(_parc(1),_parc(2));
|
||||
if(!ok)
|
||||
_retl(TRUE);
|
||||
else
|
||||
_retl(FALSE);
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
|
||||
/* $DOC$
|
||||
* $FUNCNAME$
|
||||
* CD()
|
||||
* $CATEGORY$
|
||||
* DOS
|
||||
* $ONELINER$
|
||||
*
|
||||
* $SYNTAX$
|
||||
* CD(<NDIR>)
|
||||
* $ARGUMENTS$
|
||||
* <NDIR> DIR TO BE CHANGED
|
||||
* $RETURNS$
|
||||
* .T. IF SUCEFUL
|
||||
* .F. IF NOT
|
||||
*
|
||||
* $DESCRIPTION$
|
||||
* CHANGE THE CURRENT DIRECTORY
|
||||
* $EXAMPLES$
|
||||
* IF CD("OLA")
|
||||
* RETURN(.T.)
|
||||
* ELSE
|
||||
* RETURN(.F.)
|
||||
* ENDIF
|
||||
*
|
||||
* $SEEALSO$
|
||||
*
|
||||
* $INCLUDE$
|
||||
* extend.h dos.h dir.h bios.h internal.h
|
||||
* $END$
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* $DOC$
|
||||
* $FUNCNAME$
|
||||
* MD()
|
||||
* $CATEGORY$
|
||||
* DOS
|
||||
* $ONELINER$
|
||||
*
|
||||
* $SYNTAX$
|
||||
* MD(<NDIR>)
|
||||
* $ARGUMENTS$
|
||||
* <NDIR> DIRECTORY TO BE CREATED
|
||||
* $RETURNS$
|
||||
* .T. IF SUCEFUL
|
||||
* .F. IF NOT
|
||||
*
|
||||
* $DESCRIPTION$
|
||||
* CREATE A DIRECTORY
|
||||
* $EXAMPLES$
|
||||
* IF MD("OLA")
|
||||
* RETURN(.T.)
|
||||
* ELSE
|
||||
* RETURN(.F.)
|
||||
* ENDIF
|
||||
*
|
||||
* $SEEALSO$
|
||||
*
|
||||
* $INCLUDE$
|
||||
* extend.h dos.h dir.h bios.h internal.h
|
||||
* $END$
|
||||
*/
|
||||
|
||||
/*
|
||||
/* $DOC$
|
||||
* $FUNCNAME$
|
||||
* RD()
|
||||
* $CATEGORY$
|
||||
* DOS
|
||||
* $ONELINER$
|
||||
*
|
||||
* $SYNTAX$
|
||||
* RD(<NDIR>)
|
||||
* $ARGUMENTS$
|
||||
* <NDIR> DIR TO BE DELETED
|
||||
* $RETURNS$
|
||||
* .T. IF SUCEFUL
|
||||
* .F. IF NOT
|
||||
*
|
||||
* $DESCRIPTION$
|
||||
* REMOVE A DIRECTORY
|
||||
* $EXAMPLES$
|
||||
* IF RD("OLA")
|
||||
* RETURN(.T.)
|
||||
* ELSE
|
||||
* RETURN(.F.)
|
||||
* ENDIF
|
||||
*
|
||||
* $SEEALSO$
|
||||
*
|
||||
* $INCLUDE$
|
||||
* extend.h dos.h dir.h bios.h internal.h
|
||||
* $END$
|
||||
*/
|
||||
HARBOUR CD(void)
|
||||
|
||||
{
|
||||
PITEM MEUDIR = _param(1,IT_STRING);
|
||||
if(MEUDIR)
|
||||
{
|
||||
_retni(chdir(_parc(1)));
|
||||
}
|
||||
}
|
||||
|
||||
HARBOUR MD(void)
|
||||
{
|
||||
|
||||
PITEM MEUDIR = _param(1,IT_STRING);
|
||||
if(MEUDIR)
|
||||
{
|
||||
|
||||
_retni(mkdir(_parc(1)));
|
||||
}
|
||||
}
|
||||
|
||||
HARBOUR RD(void)
|
||||
{
|
||||
PITEM MEUDIR = _param(1,IT_STRING);
|
||||
if(MEUDIR)
|
||||
{
|
||||
|
||||
_retni(chdir(_parc(1)));
|
||||
}
|
||||
}
|
||||
|
||||
/* $DOC$
|
||||
* $FUNCNAME$
|
||||
* FILE()
|
||||
* $CATEGORY$
|
||||
* DOS
|
||||
* $ONELINER$
|
||||
*
|
||||
* $SYNTAX$
|
||||
* RD(<NDIR>)
|
||||
* $ARGUMENTS$
|
||||
* <NDIR> FILE TO BE CHECKED
|
||||
* $RETURNS$
|
||||
* .T. IF SUCEFUL
|
||||
* .F. IF NOT
|
||||
*
|
||||
* $DESCRIPTION$
|
||||
* VERIFY IF A FILE EXISTS
|
||||
* $EXAMPLES$
|
||||
* IF FILE("OLA.PRG")
|
||||
* RETURN(.T.)
|
||||
* ELSE
|
||||
* RETURN(.F.)
|
||||
* ENDIF
|
||||
*
|
||||
* $SEEALSO$
|
||||
*
|
||||
* $INCLUDE$
|
||||
* extend.h dos.h dir.h bios.h internal.h
|
||||
* $END$
|
||||
*/
|
||||
|
||||
HARBOUR file(void)
|
||||
{
|
||||
PITEM arg1 = _param(1,IT_STRING);
|
||||
char *arquivos;
|
||||
int achou;
|
||||
struct ffblk arquivo;
|
||||
if (arg1) {
|
||||
arquivos=_parc(1);
|
||||
achou=findfirst(arquivos,&arquivo,FA_ARCH);
|
||||
if (achou)
|
||||
{
|
||||
_retl(TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
_retl(FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
HARBOUR DISKUSED(void)
|
||||
{
|
||||
long bytsfree,bytsfull;
|
||||
struct diskfree_t disk;
|
||||
_dos_getdiskfree(0,&disk);
|
||||
bytsfree = (long) disk.avail_clusters * (long) disk.sectors_per_cluster * (long ) disk.bytes_per_sector;
|
||||
bytsfull = (long) disk.total_clusters * (long) disk.sectors_per_cluster * (long ) disk.bytes_per_sector;
|
||||
_retnl(bytsfull-bytsfree);
|
||||
}
|
||||
HARBOUR DISKFREE(void)
|
||||
{
|
||||
long bytsfree;
|
||||
struct diskfree_t disk;
|
||||
_dos_getdiskfree(0,&disk);
|
||||
bytsfree = (long) disk.avail_clusters * (long) disk.sectors_per_cluster * (long ) disk.bytes_per_sector;
|
||||
|
||||
_retnl(bytsfree);
|
||||
}
|
||||
HARBOUR DISKFULL(void)
|
||||
{
|
||||
long bytsfull;
|
||||
struct diskfree_t disk;
|
||||
_dos_getdiskfree(0,&disk);
|
||||
|
||||
bytsfull = (long) disk.total_clusters * (long) disk.sectors_per_cluster * (long ) disk.bytes_per_sector;
|
||||
_retnl(bytsfull);
|
||||
}
|
||||
101
harbour/source/tools/stringsx.c
Normal file
101
harbour/source/tools/stringsx.c
Normal file
@@ -0,0 +1,101 @@
|
||||
#include <extend.h>
|
||||
#include <ctype.h>
|
||||
|
||||
/* TODO: search this file for TODO and find 'em! */
|
||||
|
||||
/* debug function to dump the ASCII values of an entire string */
|
||||
HARBOUR STRDUMP( void )
|
||||
{
|
||||
char *szText = _parc(1);
|
||||
long i, lLength = _parclen(1);
|
||||
for( i = 0; i < lLength; i++ )
|
||||
printf("%d ", szText[i]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
char *StrToken(char *szText, long lText, long lIndex, char cDelimiter, long *lLen)
|
||||
{
|
||||
long wStart, wEnd = 0, wCounter = 0;
|
||||
|
||||
do
|
||||
{
|
||||
wStart = wEnd;
|
||||
|
||||
if( cDelimiter != ' ' )
|
||||
{
|
||||
if( szText[wStart] == cDelimiter )
|
||||
wStart++;
|
||||
}
|
||||
else
|
||||
{
|
||||
while( wStart < lText && szText[wStart] == cDelimiter )
|
||||
wStart++;
|
||||
}
|
||||
|
||||
if( wStart < lText && szText[wStart] != cDelimiter )
|
||||
{
|
||||
wEnd = wStart + 1;
|
||||
|
||||
while( wEnd < lText && szText[wEnd] != cDelimiter )
|
||||
wEnd++;
|
||||
}
|
||||
else
|
||||
wEnd = wStart;
|
||||
} while( wCounter++ < lIndex - 1 && wEnd < lText );
|
||||
|
||||
if( wCounter < lIndex )
|
||||
{
|
||||
*lLen = 0;
|
||||
return "";
|
||||
}
|
||||
else
|
||||
{
|
||||
*lLen = wEnd - wStart;
|
||||
return szText + wStart;
|
||||
}
|
||||
}
|
||||
|
||||
/* returns the nth occurence of a substring within a token-delimited string */
|
||||
HARBOUR STRTOKEN( void )
|
||||
{
|
||||
char *szText;
|
||||
long lIndex = _parnl(2);
|
||||
char cDelimiter = *_parc(3);
|
||||
long lLen;
|
||||
|
||||
if( !cDelimiter )
|
||||
cDelimiter = ' ';
|
||||
|
||||
szText = StrToken(_parc(1), _parclen(1), lIndex, cDelimiter, &lLen);
|
||||
|
||||
_stornl(lLen, 4);
|
||||
_retclen(szText, lLen);
|
||||
}
|
||||
|
||||
HARBOUR ROT13( void )
|
||||
{
|
||||
PITEM pText = _param(1, IT_STRING);
|
||||
|
||||
if( pText )
|
||||
{
|
||||
char *szText = pText->value.szText;
|
||||
long i, lLen = pText->wLength;
|
||||
char *szResult = _xgrab(lLen + 1);
|
||||
|
||||
for( i = 0; i < lLen; i++ )
|
||||
{
|
||||
char c = szText[i];
|
||||
if( (c >= 'A' && c <= 'M') || (c >= 'a' && c <= 'm') )
|
||||
c += 13;
|
||||
else if( (c >= 'N' && c <= 'Z') || (c >= 'n' && c <= 'z') )
|
||||
c -= 13;
|
||||
|
||||
szResult[i] = c;
|
||||
}
|
||||
_retclen(szResult, lLen);
|
||||
_xfree(szResult);
|
||||
}
|
||||
else
|
||||
_retc("");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user