■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#14746-0Trim関数についてDB2001-02-27(火) 13:05
     #14749-0RE#14746:Trim関数についてゆう(U)2001-02-27(火) 13:36
     #14750-0RE#14749:Trim関数についてDB2001-02-27(火) 14:01
#14746-0
Trim関数について
度々申し訳ありません。
ランダムアクセスファイルで 氏名 As String*20 と宣言し、
それより短い文字を入れた場合はスペース(文字コード32)で埋まると思い、
以前お教え頂きましたTrim関数を用いてスペースを消去し、
別の配列の中に入れようと以下のようにしました。
しかし、Namedata()の中に入った文字を見るとスペースは消えてません。
何故なのでしょうか?何とぞお教え下さい。

Dim MaxNo As Long
Dim DataNo As Long
Dim Namedata() As String
Dim RecNo As Integer

FileNo = FreeFile
        If Right$(App.Path, 1) = "\" Then
            FileName = App.Path & "pData"
        Else
            FileName = App.Path & "\pData"
        End If
        
            Open FileName For Random As FileNo Len = Len(Myrecord)
            MaxNo = LOF(FileNo) / Len(Myrecord)
            
                ReDim Namedata(MaxNo)
                                
                    For RecNo = 1 To MaxNo
                        Get FileNo, RecNo, Myrecord
                            Namedata(RecNo) = Trim(Myrecord.氏名)        
                    Next RecNo
#14749-0
RE#14746:Trim関数について
> ランダムアクセスファイルで 氏名 As String*20 と宣言し、
> それより短い文字を入れた場合はスペース(文字コード32)で埋まると思い、
> 以前お教え頂きましたTrim関数を用いてスペースを消去し、
> 別の配列の中に入れようと以下のようにしました。
> しかし、Namedata()の中に入った文字を見るとスペースは消えてません。

ユーザ定義型の変数にファイルを読み込んでいるみたいですが、
DBCS等のUnicode変換時の特性を理解するといいです。

As String * 10 の変数として、
ファイルでは・・・
"あいうえお"
Get後の変数には
"あいうえお" + String$(5, vbNullChar)
の状態になります。

Getの時点ではString * 10で10バイトとして・・・
VB内のコードではUnicode変換され、10文字として
扱われます。

当然Trim系の関数はスペース(全・半角)が消去対象
ですから、それ以外は消去されません。

前回でもChr(0)などの表現があったと思いますが、
実際にどのような内容なのか自分の目で調べて
見るといいです。

確認サンプル)
Dim i As Long
Dim strTemp As String

For i = 1 To Len(Myrecord.氏名)
  strTemp = Mid(Myrecord.氏名, i, 1)
  Debug.Print i, strTemp, Hex(Asc(strTemp))
Next i
※ちなみに全角の変数名はお勧めしません
#14750-0
RE#14749:Trim関数について
>   Debug.Print i, strTemp, Hex(Asc(strTemp))
> Next i

サンプルご呈示有り難うございます。早速試してみました。
Hex(Asc(strTemp)) が文字部分で、また途中まで 20 を返しているのが
理解できました。しかし最後のいくつかは 0 を返しています。
この0は何なのでしょうか?
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)