- - PR -
文字列をバイト単位で切り分けたい。
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-01-18 11:15
VB.net 2003で開発しています。
文字列をバイト単位で切り分けたいのですが、 昔あったMidB()関数のようなものは、ないのでしょうか。 ご存知の方いらっしゃいましたら、教えていただけないでしょうか。 | ||||||||||||
|
投稿日時: 2004-01-18 11:40
諸農です。
文字通り、バイト単位にするのでしたら Encoding.GetBytes() を使います。 文字列を文字配列として各文字にアクセスするのでしたら String.Charsプロパティを利用します。 ではでは(^^)/ _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||
|
投稿日時: 2004-01-18 12:51
ありがとうございます。
Encoding.GetBytes()として、文字列をバイト配列に取得して、 全角文字と半角文字の区別ってどうすればよいのでしょう。 やりたいこととしては、 "1234512345アイウエオあいうえお"という文字列があったとして、 8バイト目から5バイトの文字列⇒"23"(4は捨てる) 20バイト目から5バイトの文字列⇒"オあい" というふうに取りたいのです。 | ||||||||||||
|
投稿日時: 2004-01-18 13:52
諸農です。
なぜ、バイト配列に変換する必要があるのでしょうか??
8バイト目を決めるルールがどういったものかわかりませんが、 String.Substring()を使えば、バイト位置ではなく、 文字位置と文字列長で切り出すことが出来ますよ。 ではでは(^^)/ --追加捕捉-- MidBをSDKで検索したら 「Visual Basic 言語の概念」 プログラミング要素のサポートに関する変更の概要 ms-help://MS.NETFrameworkSDKv1.1.JA/vblr7net/html/vaconProgrammingElementsChangesInVB7.htm として、「Mid ステートメント」になったようですけど、 こっちは使えそうですか? 私はVBもVB.NETもわからないので。。(^_^; _________________ 諸農和岳 Powered by Borland Delphi/C++Builder & Microsoft VS.NET [ メッセージ編集済み 編集者: Jubei 編集日時 2004-01-18 13:58 ] | ||||||||||||
|
投稿日時: 2004-01-18 16:06
諸農さん
String.Substring()だと、何文字目から何文字分としてしか切り出せないですよね。 何バイト目から何バイト分の文字列を取りたいので、 結局文字列を頭から回して、ASCIIコードに変換し、1バイト文字か2バイト文字かを 判断して、バイト数分の文字列を取ることにしました。 (あんまりよい方法とは思えないんですけど。) もしももっとよい方法ご存知の方は教えてください。 Midステートメントは、文字変換で文字列切り出しとは違うようでした。 | ||||||||||||
|
投稿日時: 2004-01-18 18:17
諸農です。
病院に行ってて遅くなりました。
そうです。
5バイトを取得しようとして、文字列操作を行っても、 結果として取得するのは4バイト分の2文字なんですよね? 最終の形を、個々の要素を文字として認識できる文字配列にしたいのでしたら、 SubString()でも充分要件を満たしているような気はするんですけどねぇ。。 もしかして、切り出したい位置や文字列長が、 文字位置や文字数では指定できないって前提なんでしょうか? そうであるなら、仕方が無いとは思いますが。
使えませんでしたか(^_^; 無駄な情報だったようですね。すみませんでした。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||
|
投稿日時: 2004-01-18 18:28
何度も教えていただきありがとうございます。
やりたいことを具体的にいうと、 固定長のCSVファイルからDBにレコードを取り込むために、 何バイト目から何バイトの文字列という形で区切りたいのです。 その文字列には半角文字・全角文字が混在するので、 何文字分という切り出し方ではいけないのです。 というわけで、仕方ない…という結論でしょうか。 | ||||||||||||
|
投稿日時: 2004-01-18 19:00
ども、久しぶりに書き込むアティです。
これって、CSVファイルなんですよね? でしたら、カンマで区切ればいいのではないんでしょうか? あ、もしかして、カンマで区切った文字列の一部を読み込むってことですか? それだったら、仕方がないですね。 <関係ない話> ところで、ちょっと見ない間に俺の立てた「会社の不満」スレッドが どこかへ逝ってしまったのですが、どこへいったのだろう? も、もしかして、削除されてしまいました?! </関係ない話> |
1|2|3|4
次のページへ»