• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C# : Zapis tekstu w pliku txt w nowej linii po ponownym otworzeniu programu

Mały hosting, OGROMNE możliwości
0 głosów
3,846 wizyt
pytanie zadane 16 czerwca 2015 w C# przez FredixGaming Nowicjusz (180 p.)

Wykonałem program w C# który odlicza czas co 1 sekundę. Program będzie się włączać wraz z komputerem i będzie ukryty w tray'u. Moje zapytanie dotyczy kodu, który zapisuje dane(czas-label1.Text), ale za każdym razem w nowej linii, gdy się włączy ponownie komputer. Szukałem w internecie takiego kodu, ale nie mogłem znaleść działającego. Byłbym wdzięczny, gdybyś podał, gdzie go mam wkleić.

Oto kod mojego programu:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Timer
{
    public partial class Form1 : Form
    {
        int s = 0;

        public Form1()
        {
            InitializeComponent();
          
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            
            s++;
            string godz, min, sek;
            int godzin, minut, sekund;
            godzin = s / 3600;
            godz = Convert.ToString(godzin);
            if (godzin < 10) 
                godz = 0 + godz;
            minut = (s - godzin * 3600) / 60;
            min = Convert.ToString(minut);
            if (minut < 10)
                min = 0 + min;
            sekund = s - godzin * 3600 - minut * 60;
            sek = Convert.ToString(sekund);
            if (sekund < 10)
                sek = 0 + sek;
            label1.Text = godz + ":" + min + ":" + sek;
        }


        private void start_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

        private void stop_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
        }
       
        
    }
}

Z góry dziękuję Wszystkim za pomoc.

3 odpowiedzi

0 głosów
odpowiedź 16 czerwca 2015 przez Dorion300 Szeryf (90,250 p.)

Może na końcu dodaj takie coś:

label1.Text += godz + ":" + min + ":" + sek + "\n";

 

komentarz 18 czerwca 2015 przez FredixGaming Nowicjusz (180 p.)

Z tym += nie działa poprawnie. Bez tego(+=) też nie działa tak jak chciałem, za każdym razem w pliku tekstowym zastępuję już zapisaną. Oto jak zapisuję tekst do pliku txt:

string[] lines = {label1.Text};

            System.IO.File.WriteAllLines(@"C:\Users\User\Desktop\database.txt", lines);

Nie wiem, czy ten kod powinien być też w timerze czy nie.

0 głosów
odpowiedź 19 czerwca 2015 przez Marek Węglarz Nowicjusz (220 p.)

Jeżeli poprawinie zadasz pytanie to może Ci ktoś odpowie.Chodzi Ci o coś takiego ?

 if(!File.Exists("D:\\t.txt"))
            File.Create("D:\\t.txt");
            StreamWriter s = File.AppendText("D:\\t.txt");
            s.WriteLine("as");
            s.Close();

 

0 głosów
odpowiedź 26 czerwca 2015 przez niezalogowany

Nie bardzo rozumiem. Jeśli chcesz zrobić "dziennik logowania" to niepotrzebnie odliczasz czas. Wystarczy coś takiego:

string date = DateTime.Now.ToString()

Co na wyjściu da Ci zapis w formacie:

6/26/2015 2:58:23 PM

Chociaż wariacji masz więcej:

ToLongDateString();
ToLongTimeString();
ToShortDateString();
ToShortTimeString();

Zapisywanie w pliku do kolejnej linii to też kwestia preferencji. W takiej sytuacji nie twórz zmiennej, tylko od razu wypisuj do pliku. Najłatwiej zrobić to tak:

File.AppendAllText("path/plik.txt", DateTime.Now.ToString() + Environment.NewLine);

Powyższy sposób automatycznie otworzy i zamknie strumienie, a w razie, gdyby plik nie znajdował się w danym miejscu, to go utworzy

 

 

Podobne pytania

0 głosów
1 odpowiedź 421 wizyt
+1 głos
1 odpowiedź 906 wizyt
0 głosów
2 odpowiedzi 3,788 wizyt
pytanie zadane 16 sierpnia 2015 w C i C++ przez mcjulcz44 Użytkownik (810 p.)

93,719 zapytań

142,632 odpowiedzi

323,264 komentarzy

63,266 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...