http://www.okweb.ne.jp/kotaeru.php3?q=194302
この質問の回答を頂いてプログラムを変更したのですが、また詰まってしまいました・・・(T.T)

Open strTmp For Binary As #1
Put #1, , strCom
Put #1, , "EXIT"
Close #1

として、ファイルstrTmpの中身をみると、(strCom=dir/wとする)
dir/wEXIT
となっています。
希望する結果は、
dir/w
EXIT
なのですが、方法はあるでしょうか?
VBのHELPを参照した感じでは、配列変数を使えばいいみたいですが、strComの値は可変です。

ついでの質問ですが、VBのプログラムをするにあたって、VBのヘルプを利用するだけで技術アップは望めるでしょうか?
市販の書籍は必要とする部分が少なく金額も高いため考えてしまいます。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Put #1, , strCom


Put #1, , vbCrLf '改行コード
Put #1, , "EXIT"

っていうか、1行づつならPut以外の方法をお勧めします。
Open strTmp For For output As #1
Print #1, strCom
Print #1, "EXIT"
close #1

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=169686

この回答への補足

アドバイスを参考にプログラム変更で目的のファイル出力ができました。
でも、なぜか他の部分がうまくいかないんです。
strTmpは、abc.bat(DOSのバッチファイル)
strComは、
dir/w
EXIT

その後、shell(strTmp,~)とすることで、DOS窓を開いて、dir/wを実行後、EXITでDOS窓を閉じるはずなのですが、なぜかDOS窓が閉じてくれないんです。
手動でDOS窓開いて、手動でabc.batを実行だとbat内の最後のEXITでDOS窓が閉じるんだけど・・・
このあたり分かればよろしくお願いします。

補足日時:2002/01/23 20:33
    • good
    • 0
この回答へのお礼

vbCrLfというのがあったんですね。(&H13を追加してみたりしたのですが、うまくいかなくて)
Printのほうは、初めて知りました。
For outputでファイルを開いて、writeでやったら、文字列の前後に"~"が入ってしまって、Binaryで何とかしようと思ってましたので、助かりました。
今日、さっそくやってみたいと思います。

私の場合、昔N88 BASICをやってたので、当時のコマンドで何とかしようとしてしまうのが原因かもしれません。

うちのVBは、ヘルプでOPENを検索しても灰色の文字で内容が表示できないんのだけど、MSDNの使い方が悪いのかな?

お礼日時:2002/01/23 08:29

>vbCrLfというのがあったんですね


ちなみに、vbNewLineというのもあります。
Microsoftではこちらのほうを薦めているようです。
このあたりは、VBのヘルプにあります。(ただ、インストール時のMSDNにあるかどうかは、未確認。すいません)

この回答への補足

その後、shell(strTmp,~)とすることで、DOS窓を開いて、dir/wを実行後、EXITでDOS窓を閉じるはずなのですが、なぜかDOS窓が閉じてくれないんです。
手動でDOS窓開いて、手動でabc.batを実行だとbat内の最後のEXITでDOS窓が閉じるんだけど・・・
このあたり分かればよろしくお願いします。

この件ですが、できました!
ヘルプでよく調べてみたら書いてありました。
お手数おかけしました。

参考に・・・
shell("command.com/c "+strTmp,~)
で、終了後閉じるようになりました。

回答、補足の記入がめちゃくちゃになってしまいましたが、教えてくれた方ありがとうございました。

補足日時:2002/01/23 21:18
    • good
    • 0
この回答へのお礼

ありがとうございます。
VBのヘルプを含めまだまだ勉強が必要と感じました。
これからも頑張っていきたいと思います。

お礼日時:2002/01/23 20:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QVB で =Right([nendo],2) & "/06" はどういう事ですか?Right([nendo],2)は?

VB で =Right([nendo],2) & "/06" はどういう事ですか?Right([nendo],2)は?

Aベストアンサー

&="&"
&="""
=Right([nendo],2) & "/06&quot  -> =Right([nendo],2) & "/06"
[nendo]はアクセスのフィールド名か(アクセスのVBA?)。[]で囲むから。
中身は、#2でご指摘の年度で2007とかは行っているのでしょう。
Right関数は文字列の右側、最後から文字数を指定して切り出す。
&は文字列を結合する演算子。
/06をこの順序で結合するもの。

QVB6変数の宣言dim j,k,p,m,n as Integerは良くない?

お世話になります。

VB暦1年です。

汎用の変数宣言でタイトルのように
dim j,k,p,m,n as Integer
dim ssa,ssb as String

など、カンマ区切りで変数宣言を使っていたのですが
最近、知人にasの手前の変数は型どおり宣言されるが
その手前の変数はVariant型で宣言されてしまうと指摘されました。

指摘されるまで気にはしていませんでしたが
ウォッチで確認すると変数に代入されるまでは
型がVariant/Emptyとなってます。

以後、気をつければいいのですが
過去にコーディングしたプログラムにも多少、使用していて客先に納品してしまっているものもあります。
後々、問題になるのかな?

Aベストアンサー

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというようなバグの原因になりやすいので、型を明示できるような状況で敢えてVariant型を使うべきではないです。

しかし、すでに納品してしまったコードについては、問題はメモリを余計に使ってしまうことくらいではないでしょうか?
他の人が気づかなかったことから考えるに、多分狭いスコープで使っていますよね? 比較対象や代入するべき型を誤るというようなロジックの誤りがない限り、少なくとも動作上の問題は発生しないと思います。ただ、直せる機会があるのであれば、直した方がいいとは思いますが。

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというよう...続きを読む

QC#,VB.NETからのウェブDBのメンテは

社内のとある装置の測定値を関係者みんなが閲覧できるよう、
インターネットで公開するためのウェブアプリを作成しようと思います。
ウェブアプリは、PHP + MySQL を考えています。
まったく素人で、勉強しつつ作成していくことになります。

そこで質問なのですが、
1. 測定機器から値を収集してウェブサーバ上のDBに登録する処理を、
C#のプログラムで作成しようと思いますが、
ローカルで動作するC#のプログラムからウェブDBへの登録は可能でしょうか?
2. 1.が可能な場合、どのくらいのレスポンスになるものでしょう?
もちろんデータ量やPCや回線の能力にもよると思いますが...
例えば、500バイト程度のレコードを3000件ほど定周期で登録したいのですが、
周期をなるべく短いものにしたいです。
数秒周期?十数秒周期?数十秒周期?数分周期?
大雑把に分かりませんでしょうか?
3. 運用に必要な情報(例えば、ユーザID,PW等)もウェブDBに登録したいのですが、
設定項目が多くウェブアプリではメンテしづらいのと、
既存VB.NETのプログラムがあるためこれを活かしたいということで、
ローカルのVB.NETのプログラムからウェブDBへの登録は可能でしょうか?

よろしくお願いします。

社内のとある装置の測定値を関係者みんなが閲覧できるよう、
インターネットで公開するためのウェブアプリを作成しようと思います。
ウェブアプリは、PHP + MySQL を考えています。
まったく素人で、勉強しつつ作成していくことになります。

そこで質問なのですが、
1. 測定機器から値を収集してウェブサーバ上のDBに登録する処理を、
C#のプログラムで作成しようと思いますが、
ローカルで動作するC#のプログラムからウェブDBへの登録は可能でしょうか?
2. 1.が可能な場合、どのくらいのレスポンスになる...続きを読む

Aベストアンサー

こんにちは。

>C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。
その辺はなんでもいいと言ったら乱暴ですが、お好みで大丈夫だと思います。
私ならJSONで組むと思います。


>また、こういったレンタルサーバーのDBに、
>早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、
>やはり高負荷となるのでしょうか。
>これは、別のカテゴリーで質問を立てるか、
>そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。
個人的には負荷が高いかなと思います。
通信時間も入ると数秒の繰り返しでは、3000件のインサートが間に合わないかもしれません。
実際のところやってみないとわかりませんが。
もっと明るい人がいるかもしれませんので別の質問として聞いてみるのも手ですが、一番確実なのは業者に問合わせてください。
常にプロセスがCPUを食ってるとか、メモリの利用が高いと、強制的に止められてしまう可能性もありますので。

QVB6から#C or .NET VB どちらが易しい? OS or 言語

マシンが64bit対応なので VisualBasic6から #Cか .NET VBに書き換えて64bitで動作するように検討しています。

VS2005 Proは購入済みで、OSはWindowsXP x64 proか
Windows2003を検討しています。どちらがよいかわかっていないのですが、まず最初にプログラムをどちらにコンバートするか悩んでいます。

いっそC#の方が将来性があるのでしょうか?
また、.NET VBの方が書き換えが簡単でしょうか?

以前、VB6のプロジェクトファイルを開こうとしたら
なんか変換したような気かしましたが、フォームやメインが無かった?ようなへんてこなCが出来上がりました。

VBからの移行された方でどちらを選んだのか知りたいです。

Aベストアンサー

多少、混乱と誤解とがあるようです。

まず、Windows 2003という製品はありません。
おそらくはWindows 2003 Serverと間違えているのだと
思いますが、これは企業向けのサーバー用OSで開発用
ではありません。

それとVisual Studio .NET 2002 または .NET 2003の
Visual Basic .NET とVisual Studio2005 のVisual
Basic 2005 とはそれぞれ別製品です。

言語仕様も異なっている所がありますので、VB 2005を
使用しているのに、VB .NETと言って質問すると違った
解答が返ってくる場合があります。

#VS 2005 Proを購入されたという事ですが、仕事で
#使うには中途半端だし、勉強用ならExpress Edition
#が無料で入手できるので、若干微妙な選択の様な
#感じがしますが...

また、Visual Studioは32ビットアプリケーションです
から64ビットOS上で動かしても、32ビット互換モード
で動作するのみで、64ビットで動くわけではありません。

ここから本題
VB6からの移植であるなら、やはりVB 2005の方が言語的
にも近いので移植も楽なはずです。

C#は一見、C言語の様に見えますが、全く違う言語です
から移植及び移植後の追加修正を行う際に苦労する事
になると思います。

C#の将来性については、今までのMSの言語の発売傾向
からすると、1~3年ぐらいでマイナーチェンジを出し
5~6年ぐらいで、新技術の成果といって新しい言語を
出すという事を繰り返しているので、C#に関しても
同じ事が行われる事も考えられますが、逆に長く続く
という可能性もあります。

どちらになるかは、売上げ実績次第?

多少、混乱と誤解とがあるようです。

まず、Windows 2003という製品はありません。
おそらくはWindows 2003 Serverと間違えているのだと
思いますが、これは企業向けのサーバー用OSで開発用
ではありません。

それとVisual Studio .NET 2002 または .NET 2003の
Visual Basic .NET とVisual Studio2005 のVisual
Basic 2005 とはそれぞれ別製品です。

言語仕様も異なっている所がありますので、VB 2005を
使用しているのに、VB .NETと言って質問すると違った
解答が返ってくる場合があります。

...続きを読む

Q算術記号(+,-,/,*)を文字としてあらわして計算に使用する方法

ビジュアルベーシック初心者です。
タイトルでは誤解をうむと思いますが、やりたいことは以下のようなことです。

kigouという変数をstringsで宣言しそこに文字として算術記号を代入する。  例 kigou = "+"

このkigou変数を用いて、実際の計算をする。
例 i = 1 kigou 2
この場合、kigou変数には+が代入されているので、iの値は3になる。

このように、kigouに入れる算術記号を任意にかえ、kigouという変数を用いて実際の計算をさせたいのですが、正しい記述方法などがわかりません。方法はありますか?

Aベストアンサー

#3です。
プログラムは、どれだけ多く使われるかによって、作るのにどれだけ手間をかけてもよいか、が決まるものです。例えば、それだけの需要があれば、次のようなプログラムを作っても採算がとれるはずです。

例えば、
keisan (2, +, 3) よりも一歩進めて、keisan ("(2 + 3) * 4") の値が 20 となるような function keisan を作ることは可能です。中級者以上の練習問題に適していると思います。


人気Q&Aランキング

おすすめ情報