Recovered from cvs revision 2007-09-03 03:50:00
This commit is contained in:
parent
c8b439dd91
commit
e27d3351da
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: StdAwk.cpp,v 1.8 2007/08/26 14:33:38 bacon Exp $
|
* $Id: StdAwk.cpp,v 1.9 2007/09/01 15:43:16 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
@ -10,6 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <vcclr.h>
|
#include <vcclr.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
namespace ASE
|
namespace ASE
|
||||||
{
|
{
|
||||||
@ -18,10 +19,8 @@ namespace ASE
|
|||||||
|
|
||||||
StdAwk::StdAwk ()
|
StdAwk::StdAwk ()
|
||||||
{
|
{
|
||||||
/*
|
random_seed = (gcnew System::Random)->Next (System::Int32::MinValue, System::Int32::MaxValue);
|
||||||
seed = System::DateTime
|
random = gcnew System::Random (random_seed);
|
||||||
random = gcnew System::Random ();
|
|
||||||
*/
|
|
||||||
|
|
||||||
// TODO: exception/error handling....
|
// TODO: exception/error handling....
|
||||||
AddFunction ("sin", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sin));
|
AddFunction ("sin", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sin));
|
||||||
@ -33,8 +32,11 @@ namespace ASE
|
|||||||
AddFunction ("exp", 1, 1, gcnew FunctionHandler (this, &StdAwk::Exp));
|
AddFunction ("exp", 1, 1, gcnew FunctionHandler (this, &StdAwk::Exp));
|
||||||
AddFunction ("sqrt", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sqrt));
|
AddFunction ("sqrt", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sqrt));
|
||||||
AddFunction ("int", 1, 1, gcnew FunctionHandler (this, &StdAwk::Int));
|
AddFunction ("int", 1, 1, gcnew FunctionHandler (this, &StdAwk::Int));
|
||||||
//AddFunction ("rand", 0, 0, gcnew FunctionHandler (this, &StdAwk::Int));
|
AddFunction ("rand", 0, 0, gcnew FunctionHandler (this, &StdAwk::Rand));
|
||||||
//AddFunction ("srand", 1, 1, gcnew FunctionHandler (this, &StdAwk::Int));
|
AddFunction ("srand", 1, 1, gcnew FunctionHandler (this, &StdAwk::Srand));
|
||||||
|
AddFunction ("systime", 0, 0, gcnew FunctionHandler (this, &StdAwk::Systime));
|
||||||
|
AddFunction ("strftime", 0, 2, gcnew FunctionHandler (this, &StdAwk::Strftime));
|
||||||
|
AddFunction ("strfgmtime", 0, 2, gcnew FunctionHandler (this, &StdAwk::Strfgmtime));
|
||||||
}
|
}
|
||||||
|
|
||||||
StdAwk::~StdAwk ()
|
StdAwk::~StdAwk ()
|
||||||
@ -95,7 +97,6 @@ namespace ASE
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
bool StdAwk::Rand (System::String^ name, array<Argument^>^ args, Return^ ret)
|
bool StdAwk::Rand (System::String^ name, array<Argument^>^ args, Return^ ret)
|
||||||
{
|
{
|
||||||
ret->LongValue = random->Next ();
|
ret->LongValue = random->Next ();
|
||||||
@ -104,9 +105,75 @@ namespace ASE
|
|||||||
|
|
||||||
bool StdAwk::Srand (System::String^ name, array<Argument^>^ args, Return^ ret)
|
bool StdAwk::Srand (System::String^ name, array<Argument^>^ args, Return^ ret)
|
||||||
{
|
{
|
||||||
ret->LongValue = args[0]->LongValue;
|
int prev_seed = random_seed;
|
||||||
|
random_seed = (int)args[0]->LongValue;
|
||||||
|
random = gcnew System::Random (random_seed);
|
||||||
|
ret->LongValue = prev_seed;
|
||||||
return true;
|
return true;
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
bool StdAwk::Systime (System::String^ name, array<Argument^>^ args, Return^ ret)
|
||||||
|
{
|
||||||
|
ret->LongValue = (long_t)::time(NULL);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StdAwk::Strftime (System::String^ name, array<Argument^>^ args, Return^ ret)
|
||||||
|
{
|
||||||
|
wchar_t buf[128];
|
||||||
|
struct tm* tm;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
if (args->Length < 1)
|
||||||
|
{
|
||||||
|
const wchar_t* fmt = L"%c";
|
||||||
|
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
|
||||||
|
|
||||||
|
tm = ::localtime (&t);
|
||||||
|
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cli::pin_ptr<const ASE::Awk::char_t> fmt = PtrToStringChars(args[0]->StringValue);
|
||||||
|
|
||||||
|
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
|
||||||
|
|
||||||
|
tm = ::localtime (&t);
|
||||||
|
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret->StringValue = gcnew System::String (buf, 0, len);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StdAwk::Strfgmtime (System::String^ name, array<Argument^>^ args, Return^ ret)
|
||||||
|
{
|
||||||
|
wchar_t buf[128];
|
||||||
|
struct tm* tm;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
if (args->Length < 1)
|
||||||
|
{
|
||||||
|
const wchar_t* fmt = L"%c";
|
||||||
|
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
|
||||||
|
|
||||||
|
tm = ::gmtime (&t);
|
||||||
|
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cli::pin_ptr<const ASE::Awk::char_t> fmt = PtrToStringChars(args[0]->StringValue);
|
||||||
|
|
||||||
|
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
|
||||||
|
|
||||||
|
tm = ::gmtime (&t);
|
||||||
|
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret->StringValue = gcnew System::String (buf, 0, len);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
int StdAwk::OpenFile (File^ file)
|
int StdAwk::OpenFile (File^ file)
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: StdAwk.hpp,v 1.6 2007/08/26 14:33:38 bacon Exp $
|
* $Id: StdAwk.hpp,v 1.7 2007/09/01 15:43:16 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ase/net/Awk.hpp>
|
#include <ase/net/Awk.hpp>
|
||||||
@ -16,6 +16,7 @@ namespace ASE
|
|||||||
~StdAwk ();
|
~StdAwk ();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
int random_seed;
|
||||||
System::Random^ random;
|
System::Random^ random;
|
||||||
|
|
||||||
bool Sin (System::String^ name, array<Argument^>^ args, Return^ ret);
|
bool Sin (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
@ -27,8 +28,11 @@ namespace ASE
|
|||||||
bool Exp (System::String^ name, array<Argument^>^ args, Return^ ret);
|
bool Exp (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
bool Sqrt (System::String^ name, array<Argument^>^ args, Return^ ret);
|
bool Sqrt (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
bool Int (System::String^ name, array<Argument^>^ args, Return^ ret);
|
bool Int (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
//bool Rand (System::String^ name, array<Argument^>^ args, Return^ ret);
|
bool Rand (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
//bool Srand (System::String^ name, array<Argument^>^ args, Return^ ret);
|
bool Srand (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
|
bool Systime (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
|
bool Strftime (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
|
bool Strfgmtime (System::String^ name, array<Argument^>^ args, Return^ ret);
|
||||||
|
|
||||||
public protected:
|
public protected:
|
||||||
// File
|
// File
|
||||||
|
Loading…
Reference in New Issue
Block a user