- - PR -
VB.NET 全角・半角でのLEFT関数
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-12 12:01
VB.NETで開発中です。
あるデータをMSSQLから取り込み、テキストファイルに書き込む処理を 行なっています。 テキストファイルは、1レコード1行とし、各項目固定長ですので、 1レコードも固定長になる必要があります。 (テキストファイルから先は、別のアプリケーションで使用するため) 現在は、各項目を Microsoft.VisualBasic.Left(dr.Item("vendor"), 12).PadRight(12) や Lset(dr.Item("vendor"), 12) といった書き方で、それらをつなぎ合わせ、1レコード分づつ、 テキストファイルに書き込んでいますが、これだと各項目に 全角文字が入った場合におかしくなります。 VB6まではLeftBという関数がありましたが、 VB.NETの場合、色々調べましたが、お手上げ状態です; LENに関しては結構ありましたが。 良い対処方法がございましたら、アドバイスをお願いします。 | ||||||||||||
|
投稿日時: 2005-09-12 12:08
こんにちは、じゃんぬ です。
System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount() とのあわせ技をした自作メソッドを書きましょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-09-12 12:18
すいません、嘘つきました。
GetByteCount じゃあないです。(どこを斜め読みしたのか... orz)
直書きしているので、未検証です... (今、環境ないもので...) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-09-12 13:46
ども、らいと申します。 私自身、VB.NETは発売当初にちょっと触った程度なのでアレですが、 確か、下のコードでよかった記憶があります。 (例の該当部分のみです)
たぶん。おそらく。きっと。 違ってたらごめんなさい。m(_ _)m # あぁ、やっぱ今まで.NET敬遠してたけど、 # やんなくちゃだめかなぁ。 | ||||||||||||
|
投稿日時: 2005-09-12 14:10
自分で書いておいてなんですが、書き込みをしてから調べてました。 でも、コレに関する記述って少ないですね。 (VB6での「〜B」関数) なので、一応情報ソースを。 http://www.bcap.co.jp/hanafusa/index.html このページの「VB.NET関係」→「VB6.0→VB.NETへ移行」を選択すれば、 いろいろと載っているページへ行きます。 ではでは。 | ||||||||||||
|
投稿日時: 2005-09-12 14:27
じゃんぬねっとさん、 早々のアドバイスありがとうございます。 関数、試してみているところです。また、報告します。 嘘つきなんて言わないで下さい。アドバイス、大変うれしいですから。 | ||||||||||||
|
投稿日時: 2005-09-12 14:35
らいさん、アドバイスありがとうございます。 早速、String追加してみましたが、残念ながら変わりませんでした。 もうちょっと調べてみます。 .NETはVB5や6と勝手が違うので、コーディングにすごく時間が かかってしまっています。 これを乗り越えれば、次からは随分違うと思うんですが…。 | ||||||||||||
|
投稿日時: 2005-09-12 14:37
で、これは Left 関数であって、LeftB とは違うと思うのですが... 違ってたらごめんなさい。m(_ _)m _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |