C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: コマンドのパラメータ化


(過去ログ 53 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■29328 / inTopicNo.1)  コマンドのパラメータ化
  
□投稿者/ 初心者 (195回)-(2008/12/08(Mon) 14:12:56)

分類:[C#] 

質問させてください。


現在、GPIBインターフェイスの機器を制御しようとしています。

正確に言うと、N-88basicからのバージョンアップですが…



機器にコマンドを送る際に、コマンド内の数値をパラメータ化しょうとすると、

basicでは「"Y,P"+PU$+",F"+SP$+",R"+RA$+",G"」などと書けましたが、

c#では1つの文に1つしか「""」を使えませんよね…
どのように書けますか?


※PU$→P,SP$→F,RA$→R
矢印先に代入する数値のパラメータ

引用返信 編集キー/
■29329 / inTopicNo.2)  Re[1]: コマンドのパラメータ化
□投稿者/ aetos (33回)-(2008/12/08(Mon) 14:14:29)
No29328 (初心者 さん) に返信
> basicでは「"Y,P"+PU$+",F"+SP$+",R"+RA$+",G"」などと書けましたが、
>
> c#では1つの文に1つしか「""」を使えませんよね…

そんなことはない。けど、

> どのように書けますか?

string.Format を使うかな。

引用返信 編集キー/
■29330 / inTopicNo.3)  Re[1]: コマンドのパラメータ化
□投稿者/ .SHO (326回)-(2008/12/08(Mon) 14:22:19)
No29328 (初心者 さん) に返信

> basicでは「"Y,P"+PU$+",F"+SP$+",R"+RA$+",G"」などと書けましたが、

$ は使えませんが、それ以外はこのまま、まったく同じでOKです。
引用返信 編集キー/
■29331 / inTopicNo.4)  Re[2]: コマンドのパラメータ化
□投稿者/ επιστημη (1432回)-(2008/12/08(Mon) 15:02:59)
επιστημη さんの Web サイト
> string.Format を使うかな。

string command = string.Format("Y,P{0},F{1},R{2},G", PU, SP, RA);

とかなんとか。

引用返信 編集キー/
■29332 / inTopicNo.5)  Re[2]: コマンドのパラメータ化
□投稿者/ 初心者 (196回)-(2008/12/08(Mon) 15:06:05)
お二人とも、ありがとうございます。

どこで勘違いしたのか、たしかにひとつの文で2つ使うことが出来ました。
試しにPだけ変数にしてみて、動かすことができなかったので勘違いしてしまったのでしょうか。



他のエラー原因がわかったのですが、


途中でint型にして計算してから文字列にする方法を取っています。
今はこのようにしています。

string pu = "";
int move = 0;

move = int.Parse(textBox1.Text)*20;
pu = move.ToString();


ここでtextBox1に数値を入れると、数値になってしまうことが原因でした。

コマンドでpuに入るものは、「000500」のような6桁でなければいかず、intにした時に変わってしまったためだと思います。

この時に、0を残したままにするようなよい方法はありますか?
素直に文字数を数えて、前に0という文字をつけた方が早いですかね…
引用返信 編集キー/
■29333 / inTopicNo.6)  Re[3]: コマンドのパラメータ化
□投稿者/ aetos (34回)-(2008/12/08(Mon) 15:19:22)
No29332 (初心者 さん) に返信
> コマンドでpuに入るものは、「000500」のような6桁でなければいかず、intにした時に変わってしまったためだと思います。
>
> この時に、0を残したままにするようなよい方法はありますか?
> 素直に文字数を数えて、前に0という文字をつけた方が早いですかね…

String.Format のマニュアルおよび関連ドキュメントを熟読してください。

http://msdn.microsoft.com/ja-jp/library/b1csw23d.aspx
http://msdn.microsoft.com/ja-jp/library/dwhawy9k.aspx
引用返信 編集キー/
■29334 / inTopicNo.7)  Re[3]: コマンドのパラメータ化
□投稿者/ .SHO (327回)-(2008/12/08(Mon) 15:27:01)
No29332 (初心者 さん) に返信

> この時に、0を残したままにするようなよい方法はありますか?
> 素直に文字数を数えて、前に0という文字をつけた方が早いですかね…

(あくまで一例です)

int i = 500;
string s = "00000" + i;
string c = s.Substring( s.Length - 6 );
引用返信 編集キー/
■29335 / inTopicNo.8)  Re[4]: コマンドのパラメータ化
□投稿者/ επιστημη (1433回)-(2008/12/08(Mon) 15:58:00)
επιστημη さんの Web サイト
>>素直に文字数を数えて、前に0という文字をつけた方が早いですかね…
> int i = 500;
> string s = "00000" + i;
> string c = s.Substring( s.Length - 6 );

i.ToString("D6"); って書けますですな♪

引用返信 編集キー/
■29336 / inTopicNo.9)  Re[4]: コマンドのパラメータ化
□投稿者/ 初心者 (197回)-(2008/12/08(Mon) 15:58:23)
No29334 (.SHO さん) に返信
> ■No29332 (初心者 さん) に返信
>
>>この時に、0を残したままにするようなよい方法はありますか?
>>素直に文字数を数えて、前に0という文字をつけた方が早いですかね…
>
> (あくまで一例です)
>
> int i = 500;
> string s = "00000" + i;
> string c = s.Substring( s.Length - 6 );



Substringでこのように出来るのですね!
ありがとうございます。
助かりました。

String.Formatも勉強しようと思います。
解決済み
引用返信 編集キー/
■29337 / inTopicNo.10)  Re[5]: コマンドのパラメータ化
□投稿者/ .SHO (328回)-(2008/12/08(Mon) 16:28:01)
No29335 (επιστημη さん) に返信

> i.ToString("D6"); って書けますですな♪

ホントだ!^^;
こっちの方がいいと思います。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -