タグ

VBに関するsetotchのブックマーク (38)

  • コンソール・アプリケーションの出力を取り込むには?[C#、VB]

    連載目次 「TIPS:コマンド・プロンプトを表示せずにコンソール・アプリケーションを実行するには?」では、Windowsアプリケーションなどから外部のコンソール・アプリケーションを実行する場合に、コマンド・プロンプトを表示させずに実行する方法について解説しているが、この際、実行する外部アプリケーションによっては、その画面出力がプログラムで必要になることがある。 稿ではプログラムからコンソール・アプリケーションを実行し、その出力を取得する方法について解説する。 標準出力とそのリダイレクト 題に入る前に、コンソール・アプリケーションの出力について簡単に説明しておこう。 たいていのコンソール・アプリケーションは実行結果などを画面(通常はコマンド・プロンプト)に表示するが、これはコンソール・アプリケーションが画面に描画を行っているわけではない。コンソール・アプリケーションは文字を「標準出力」に

    コンソール・アプリケーションの出力を取り込むには?[C#、VB]
  • .NET コマンド・プロンプトを表示せずにコンソール・アプリケーションを実行するには?[C#、VB] − @IT

  • 構造体のポインタを引数に受け取る関数の呼び出し - はらぐろブログラマン

    構造体のポインタを引数に受ける関数には、2通りあります。 引数に渡したポインタに情報を格納して返す 引数に渡したポインタから情報を受け取る この2通りの方法について説明します。 Win32APIのGetSystemTime()を呼び出す 「引数に渡したポインタに情報を格納して返す」タイプの呼び出しです。 Win32APIのGetSystemTime()は、引数に構造体SYSTEMTIMEのポインタを受け取り、そのアドレスに対して現在のシステム時刻を格納します。これをC#でマーシャリングしてみます。 Win32APIでのSYSTEMTIME構造体は以下のように定義されています。 typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute;

  • プログラミング小技テクニック集: Win32 APIやアンマネージ関数の呼び出し

    C#マネージコードから、Win32 APIや、その他アンマネージとして作られた外部関数の呼び出し方。 C言語や、VC++など、NET環境以外で作られたライブラリを呼び出すには、それなりのことをしなければならない。 呼び出す関数の宣言を記述するが、そのすぐ上に、 [System.Runtime.InteropServices.DllImport("XXXX.dll")] を記述する。 そして、 static extern ・・・・ として関数宣言を行う。 例えば、Win32APIのGetCurrentDirectory()関数を呼び出す場合、 [System.Runtime.InteropService.DllImport("kernel32.dll")] static extern UInt32 GetCurrentDirectory(UInt32 nBufferLength, IntPt

  • 高性能になったメニューコントロールについて

    サンプル コードのダウンロード (vbmigtips_MenuStrip.msi, 483 KB) ※ このサンプルをインストールするには Visual Studio 2005 Beta 2 が必要です。 アプリケーションにメニューを設定する場合、Visual Basic 6.0 では、[メニューエディタ]ダイアログを利用しますが、Visual Basic .NET 以降では、標準コントロールとして MainMenu コントロール(Visual Basic .NET)、MenuStrip コントロール(Visual Basic 2005)がサポートされ、簡単に設定することができるようになりました。また、Visual Basic 2005 では、以前の Visual Basic .NET ではできなかった様々な機能が新たに追加され、より高性能なメニュー設定ができるようになりました。そこで今回

    高性能になったメニューコントロールについて
  • My.Computer.FileSystem.WriteAllText メソッド

    更新 : 2007 年 11 月 ファイルにテキストを書き込みます。 ' Usage My.Computer.FileSystem.WriteAllText(file ,text ,append) My.Computer.FileSystem.WriteAllText(file ,text ,append ,encoding) ' Declaration Public Sub WriteAllText( _ ByVal file As String, _ ByVal text As String, _ ByVal append As Boolean _ ) ' -or- Public Sub WriteAllText( _ ByVal file As String, _ ByVal text As String, _ ByVal append As Boolean, _ ByVal enc

    My.Computer.FileSystem.WriteAllText メソッド
  • ArrayList クラス (System.Collections)

    例 次の例は、 を作成して初期化 ArrayList する方法とその値を表示する方法を示しています。 using namespace System; using namespace System::Collections; void PrintValues( IEnumerable^ myList ); int main() { // Creates and initializes a new ArrayList. ArrayList^ myAL = gcnew ArrayList; myAL->Add( "Hello" ); myAL->Add( "World" ); myAL->Add( "!" ); // Displays the properties and values of the ArrayList. Console::WriteLine( "myAL" ); Console

    ArrayList クラス (System.Collections)
  • VB.NET - 数値かどうかをチェックする (IsNumeric)

    ある式が数値かどうか判断するようなエラーチェックが必要になる場合があります。VB で言えば IsNumeric 関数のようなメソッドです。 Microsoft.VisualBasic 名前空間配下に IsNumeric メソッドは存在するものの、この名前空間を使いたくないという理由から自作のメソッドを作ることが多いようです。 .NET Framework 的には System.Double 構造体の TryParse メソッドを使うことになります。TryParse メソッドは、何を数値として見なすか、System.Globalization.NumberStyles の引数で細かく設定することが可能です。今回は、VB の IsNumeric とほぼ同じ動きをさせることを考えたメソッドを紹介します。 VB.NET 全般 Option Strict On Public NotInheritab

  • 全ては時の中に… : 【VB.NET】TimeSpanを使った時間の計算

    2008/2/1711:41 【VB.NET】TimeSpanを使った時間の計算 VB.NETで時間を扱う場合には、TimeSpan構造体を利用する。 例えば、1時間30分を扱う場合には、以下のように設定する。 (この場合、引数は、時分秒の順で指定する) Dim ts As New TimeSpan(1, 30, 0) 2つの日付の期間を単位を時間に換算して調べたい場合には、以下のようにする。 Public Sub Main Dim dt1 As New Date(2008, 2, 17, 18, 0, 0) Dim dt2 As New Date(2008, 2, 17, 19, 30, 0) '2008/2/17 18:00:00と2008/2/17/19:30:00の差を取得する Dim ts As New TimeSpan(dt2.Subtract(dt1).Ticks) Cons

  • 時間を処理する(TimeSpan構造体)

    時間,すなわち2つの時刻の差を格納するにはTimeSpan構造体を使う。形式は,「d.hh:mm:ss.ff」で,負の値も取れる。dは日,hhは24時間制の時間,mmは分,ssは秒,ffは1秒未満の端数である。 TimeSpan型は,時間間隔をタイマ刻みの値で管理する。タイマ刻みは100ナノ秒である。TimeSpan型の値には,TimeSpan.MinValueからTimeSpan.MaxValueまでの範囲の値を格納できる。 似たデータ型にDateTime値型がある。DateTime値型とTimeSpan値型の違う点は,DateTimeがある瞬間を表し,TimeSpanがある時刻からある時刻までの時間間隔を表すことである。例えばあるDateTime型の値を別のDateTime型の値から減算すると,それら2つの値の時間間隔,つまりTimeSpan型の値を取得できる。また,現在を表すDate

    時間を処理する(TimeSpan構造体)
  • 処理時間を正確に計測するには?[2.0のみ、C#、VB] - @IT

    あるコードの実行にかかる時間をプログラムで計測したい場合、.NET Framework 1.1ではDateTime構造体(System名前空間)で開始/終了の時刻を取得して算出したり、より正確に計測したい場合にはWin32APIのQueryPerformanceCounter関数*などを直接呼び出したりする必要があった。 * この関数を利用するには、ハードウェアが高分解能パフォーマンスカウンタをサポートしている必要がある。このため古いPCでは利用できない可能性もある。 .NET Framework 2.0のクラス・ライブラリには、このQueryPerformanceCounter関数をベースにしたStopwatchクラス(System.Diagnostics名前空間)が新しく追加されており、正確な経過時間を簡単に計測できるようになっている。 Stopwatchクラス Stopwatchクラ

  • .NET TIPS 秒数を「hh:mm:ss」形式の文字列にするには? - C# VB.NET - @IT

    計算などにより得られた秒数を、ユーザーに分かりやすい「hh:mm:ss」の形式の文字列にするには、TimeSpan構造体(System名前空間)のインスタンスを作成し、そのToStringメソッドを呼び出せばよい。TimeSpan構造体は時間間隔を表すためのものである。 TimeSpan構造体には、次のような整数型のパラメータを取るコンストラクタが用意されている。 TimeSpan(時間数、分数、秒数) このコンストラクタを利用し、例えば次のようにして1000秒を表すTimeSpanオブジェクトを作成することができる。 TimeSpan ts = new TimeSpan(0, 0, 1000); TimeSpan構造体のToStringメソッドは、その時間間隔から「hh:mm:ss」の形式の文字列を出力する(区切り文字の「:」は変更できない)。 string hms = ts.ToStr

  • VB 配列 - Array, Redim, 動的配列など

    Visual Basic 中学校 > 初級講座 > 第27回 配列 配列は昔からある技術です。新鮮さがないためにまったく注目されませんが、昔から今まで生き延びているということ自体がその重要性を証明しています。今回は地味な説明になりますがじっくりと読んで配列の概要を把握することは有意義です。次回取りあげるコレクションの理解にもつながります。 この回の要約 ・配列を使うと似たような変数をまとめることができる。 ・配列は Dim MyArray(3) As String のように宣言する。 ・配列は添字を変数にしてループをまわせる。 ・配列をコピーするにはCloneメソッドを使う。 ・動的配列を作成すると、Redim Preserveを使うことにより後からサイズを変更できる。 1.はじめに 配列に関する説明をする前に少し今回の方針を書いておきます。 私は普段初級講座を書くに当たっては「VBに

  • 全ては時の中に… : 【VB.NET】文字列を数値に変換する(TryParse)

    2008/7/2419:21 【VB.NET】文字列を数値に変換する(TryParse) 文字列を数値に変換するには、Parse()メソッドを利用します。 しかし、Parse()メソッドは、以下の場合に例外が発生してしまいます。 1.変換対象の文字列が正しい形式ではない場合 2.値が変換後の数値型の範囲(最小値〜最大値)の範囲外の場合 例外を処理するのは、処理の負荷が高いので即時性を求められるアプリケーションでは、パフォーマンスが低下してしまいます。 そのため、以前の記事「【VB.NET】指定した文字が数字かどうか判定する(IsDigit, IsNumber, IsNumeric) 」で紹介した方法を利用して事前に文字列が数値がどうかを確認して例外が発生しないようにする必要がありました。 .NET Framework 2.0以降では、上記の問題を解決できるTryParse()メソッドが追加

  • 「文字型を数値型へ変換する方法」(1) Insider.NET - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • VB For Each Nextを使用したくり返し

    Visual Basic 中学校 > VB.NET サンプル > For Each 〜 Nextを使用したくり返し ここではFor Each 〜 Nextを使用したくり返しのサンプルを紹介します。 Do 〜 Loopを使用したくり返しのサンプルはDo 〜 Loopを使用したくり返しを参照してください。 For 〜 Nextを使用したくり返しのサンプルはFor 〜 Nextを使用したくり返しを参照してください。 くり返し処理についての説明は初級講座第7回 繰り返し処理を参照してください。 コレクションの列挙についての説明は初級講座第28回 コレクションを参照してください。 1.コレクションの列挙 以下の例ではコレクションArの内容をメッセージボックスに順に表示する。 Dim Ar As New ArrayList Ar.Add("アメンボ") Ar.Add("イワシ") A

  • https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/398readall/readall.html

  • 文字列を文字列により分割するには?(VB.NET関数活用)

    連載目次 ある文字列を特定の「文字」により分割するには、Stringクラス(System名前空間)のSplitメソッドが利用できる(使用例については「TIPS:メソッドに可変長パラメータを渡すには?」を参照 )。しかし、Splitメソッドでは文字列を「文字列」により分割することはできない。 文字列を文字列により分割したい場合には、正規表現が利用可能なRegexクラス(System.Text.RegularExpressions名前空間)のSplitメソッドを使用することもできるが、正規表現を使うまでもないような用途には、VB.NETのSplit関数が使える。 稿では、VB.NETおよびC#からVB.NETのSplit関数を利用して文字列を分割する方法について解説する。 VB.NETにおけるSplit関数を使った文字列の分割 Split関数は文字列(第1パラメータ)を、区切り文字列(第2パ

    文字列を文字列により分割するには?(VB.NET関数活用)
  • テキスト・ファイルの内容を簡単に書き込むには?[2.0のみ、C#、VB] - @IT

    「TIPS:ファイルにテキストを書き込むには?」では、テキスト・ファイルにテキスト内容を書き込む方法を紹介した。その方法を実践するには、次の3つのステップが必要だった。 (1)テキスト・ファイルを開く、もしくは作成する (2)テキスト内容を書き込む (3)テキスト・ファイルを閉じる .NET Framework 2.0では、これらのステップを省略して、1つのメソッド呼び出しだけで、テキスト・ファイルにテキスト内容を書き込む方法が提供されている。それが、次の静的メソッド群だ。 (A)File.WriteAllText(String、String、Encoding)メソッド (B)File.AppendAllText(String、String、Encoding)メソッド (C)File.WriteAllLines(String、String[]、Encoding)メソッド ( )内はパラメー

  • VB ファイル処理 - SreamReader, StreamWriter

    Visual Basic 中学校 > 初級講座 > 第30回 ファイル処理 テキストファイルから文字列を読み込んだり、テキストファイルに文字列を書き込む方法を説明します。これにより、アプリケーションを終了してもデータを保存しておく機能をプログラムできるようになります。 この回の要約・テキストファイルから読み込みにはStreamReaderクラスを使う。 Dim Reader As New IO.StreamReader("C:\VBTest.txt") TextBox1.Text = Reader.ReadToEnd Reader.Close() ・テキストファイルに書き込むにはStreamWriterクラスを使う。 Dim Writer As New IO.StreamWriter("C:\VBTest.txt") Writer.WriteLine(TextBox1.Tex