tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルダブルコーテーション
記事No9037
投稿日: 2009/05/28(Thu) 22:15
投稿者bin
vb2008 express editionを使っています。
下記のような場合どのようにすればよいのかお教えください。

 Dim zenstr As String = "ASD"

 上記の全角文字列 ASD のなかに全角のダブルコーテーション
を文字の一つとして加えたい。

 Dim hanstr AS String = "ASD"

  上と同じように半角のダブルコーテーションを文字の一つとして
くわえたい。
 またこの文字位置についてのサーチ方法もどうしたらよいのかを
知りたい。
 
 以上ですがよろしくお願いします。

[ツリー表示へ]
タイトルRe: ダブルコーテーション
記事No9038
投稿日: 2009/05/29(Fri) 00:02
投稿者花ちゃん
これでいいのかな?

   Dim zenstr As String = "A" & Chr(&H8168) & "SD"
   Debug.WriteLine(zenstr)
   Debug.WriteLine(zenstr.IndexOf(Chr(&H8168)))


   Dim hanstr As String = "A""SD"
   '又は
   hanstr = "A" & Chr(34) & "SD"
   Debug.WriteLine(hanstr)
   Debug.WriteLine(hanstr.IndexOf(Chr(34)))
   '又は
   Debug.WriteLine(InStr(hanstr, """"))

 # ダブルコーテーション → ダブルクォーテーション

[ツリー表示へ]
タイトルRe^2: ダブルコーテーション
記事No9039
投稿日: 2009/05/29(Fri) 02:07
投稿者魔界の仮面弁士
全角ダブルクォーテーションには、左右の向きの違う文字があります。
似て非なる文字も多いので要注意…。


Dim sb As New System.Text.StringBuilder()
sb.AppendLine(ChrW(&H22) & vbTab & "Quotation Mark")
sb.AppendLine(ChrW(&H201C) & vbTab & "Left Double Quotation Mark")
sb.AppendLine(ChrW(&HFF02) & vbTab & "Fullwidth Quotation Mark")
sb.AppendLine(ChrW(&H201D) & vbTab & "Right Double Quotation Mark")
sb.AppendLine(ChrW(&H201E) & vbTab & "Double Low-9 Quotation Mark")
sb.AppendLine(ChrW(&H201F) & vbTab & "Double High-Reversed-9 Quotation Mark")
sb.AppendLine(ChrW(&H2033) & vbTab & "Double Prime")
sb.AppendLine(ChrW(&H2036) & vbTab & "Reversed Double Prime ")
sb.AppendLine(ChrW(&H301D) & vbTab & "Reversed Double Prime Quotation Mark")
sb.AppendLine(ChrW(&H301E) & vbTab & "Double Prime Quotation Mark")
sb.AppendLine(ChrW(&H301F) & vbTab & "Low Double Prime Quotation Mark")
sb.AppendLine(ChrW(&H275E) & vbTab & "Heavy Double Comma Quotation Mark Ornament")
sb.AppendLine(ChrW(&H275D) & vbTab & "Heavy Double Turned Comma Quotation Mark Ornament")
sb.AppendLine(ChrW(&HFF9E) & vbTab & "Halfwidth Katakana Voiced Sound Mark")
sb.AppendLine(ChrW(&H309B) & vbTab & "Katakana-Hiragana Voiced Sound Mark")
sb.AppendLine(ChrW(&H3099) & vbTab & "Combining Katakana-Hiragana Voiced Sound Mark")

MsgBox(sb.ToString(), vbInformation)

[ツリー表示へ]
タイトルRe^3: ダブルコーテーション
記事No9040
投稿日: 2009/05/29(Fri) 19:14
投稿者bin
すみません。もう少しお教えください。
行おうとしているのは以下のようなことです。

 ・全角英数字と記号を半角にするのが目的
 ・変数 zenstr に、半角にする対象となる全角の文字列を格納し
  ておく。
 ・変数 hanstr に、対応する半角文字列を格納しておく。
 ・2つの変数には対応するように順番に文字列を格納する。
 ・TextBox1 を設け、そこに半角にしない全角文字を登録出来るよ
  うにしておく。これを nstr という変数に格納する。
 ・TextBox2 にユーザが本文を書き込む。
 ・ボタンを設け、ボタンを押せば、本文中の全角文字が、1文字
  づつ取り出され、3つの変数(zenstr,hanstr,nstr)を参照しな
  がら全角から半角に変換する。

 以上が勉強のテーマです。そこで困ったのがダブルクォーテーシ
ョン(以下では DQ)の処理です。

 ・zenstr hanstr にそれぞれ全角と半角の DQ の登録方法
  これは教わったような方法で出来そうです。
 ・本文を一字づつ取り出して、3つの変数を参照しながら変換す
  るかしないかを決めるわけです。
 ・InStr 関数でサーチするのですが、DQ があるのにも拘らず戻り
  値は 0 になります。ここが問題のところで、本文からの文字と
  変数の中の文字が異なっているためですが、どうしてそうなる
  のかわかりません。


 DQ を除外すれば正常に動作しているのですが、DQ も対象とした
場合 DQ はつねに全角の DQ は全角になります。
 長文になり誠に申し訳ありませんが、なにかよい方法はないでし
ょうか。 
 以上ですがよろしくお願いします。
  

[ツリー表示へ]
タイトルRe^4: ダブルコーテーション
記事No9041
投稿日: 2009/05/29(Fri) 21:03
投稿者bin
すみません。
なんとか解決策がみつかりそうです。
長文の投稿をしてもうしわけありません。
花ちゃん さま の方法でなんとかなりそうです。
仮面弁士 さま いろいろなのがあるので驚きました。
どうも有り難うございました。

[ツリー表示へ]
タイトルRe^5: ダブルコーテーション
記事No9042
投稿日: 2009/05/29(Fri) 22:10
投稿者bin
花ちゃん さま
何回も投稿しすみません。
ダブルクォーテーションは処理できました。
Chr(&H8168)のおかげでうまくいきました。
どうも有り難うございました。

[ツリー表示へ]