※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ
↑ バッファセット


これは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);
}


↑
(C)copyright ffortune.net 1995-2007 produced by ffortune and Lumi.
お問い合わせはこちらから