none
text file讀檔和每隔幾分鐘或幾秒問題 RRS feed

  • 問題

  •  

    不好意思請教各位

    第一:

    就是我有一個純文字檔(test.txt)裡面有很多行(以換行為一個段落)

    然後我想要做的是"只把第一行"放到Receive.textBox,從"第二行開始到結束"都放在Content.textBox裡面

    我該怎麼做呢?

    Private Sub Mail_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            Dim myStreamReader As StreamReader
            Dim myInputString As String
            Try
                myStreamReader = File.OpenText("test.txt")
                Receive.Clear() '清除文字方塊內容
                myInputString = myStreamReader.ReadLine()
                Receive.Text = myInputString
            Catch ex As Exception
                MessageBox.Show("檔案無法開啟" + ex.Message)
            End Try

    End Sub

    第二:

    然後我還想完成每隔幾分鐘就去讀這個test.txt一次

    也是一樣的讀進來成第一個問題所問的內容

    這樣的話我該怎麼做呢?我是打算寫在Load的事件裡

    就是變成一開啟這個程式,他就每隔幾分鐘幫我做這重複的事情^^

     

    以上謝謝大家

    2008年3月29日 上午 08:44

解答

  • using System;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                Timer timer1 = new Timer();
                timer1.Interval = 60000; // 60 秒
                timer1.Enabled = true;
                timer1.Tick += timer1_Tick;
     
                timer1_Tick(sender, e);
            }
     
            private void timer1_Tick(object sender, EventArgs e)
            {
                StreamReader sr = new StreamReader("test.txt", Encoding.Default);
                ReceiveTextBox.Text = sr.ReadLine();
                ContentTextBox.Text = sr.ReadToEnd();
                sr.Close();
            }
        }
    }
    2008年3月29日 上午 10:48

所有回覆

  • using System;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                Timer timer1 = new Timer();
                timer1.Interval = 60000; // 60 秒
                timer1.Enabled = true;
                timer1.Tick += timer1_Tick;
     
                timer1_Tick(sender, e);
            }
     
            private void timer1_Tick(object sender, EventArgs e)
            {
                StreamReader sr = new StreamReader("test.txt", Encoding.Default);
                ReceiveTextBox.Text = sr.ReadLine();
                ContentTextBox.Text = sr.ReadToEnd();
                sr.Close();
            }
        }
    }
    2008年3月29日 上午 10:48
  • 非常感謝您的回覆

    不過我看不太懂他的意思

    我是用vb.net開發的

    除了vb之外的語法我就@@"

    2008年3月29日 下午 12:43
  • Convert C# to VB.NET
    Imports System
    Imports System.IO
    Imports System.Text
    Imports System.Windows.Forms

    Namespace WindowsFormsApplication1
    Public Partial Class Form1
    Inherits Form

    Public Sub New()
    InitializeComponent()
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    Dim timer1 As New Timer()
    timer1.Interval = 60000
    ' 60 秒
    timer1.Enabled = True
    AddHandler timer1.Tick, AddressOf timer1_Tick

    timer1_Tick(sender, e)
    End Sub

    Private Sub timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
    Dim sr As New StreamReader("test.txt", Encoding.[Default])
    ReceiveTextBox.Text = sr.ReadLine()
    ContentTextBox.Text = sr.ReadToEnd()
    sr.Close()
    End Sub
    End Class
    End Namespace

    2008年3月29日 下午 12:59
  • 我在timer1_Tick裡面加了一行File.Delete("test.txt")這個指令

    不過可想而知一定會出錯XD

    後來我是想要把test.txt讀進來之後做一些動作(計算完成績之後再寄出去)

    等動作執行完就把test.txt刪除

    所以現在的問題是,我該怎麼做才能讓時間繼續倒數

    如果有出現test.txt就執行我要的動作

    沒有出現test.txt就不做任何事呢?時間還是繼續倒數的

    再次的麻煩你了  謝謝

    2008年3月29日 下午 02:08
  •  hao jie fang 寫信:

    我在timer1_Tick裡面加了一行File.Delete("test.txt")這個指令

    不過可想而知一定會出錯XD

    後來我是想要把test.txt讀進來之後做一些動作(計算完成績之後再寄出去)

    等動作執行完就把test.txt刪除

    所以現在的問題是,我該怎麼做才能讓時間繼續倒數

    如果有出現test.txt就執行我要的動作

    沒有出現test.txt就不做任何事呢?時間還是繼續倒數的

    再次的麻煩你了  謝謝



    先判斷 test.txt 檔案是否存在...
    存在就做讀檔的動作,然後做你想做的功能,再刪除檔案...
    不存在就跳出 tick 事件即可,timer 自己會繼續讀秒...

    2008年3月29日 下午 03:46