- ベストアンサー
ファイルに上書きするとファイルの中身が消えてしまいます。
.NETで、テキストファイルの中身が 30 20 10 と改行されているファイルを読み込み、それを10を15にして再度テキストファイルに書き込みする時に、 Print(a, スコア(DataCounter) + Environment.NewLine) というので書き込んでいるのですが、 追加情報 : 文字列 " " から型 'Double' へのキャストが有効ではありません。 というエラーが出てしまいます。 もしかして、Environment.NewLineっていうのは、文字列にしか使えないのですか?であれば、数値に対するものはあるのでしょうか? 教えていただければ助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>Environment.NewLineっていうのは、文字列にしか使えないのですか? というか、実体が文字列なので文字列以外とどうこうしようというのは ちょっと無理があるような。 > Print(a, スコア(DataCounter) + Environment.NewLine) スコア(DataCounter)を文字列化してやって、& で連結すればよいのではないでしょうか? CStr(スコア(DataCounter)) & Environment.NewLine かな?
その他の回答 (1)
- goosamia
- ベストアンサー率66% (2/3)
System.Environment.NewLineプロパティは実行している環境(OS)に応じた改行文字列を返します。 NewLineプロパティはWindowsでは「キャリッジリターン + ラインフィード」を返しますので、VB.NETでは「vbCrLf」(または、ControlChars.CrLf)、C#では「"\r\n"」と同じになります。 ※「vbCrLf」は「chr(13) & chr(10)」を表す定数です。 >追加情報 : 文字列 "" から型 'Double' へのキャストが有効ではありません。 というエラーを見る限り、 >Print(a, スコア(DataCounter) + Environment.NewLine) の部分でのエラーではなく、 >と改行されているファイルを読み込み、 の部分で読み込んだ後、計算かなにかする時に出ているエラーではないかと思われます。 Cdbl(読み込んだもの) + 5とかやってる部分はありませんか? 一般的には読み込んだものの型や存在が不明な場合は 1.無視する(なかった事にする) 2.任意のものに置き換えて処理続行 3.エラー処理 のような対応をします。 以上。参考になれば。。。
お礼
御回答ありがとうございます。 教えて頂いた通りにやりまして、ちゃんと改行して上書きできるようになりました。 数値を文字列化するというのは知らなかったので、非常に感謝しています。ありがとうございました。