■機能 与えられたアスキー文字列をDouble値に変換します。
■書式
(VB.NET用)
Dim Ret As Integer
Dim Str As String
Dim DblData As Double
Ret = GpCnvStrToDbl(Str, DblData)
(C言語用)
DWORD Ret;
char *Str;
double DblData;
Ret = GpCnvStrToDbl(Str, &DblData);
(C#用)
uint Ret;
string Str;
double DblData;
Ret = gpib.CnvStrToDbl(Str, out DblData);
(Python用)
Ret = ctypes.c_ulong()
Str = ctypes.create_string_buffer(xxxx) # (xxxxは文字列の長さを指定)
DblData = ctypes.c_double()
Ret.value = GpibPy.GpCnvStrToDbl(Str, ctypes.byref(DblData))
■モード マスタモード/スレーブモード
■引数
Str : 変換する文字列
Double値に変換する文字列を指定します。
この文字列にヘッダが含まれていても問題はありません。
また、大文字・小文字は同一文字として判断します。
DblData : (出力)変換したDouble値
Ret : 終了情報(戻り値)
0 : 正常終了
255 : パラメータエラー
(詳細は「戻り値一覧」参照)
■補足
①この関数は以下の条件で変換を行います。
「<ヘッダ>+<数値を示す文字列>」または 「<数値を示す文字列>」がある場合
<ヘッダ>とは"DV"のようなアルファベット・記号のみで構成される文字列、
または"B1"のような文字と数字の組み合わせで構成される文字列を意味します。
また、<ヘッダ>の前後に1つ以上のスペースが含まれていても問題ありません。
なお、<ヘッダ>自体にスペースを含まないでください。
<数値を示す文字列>とは<仮数>、<仮数>+<指数>、または<仮数>+<係数サフィックス>のいずれかで構成される文字列を意味します。
<仮数>、<指数>および<係数サフィックス>の前後に複数のスペースが挿入されていても問題ありません。
また、<仮数>と<係数サフィックス>の間は"/"で区切られていても問題ありません。
ただし"/"の後にスペースは入れないでください。
<仮数>、<指数>、<係数サフィックス>については「仮数・指数・係数サフィックスについて」およびGpCnvSettings関数をご参照ください。
<数値を示す文字列>の後ろはスペースまたは文字列の終わりが来ていなければなりません。
また、SfxFlagを1に指定した場合には<係数サフィックス>のみを判別し、それに該当しない文字については無視します。
このため次のような違いが生じます。
例) SfxFlag = 1の場合
与えられる文字列(Str): 返される値(DblData)
"DV +1.2M S" : 0.0012
"DV +1.2MS" : 0.0012
"+1.2m A" : 0.0012
"+1.2mA" : 1.2E+6
"+1.2 mA" : 1.2E+6
<指数>を示すブロックと<係数サフィックス>を示すブロックが同時に指定されている場合、SfxFlagの指定にかかわらず<係数サフィックス>は無視されます。
例)
与えられる文字列(Str): 返される値(DblData)
"1.2E-1" : 0.12
"1.2E-1M" : 0.12
<ヘッダ>と<数値を示す文字列>の間には少なくとも1つのスペースを含んでいる必要があります。
例外として"B1"のような文字列が1つまたは複数個スペースで区切られて並んでいる場合、先頭にある文字列ブロックの文字を数値として変換します。
例)
与えられる文字列(Str): 返される値(DblData)
"B1" : 1
"B100 C2" : 100
"B100C2" : エラー
"BD D3" : 3
"BD" : エラー
"D5 E0 1.2E-3" : 5
②この関数はGpIni()をコールしていなくても使用することができます。
③GpCnvSettings関数でヘッダ等を設定した場合、それを取り除いた上で①の条件が適用されます。
④変換する文字列の長さの上限は256バイトです。