[リストへもどる]
一括表示

投稿時間:2004/02/13(Fri) 21:18
投稿者名:けいじ
URL :
タイトル:
文字ではなくて数値の値のようになるのですが。
初めまして。素人的質問をお許しください。さて、今、納品書関係のプログラムを作っているのですが、シーケンシャルファイルの読み込みの際、テキストデータ(カンマで区切られている)を読み込み、テキストボックスに表示させるようにしています。ところが、098-XXなどのような電話番号が、98だけ読み込まれて、表示してしまうのです。読み込む際の変数は宣言でAs String としているのですが、同じような他のテキストデータはきちんと、ハイフンや0を読み込んでくれます。このプログラムは読み込みの成功したプログラムを雛形に作っているのですが、お手上げの状態です。
ちなみに以下のような感じで読み込んでいるのですが、読み込み直後から0やハイフンが消えているのです。どなたか、お知恵を拝借できればありがたく存じます。

Open "c:\juchu.txt" For Input As #filenum
Do While EOF(filenum) = False

Input #filenum, juchuTel

List1.AddItem juchuTel
Loop

Close #filenum

投稿時間:2004/02/13(Fri) 22:58
投稿者名:XYZ
Eメール:
URL :
タイトル:
Re: 文字ではなくて数値の値のようになるのですが。
Option Explicitを書いていないのでjuchuTelが数値変数になっているのでは?
適当なところで改行してくださいネ・・

投稿時間:2004/02/15(Sun) 11:00
投稿者名:けいじ
URL :
タイトル:
Re^2: 文字ではなくて数値の値のようになるのですが。
> Option Explicitを書いていないのでjuchuTelが数値変数になっているのでは?
> 適当なところで改行してくださいネ・・

ありがとうございます。改善できました。原因は変数の宣言の仕方で、Dimの後に
26個の変数をカンマでつなげて、最後にAs Stringと入れていたのですが
1個ずつ As String を変数につけたら、うまくいきました。アドバイスを感謝します。

投稿時間:2004/02/23(Mon) 13:28
投稿者名:ひでかず
Eメール:
URL :
タイトル:
Re^3: 文字ではなくて数値の値のようになるのですが。
> > Option Explicitを書いていないのでjuchuTelが数値変数になっているのでは?
> > 適当なところで改行してくださいネ・・
>
> ありがとうございます。改善できました。原因は変数の宣言の仕方で、Dimの後に
> 26個の変数をカンマでつなげて、最後にAs Stringと入れていたのですが
> 1個ずつ As String を変数につけたら、うまくいきました。アドバイスを感謝します。

宣言でカンマで続けて書いた場合、最後の変数のみ型を指定していることになります。
例えば、dim test,test2,test3 as string、とした場合、testとtest2は型を省略していると
見なされ自動的にvariant(違かったかも?)になり、test3だけがstring型となります。

投稿時間:2004/02/23(Mon) 18:57
投稿者名:Kusakabe
Eメール:
URL :
タイトル:
Re^4: 文字ではなくて数値の値のようになるのですが。
> 宣言でカンマで続けて書いた場合、最後の変数のみ型を指定していることになります。
> 例えば、dim test,test2,test3 as string、とした場合、testとtest2は型を省略していると
> 見なされ自動的にvariant(違かったかも?)になり、test3だけがstring型となります。

常識ですね :)
我が社にVB歴3年の先輩がいるのですが、これをやってる人がいました。
基本がわかっていない人はバグ生産機になりかねません。
VB半年でC++専門の修正するこちらの身にもなってほしいですね。
まあ、ここまでは愚痴なんですが・・・上の宣言方法で1つ覚えておくといいこともあります。
VB.NETからは、宣言方法がC++に近づいたので、バリアント型にはならないはずです。
Cライクに(int i, j, k;)みたいにできるわけですね。