• 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

Object Storage Arubacloud
0 głosów
3,285 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ź 261 wizyt
+1 głos
1 odpowiedź 678 wizyt
0 głosów
2 odpowiedzi 3,446 wizyt
pytanie zadane 16 sierpnia 2015 w C i C++ przez mcjulcz44 Użytkownik (810 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...