vb6です。
文字データをコード変換して送信したいのですが、
送信関数は既にあり、いじれません。こいつは送信データをstringで受け取ります。しかし不思議なことに送信データサイズの指定もあります。多分stringをchar配列のようなイメージで使っているんだと思います。
文字コード変換処理は変換前データをstringで受け取ります。
コード変換はSJISをEBCDIC派生の独自コードに変換するので
一旦byte配列に落として1バイトずつ表に従って変換します。
変換したら送信関数に渡したいのですがなにせstringでしか受け取ってくれません。
中身の解釈をせずmemcpy的なことをしたいと調べたらダイレクトキャストという方法を
見つけたのですがよくわかりません。
誰か教えてもらえませんでしょうか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
GetEncodingが、System.Text名前空間だったので、
System.Text 名前空間から、エンコードなしのものが無いか探して
StringBuilder クラスを見つけました。
その中のメソッドにStringBuilder.Append(Byte)メソッドがあったのでこれで出来ないかと?
以下、出来る保証はありませんが・・・。
Dim bytes() As Byte = ' 変換前データを一旦byte配列に落とす
Dim sb As New System.Text.StringBuilder()
For Each value In bytes
' valueをEBCDIC派生の独自コードに変換する
sb.Append(value)
Next
Dim str As String = sb.ToString();
No.3
- 回答日時:
SJIS指定ではなくて、EBCDIC指定ではないですか?
派生の独自コードということですので、上手くいくかわかりませんが……
stringもgetencodingも、というかシステムそのものがebcdicには非対応じゃないですか?getencodingの引数セットにebcdicってあります?
No.2
- 回答日時:
ありがとうございます。
getencodingだとbyte配列の中身のデータを例えばShiftJISと指定したらShiftJISであるものと思い込んで処理するので、今回の様な特殊コードはShiftJIS表にないからと言って変な値に書き換えられてしまうんです。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
byte型をstring型として扱うには
Visual Basic(VBA)
-
VB6で配列を文字列に変換する方法?
Visual Basic(VBA)
-
VB6.0でのバイナリデータの扱いについて
Visual Basic(VBA)
-
-
4
配列を関数に渡す方法
Visual Basic(VBA)
-
5
VBプログラムの終了
Visual Basic(VBA)
-
6
VBに、Cのincludeのようなものありますか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
友人とのラインで 「~MBと書く...
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
Excelマクロにて30分単位の計算...
-
std::stringからLPCWSTR型への変換
-
sedで日本語の置換方法について
-
Symfowareでのデータ型変換につ...
-
VS 2008(VB.NET)
-
数字5桁文字コード?
-
ExcelVBA実行後に時々落ちる
-
英数字を含む文字列(0-9,A-Z)...
-
相対パスを絶対パスに変換したい
-
34進数への変換など
-
URLのUTF-8からShift-JISへのデ...
-
latin-1 (ISO-8859-1)への変換
-
2バイト文字をJEFからSJISに変...
-
COBOLによる全角・半角混...
-
「髙(はしごたか)」を文字コー...
-
フォームのコントロールのバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
std::stringからLPCWSTR型への変換
-
VS 2008(VB.NET)
-
ExcelVBA実行後に時々落ちる
-
ふりがなをアルファベット化す...
-
Excelマクロにて30分単位の計算...
-
英数字を含む文字列(0-9,A-Z)...
-
Symfowareでのデータ型変換につ...
-
JIS → S-JIS コード変換するには
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
フォームのコントロールのバッ...
-
数字5桁文字コード?
-
バイナリデータ→ASCII 変換プ...
-
2バイト文字をJEFからSJISに変...
-
CString ←→ BSTRの変換について
-
VBScript ASC関数:文字エンコ...
-
入力した文字を全て自動で全角...
おすすめ情報
vb6では単なる代入ができそうですね、
コード変換してる関数はvb.netで作ってて、送信関数はvb6のdllで提供されています。
最悪vb6で代入するためだけのラッパーを作ろうと思います。
もしvb.net側でできる方法あればそちらの方が望ましいので引き続き宜しくお願いします。
試させて頂きました。
stringbuilderに順調に1バイトづつバイナリデータを格納するんですが
最後にtostringしたことろでバイナリ数値イメージのら列をで文字列化したものが出来上がってしまいました。
残念。ご協力ありがとうございました。
vb6での単なる代入もつぶさに検証してみたところやはり中身がなにがしか変換されてしまいました。
やっぱりbyte配列で徹頭徹尾処理しないとダメなのか。。。