※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ
バッファセット
これはBASICのLSET,RSETと同様の関数である。用途も同様。固定長のレコード
にデータをセットするのに使用する。逆に取り出す時はMidStr系を使用する。
void BufLSet(char* buf, int from, int len, const char* str);
void BufLSet(char* buf, int from, int len, long kk);
void BufLSet(char* buf, int from, int len, short kk);
void BufLSetN(char* buf, int from, int len, long kk);
void BufLSetK(char* buf, int from, int len, const char* str);
void BufLSet(char* buf, int from, int len, const char* str)
{
int k = strlen(str);
if (k<len)
{
memset(buf+from, ' ', len);
memcpy(buf+from, str, k);
}
else
memcpy(buf+from, str, len);
}
void BufLSet(char* buf, int from, int len, long kk)
{
char form[12];
char* work = new char[len+4];
sprintf(form,"%%%dld", len);
sprintf(work,form, kk);
memcpy(buf+from, work, len);
delete [] work;
}
void BufLSet(char* buf, int from, int len, short kk)
{
BufLSet(buf,from,len,(long)kk);
}
//バッファへのセット(0付き)
void BufLSetN(char* buf, int from, int len, long kk)
{
char form[12];
char* work = new char[len+4];
sprintf(form,"%%0%dld", len);
sprintf(work,form, kk);
memcpy(buf+from, work, len);
delete [] work;
}
//バッファセット(日本語空白,strは日本語だけであること)
void BufLSetK(char* buf, int from, int len, const char* str)
{
int k = strlen(str);
if (k<len)
{
memcpy(buf+from, str, k);
memcpy(buf+from+k, spacesK(len-k), len-k);
}
else
memcpy(buf+from, str, len);
}