A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
以下のプログラムを実行してみましょう。
dim data as string
dim datastr as string
dim i as integer
data = 受信データ
datastr = ""
for i = 1 to len(data)
datastr = datastr & str(asc(mid(data,i,1))) & ","
next i
msgbox datastr
結果は、以下のようになるでしょう。
65,84,65,77,56,78,3,13,10,
これは「ATAM8N<STX><CR><LF>」を受信した場合です。
表示される数字が「32より小さい場合(0~31の場合)」は、そこにある文字は「制御文字」です。
質問者さんのケースでは、制御文字の1つが「rみたいな文字」になって見えているのですが、制御文字は「末尾に1つだけ」とは限りません。
複数の制御文字が何文字も付加されているけど「見えているのはrみたいなの1文字だけで、他の制御文字は見えないだけ」なのかも知れません。
上記の結果例では、データ末尾に「STX」「CR」「LF」の3文字が付加されたデータを受信していますが、これを文字列のまま表示すると、CRとLFは「見えない」ので、「STXしか付いてないように見えてしまう」ので「末尾の1文字だけを削る」では失敗します。「見えないCRとLFも含めて、3文字削らないと、うまくいかない」ですからね。
見えないデータを確かめるには、データをそのまま表示するのではなく、上記のようなプログラムを用いて「文字コードを数値化して、数字で表示してみる」と言う「可視化」が必要になります。
「データの中身が良く判らなかったら、判る形式で表示してみろ」って事です。
No.4
- 回答日時:
恐らく測定器から DATA + ETX + Cr + LF 等の形式で送信されている物と思われます。
このあたりは測定器のマニュアルなどを見れば判りますね。
ETXの文字コード(03h)がPCでは罫線の左上隅 (┌)で表示されることがあります。
必ず入っているのなら末尾の1文字を削除すれば良いだけですね。
No.3
- 回答日時:
> rみたいな文字は改行コードで正しいのでしょうか?
> それもあまり自信がありません。
知りません。
対象文字をAsc()で見てみれば文字コードがいくつか
分かるでしょう。
その文字コードが何なのか調べれば済むことです。
http://e-words.jp/p/r-ascii.html
因みに改行コードはVB6はvbCrLfでも指定可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- Excel(エクセル) ExcelデータのMacとWindowsの文字化け対策について教えてください‼︎ 私はMacを使って 1 2022/08/22 12:46
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ListBoxのデータを高速でファイ...
-
バッチファイルの作り方(CSV→...
-
MATLAB グローバル変数の宣言
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
fopenでディレクトリ内の全ファ...
-
Perlで特定文字列から特定文字...
-
vba dir の相対パス
-
Perlで特定行から特定行までを...
-
awkスクリプトでダブルクォーテ...
-
C言語のバイナリモードでのfsca...
-
chdirがうまくできない
-
batファイルでrenameができませ...
-
VBAで巨大なファイルの途中から...
-
openした後、closeしないでプロ...
-
ファイル全てを .xlsm に変更し...
-
DOSコマンドで、標準出力を出力...
-
Perl utf8上でshiftjisをデコード
-
perlで容量の大きいCSVファイル...
-
複数ファイルを1つにするシェ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxのデータを高速でファイ...
-
動かなくなったのでJavaソース...
-
VB6で"r"みたいな文字が返って...
-
<br />と<p></p>の使い方
-
.netのXmlDocumentを使ってテキ...
-
Pythonでegrep機能をつかいたい
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
DOSコマンドで、標準出力を出力...
-
バッチファイルの作り方(CSV→...
-
VBAで巨大なファイルの途中から...
-
window.open でのファイル指定方法
-
Perlで特定行から特定行までを...
-
openした後、closeしないでプロ...
-
htaccessで特定のディレクトリ...
-
close()で例外が投げられる理由
-
fgets で値が取得できない
おすすめ情報