0

Visma という会社の API を使用しています。そして、彼らのデータベースから読み取るとき、そのフィールドから読み取ることができる最大文字数に応じて、文字列にスペースを割り当てる必要があります。

それは次のようなものです:

dim CustomerName as string
CustomerName = Space(50)

AdkGetStr(pData, ADK_CUSTOMER_NAME, CustomerName, 50)

読み取りを許可する文字数を指定する必要がありますが、問題は、多数の顧客名を読み取ると、ほとんどすべてが許可されている最大文字数を使用せず、余分なスペースを取り除くことができないことです。

" " を "" にトリムして置き換えようとしましたが、結果はありませんでした。

次に、「test」という名前の顧客を入れてみましたが、この文字列の最初の 4 文字は文字であり、5 番目 (5) は取り除くことができないスペースであることがわかっています。

次に、このテストを行いました:

CustomerName = Mid$(CustomerName, 5, 1)
'reading the first space after my customername

templength = Len(temp)
'templength is 1

したがって、顧客名の後に 1 つのスペースがあり、長さは 1 ですが、次のようになります。

ここに画像の説明を入力

そして、MsgBox を表示できません。len = 1 よりも長いように見えます...そして、タブまたは空またはnullと等しくありませんか? それは一体何ですか?

文字列を一意にすることはできませんね。だから、それは何かに等しい必要があります...そして、それが何であるかを知っていれば、文字列からスペースを削除できます。

4

1 に答える 1

0

データベースから文字列の長さを取得する方法がない場合は、文字の位置を検索して文字列を自分でクリーンアップする必要があります。

Function CleanString(ByRef str As String) As String

    Dim posNullChar As Long
    posNullChar = InStr(1, str, vbNullChar)
    If posNullChar > 0 Then
         CleanString = Left$(str, posNullChar - 1)
    Else
         CleanString = str
    End If

End Function
于 2013-04-24T08:38:30.187 に答える