tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^4: ファイルパスの機種依存文字を取得する方法について
投稿日: 2014/11/28(Fri) 18:06
投稿者マサタロウ
マサタロウです。

> また、『Shift_JIS では区別されるが、Unicode では同じ文字として扱われる文字は区別できない』仕様です。
> たとえば、Shift_JIS では平方根記号が Chr(&H8795) と Chr(&H81E3) の二箇所にマップされていますが、
> VB5 は Unicode で管理される都合上、いずれも ChrW(&H221A) となってしまい、両者を区別できません。
>
> ReDim sjis1(1) As Byte
> ReDim sjis2(1) As Byte
> sjis1(1) = &H95: sjis1(0) = &H87
> sjis2(1) = &H81: sjis2(0) = &HE3
>
> Dim s1 As String, s2 As String
> s1 = StrConv(sjis1, vbUnicode)
> s2 = StrConv(sjis1, vbUnicode)
> 's1 と s2 は同じ文字になってしまう
配列変数を再宣言して配列変数に文字コードを格納。
文字列型変数に、変数sjis1の内容を変換した文字列を格納。
sjis1はどこで宣言しているのか?
s1とs2は同じコードなので同じ結果になることが分かる。


サンプルコードを実行したところ、ADODB.Streamでテキストファイルが
作成できました。
非日本語な漢字のニイを含むファイル名です。
デスクトップにパスを変更しても作成できました。

ADODB.Stream で検索したところ、以下のページを見つけました。
  http://www.k-sugi.sakura.ne.jp/windows/vb/3650/

上記ページのコードでパスとファイル名を変更して実行してみると、
自作拡張子のファイル内の内容がイミディエイトウィンドウで確認
できました。
パスとファイル名がきちんとしていませんでしたが、
上記ページの方法でうまくいくか試してみます。


> Const adSaveCreateOverWrite = 2
> Dim filePath1 As String, filePath2 As String
> Dim stm As Object
> '漢字2文字「ニイハオ」を含むファイル名。ニイの文字は非日本語な漢字。
> filePath1 = Environ("TEMP") & "\NIHAO1(" & ChrW(&H4F60) & ChrW(&H597D) & ").TXT"
> filePath2 = Environ("TEMP") & "\NIHAO2(" & ChrW(&H4F60) & ChrW(&H597D) & ").TXT"
>
> 'ADODB.Stream は、Unicode パスをサポートしている
> Set stm = CreateObject("ADODB.Stream")
> stm.Open
> stm.WriteText "Ni-Hao"
> stm.SaveToFile filePath1, adSaveCreateOverWrite
> stm.Close

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。