
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も見ています
-
VB6で配列を文字列に変換する方法?
Visual Basic(VBA)
-
VB6.0でのバイナリデータの扱いについて
Visual Basic(VBA)
-
byte型をstring型として扱うには
Visual Basic(VBA)
-
-
4
16進数の変換処理
Visual Basic(VBA)
-
5
VBで構造体の配列を関数に渡す方法?
Visual Basic(VBA)
-
6
Visual Basic でのコードをASCII変換、16進変換したものを元に戻す方法を教えてください
Visual Basic(VBA)
-
7
rs232cでの受信データ(mscomm)の受信方法VB6
Visual Basic(VBA)
-
8
[VB.net] StringからByte配列への変換
Visual Basic(VBA)
-
9
VB6にも「ToString」ってありますか?
Visual Basic(VBA)
-
10
VB6 配列を初期化したい
Visual Basic(VBA)
-
11
VB.NETで16進数が正しいかどうかの判定方法を教えて
Visual Basic(VBA)
-
12
VBA バイナリ―から文字列にする方法
Visual Basic(VBA)
-
13
VB.net 引数で配列変数を渡す際の要素数
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
UPDATE文
-
ふりがなをアルファベット化す...
-
「彡」って文字はなんという文...
-
VS 2008(VB.NET)
-
JIS → S-JIS コード変換するには
-
sedで日本語の置換方法について
-
Editボックスから値を取り出す方法
-
Excel vba で1と10を正確に判断...
-
Symfowareでのデータ型変換につ...
-
VisualBasic6からVB2005に移行...
-
ExcelからVBAでWordを操作する...
-
ビット反転(Not)が機能しない
-
フォームのメールアドレスフィ...
-
COBOLのデータ型
-
シフトJIS/7ビットJISの変換ラ...
-
latin-1 (ISO-8859-1)への変換
-
htmlspecialcharsについて
-
一次元のフーリエ変換(FFT)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ふりがなをアルファベット化す...
-
「彡」って文字はなんという文...
-
VS 2008(VB.NET)
-
フォームのコントロールのバッ...
-
ExcelVBA実行後に時々落ちる
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
Excelマクロにて30分単位の計算...
-
Symfowareでのデータ型変換につ...
-
2バイト文字をJEFからSJISに変...
-
「髙(はしごたか)」を文字コー...
-
S-JIS → JIS コード変換するには
-
%fと%gについて
-
PL/SQLでSJISの文字コードを取...
-
JIS → S-JIS コード変換するには
-
RubyでUTF8のコード値を文字に...
-
英数字を含む文字列(0-9,A-Z)...
おすすめ情報
vb6では単なる代入ができそうですね、
コード変換してる関数はvb.netで作ってて、送信関数はvb6のdllで提供されています。
最悪vb6で代入するためだけのラッパーを作ろうと思います。
もしvb.net側でできる方法あればそちらの方が望ましいので引き続き宜しくお願いします。
試させて頂きました。
stringbuilderに順調に1バイトづつバイナリデータを格納するんですが
最後にtostringしたことろでバイナリ数値イメージのら列をで文字列化したものが出来上がってしまいました。
残念。ご協力ありがとうございました。
vb6での単なる代入もつぶさに検証してみたところやはり中身がなにがしか変換されてしまいました。
やっぱりbyte配列で徹頭徹尾処理しないとダメなのか。。。