- 締切済み
VB6で"r"みたいな文字が返ってくる。
VB6で測定器からデータを読み取っているのですが、 データの後ろに"r"みたいな文字が返ってきます。 この文字を取りたいのですが、どうすれば良いのでしょうか? Trim()をしてもエラーになります。 調べると改行コードのようですが、よく分かりません。
- miya2004
- お礼率21% (690/3220)
- Visual Basic
- 回答数5
- ありがとう数3
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- chie65535
- ベストアンサー率43% (8508/19343)
以下のプログラムを実行してみましょう。 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文字削らないと、うまくいかない」ですからね。 見えないデータを確かめるには、データをそのまま表示するのではなく、上記のようなプログラムを用いて「文字コードを数値化して、数字で表示してみる」と言う「可視化」が必要になります。 「データの中身が良く判らなかったら、判る形式で表示してみろ」って事です。
- TooManyBugs
- ベストアンサー率27% (1472/5321)
恐らく測定器から DATA + ETX + Cr + LF 等の形式で送信されている物と思われます。 このあたりは測定器のマニュアルなどを見れば判りますね。 ETXの文字コード(03h)がPCでは罫線の左上隅 (┌)で表示されることがあります。 必ず入っているのなら末尾の1文字を削除すれば良いだけですね。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
> rみたいな文字は改行コードで正しいのでしょうか? > それもあまり自信がありません。 知りません。 対象文字をAsc()で見てみれば文字コードがいくつか 分かるでしょう。 その文字コードが何なのか調べれば済むことです。 http://e-words.jp/p/r-ascii.html 因みに改行コードはVB6はvbCrLfでも指定可能です。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
Replace(hoge, Chr(13) & Chr(10), "") 改行コードがラインフィードだけなら Replace(hoge, Chr(10), "")
- chie65535
- ベストアンサー率43% (8508/19343)
dim data as string ... data = データ文字列 ... '文字列の最後の文字の文字コードが???だったら、それを取り除く if asc(right(data,1)) = ??? then data = left(data,len(data) - 1) end if
お礼
ありがとうございます。 rみたいな文字列のコードがわかりません。
関連するQ&A
- VB.NET 文字コード
ASKII文字コードを調べるにはどうしたらいいですか? VB.NETのエンコードはweb.configでshift-jisにしてあります。 任意の文字列から一字づつよみとって改行をみつけたら<br>タグに置き換えたいです。 どうしたらいいですか? どうかお願いいたします。
- 締切済み
- Microsoft ASP
- VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可
VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可能でしょうか? Label5.***文字数指定*** のようなコードがあれば助かるのですが、 どなたかご存知でしたら教えてください。 よろしくお願いいたします。 Label5.text="あいうえおかきくけこ" 【表示】 あいうえお かきくけこ
- ベストアンサー
- Visual Basic
- VB6のテキスト処理 さまざまな文字コード/改行で対応
VB6のテキスト処理で、Open InputとLine inputを使った場合に 文字コード/改行コードが SJIS/CRLFの時は正しく1行を読み込む事ができますが、改行がLFの時は正しく1行を読み取りません。 改行コードがLFもしくはCRの場合でも正しく1行を読み取る方法はあるのでしょうか? また、文字コードに関してもEUCやUTF-8,JISでも対応できる方法がありましたら教えて下さい。
- ベストアンサー
- Visual Basic
- 【VB】文字列操作についてお願いします。
お世話になっております。 VB2005です。 ある文字列の最後の行の改行を取りたいのですが、何かよい方法はありますでしょうか。 あいうえお かきくけこ さしすせそ とあったら、"さしすせそ"のあとの改行をすべて取りたいのです。 よろしくお願いします。≦(._.)≧ ペコ
- ベストアンサー
- Visual Basic
- VBA・VB6.0・VB.NETの文字列型
失礼します。 Excel97/2000のVBAの文字列型変数は、アスキーコード129-159/224-252のデータを保持できないみたいですが、これはVB6.0/VB.NETなどでもそうなのですか? つまり、VBAでは、 Sub main() Dim s as String s = Chr$(130) Sheet1.Cells(1, 1) = Asc(s) End Sub とすると、シートのA1に「0」が表示されてしまうということです。 というのも、私はVB6.0/VB.NETを持っていないのですが、ちょっとVB2.0時代のコードを使う必要が生じたので、VBAで実行してみたところ、以上のような仕様の違いに気付いたのです。 これがVBAだけの特性なのか、最近のVBはこういう仕様になってしまったのかが知りたいのです。
- ベストアンサー
- Visual Basic
- 改行されていないテキストデータ
改行コードがないテキストデータがあります(半角23,250文字) VB.NET2003で取込ながら、250文字で改行したいのですが、 どんな方法がありますでしょうか? 宜しくお願い致します。
- 締切済み
- Visual Basic
- 改行コードを取りたい
測定器からデータを取得してエクセルに張り付けるマクロを作っているのですが、 取得したデータをそのままセルに張り付けると(例:「test」という文字列を取得した場合) 「test 」 のようにセルにAlt+Enterを押して改行された様な感じになります。 空白はtrimで除去したのですが、改行はどうやって取れば良いのでしょうか?
- ベストアンサー
- Excel(エクセル)
- vb6 上書き方法について
vb6にて、元々のコードの内容を変更して、 プロジェクトの上書き保存をした後、 上書きの内容のexeを作成しようとすると、 「コンパイルエラー :メソッドまたはデータメンバが見つかりません」とでます。 デバッグ開始ボタンで変更したコードが問題ないことは確認済です。 元々のコードの内容を変更せず、 exe作成で同じ名前で上書きをしようとしても上記のコンパイルエラーが表示されます。 なぜでしょうか?コンパイルエラーが出る理由をお教え願います。 GPIBやI/Oを使用しているのですが、測定機器につなげた状態で、 exe作成をしないとダメなのでしょうか??? 素人でよくわかりません。どなたかお教え願います。
- ベストアンサー
- Visual Basic
- VB6より長文INSERT文でORA1756単一引用符が閉じられていないが発生する
初めまして。 VB6、ORACLE8iでダイナセットを使用しテーブルに対してINSERT文を 発行していますが、INSERT文が長文になると”単一引用符が閉じられていません” とエラーが返ってきます。このSQL文と同一のものをPLUSにて実行させても 同一のエラーが発生するのですが、メモ帳等で改行して一行を短くすると 正常にINSERTされます。 それならと思い、SQL文作成コード内に改行コードを挿入したのですが VB上からは同じようにエラーが返ってきます。改行コード入りのSQL文を イミディエイトより取り込みPLUSにて実行させると正常に動作します。 どうすればVB上から正常実行できるのでしょうか? 初心者ゆえどうすればよいかさっぱりわからなくなりました。 VB上からは何か制約があるのでしょうか? どなたかご存知の方ご教授願います。 長文失礼しました。
- 締切済み
- その他(データベース)
- StringTokenizerを使用して、連続した区切り文字を見分ける方法
文字列を改行コードごとに区切り、Vectorに格納していきたいと思っています。 例) あ\r\nい\r\nう\r\nえ\r\nお\r\n という文字列を 「あ・い・う・え・お」と分けてVectorに格納する。 そこで、改行コードが連続してきた場合に「連続して改行コードがきた!!」ということが分かるようにVectorに格納したいと思っています。 例) あ\r\nい\r\nう\r\nえ\r\n\r\nお\r\n という文字列が来たら、「あ・い・う・え・☆・お」のような感じで、 連続して改行コードが来たら、何か特定の文字を詰めるなど。 どなたかいい方法を教えてください。 よろしくお願いします。
- ベストアンサー
- Java
お礼
rみたいな文字は改行コードで正しいのでしょうか? それもあまり自信がありません。