質問するログイン新規登録

回答編集履歴

2

コメント追加

2018/12/06 06:51

投稿

kenshirou
kenshirou

スコア772

answer CHANGED
@@ -16,6 +16,7 @@
16
16
  FName = LogPath & "\TEST_" & HostName & "_" & Now.ToString("yyyyMMdd") & ".log"
17
17
  'FName = System.IO.Path.Combine(LogPath, "TEST_" & HostName & "_" & Now.ToString("yyyyMMdd") & ".log") 'こちらをおススメ
18
18
 
19
+ 'エンコードをShift_JISとした場合
19
20
  Using sw As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(FName, True, System.Text.Encoding.GetEncoding("Shift_JIS"))
20
21
  sw.Write(Now.ToString("yy/MM/dd HH:mm:ss") & vbCrLf)
21
22
  'sw.WriteLine(Now.ToString("yy/MM/dd HH:mm:ss")) '一行追加としたい場合はこちらをおススメ

1

コードの誤りを修正

2018/12/06 06:51

投稿

kenshirou
kenshirou

スコア772

answer CHANGED
@@ -2,6 +2,7 @@
2
2
  (そもそも、ファイルオープン数に明確な制限があった時からあるものです。)
3
3
  Microsoftも、よりI/Oアクセスのパフォーマンスの高いMy.Computer.FileSystemの使用を勧めているようです。
4
4
  例示のTimer1_Tickイベント内のファイル書込部をMy.Computer.FileSystemを使って書くと、例えば以下のようになります。
5
+ ≪コードの誤りを修正しました。≫
5
6
  ```VB
6
7
  Private Sub Timer1_Tick( sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
7
8
 
@@ -15,7 +16,7 @@
15
16
  FName = LogPath & "\TEST_" & HostName & "_" & Now.ToString("yyyyMMdd") & ".log"
16
17
  'FName = System.IO.Path.Combine(LogPath, "TEST_" & HostName & "_" & Now.ToString("yyyyMMdd") & ".log") 'こちらをおススメ
17
18
 
18
- Using sw As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter("", True, System.Text.Encoding.GetEncoding("Shift_JIS"))
19
+ Using sw As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(FName, True, System.Text.Encoding.GetEncoding("Shift_JIS"))
19
20
  sw.Write(Now.ToString("yy/MM/dd HH:mm:ss") & vbCrLf)
20
21
  'sw.WriteLine(Now.ToString("yy/MM/dd HH:mm:ss")) '一行追加としたい場合はこちらをおススメ
21
22
  End Using