Odczyt pliku ini

char
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szwajcaria
  • Postów: 21
0

Witam, mam taki problem, za pomocą tego kodu(przycisku) zapisuje dwa pliki csv - który nie jest tutaj istotny oraz plik log.ini
Zapisuje się do pliku kilka parametrów, takie jak np. nr COM
Jak zrobić aby po wpisaniu w pliku innego nr. COM, automatycznie się zmienił w programie.

private void bttn1_Click(object sender, EventArgs e)
{
string SendData;

        StreamWriter str = new StreamWriter(txtpath.Text + "/plik.csv");
        SendData = rtfTerminal.Text;
        str.WriteLine(SendData);
        str.Close();

        str = new StreamWriter(txtpath.Text + "/Log.ini");
        //str.WriteLine("Rozpoczecie = "+ DateTime.Now);
        str.WriteLine("COMPort = " + cmbPortName.Text);
        str.WriteLine("BaudRate = " + cmbBaudRate.Text);
        str.WriteLine("Parity = " + cmbParity.Text);
        str.WriteLine("DataBits = " + cmbDataBits.Text);
        str.WriteLine("StopBits = " + cmbStopBits.Text);
        str.WriteLine("Path = " + txtpath.Text);

        str.Close();

        MessageBox.Show("Done", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }

Oraz czy wie ktoś jak zrobić aby automatycznie pliki ini oraz csv zapisywały się w katalogu w którym jest exe ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Jak zrobić aby po wpisaniu w pliku innego nr. COM, automatycznie się zmienił w programie.

Przy uruchamianiu programu parsuj ten plik? :|

Oraz czy wie ktoś jak zrobić aby automatycznie pliki ini oraz csv zapisywały się w katalogu w którym jest exe ?

Zapisywanie takich plików do katalogu z programem jest złym pomysłem: bodajże od Visty+ bez praw administratora nie będziesz miał dostępu do Program Files i/lub Program Files (x86); bezpieczniej byłoby zapisywać w %appdata% lub podobnym.
Aby tego dokonać będziesz potrzebował tego: http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx + nazwy tej zmiennej, np.powyższe appdata.

char
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szwajcaria
  • Postów: 21
0

Przy uruchamianiu programu parsuj ten plik? :|

Możesz to jaśniej wytłumaczyć ? w sensie jak w kodzie powinienem to zrobić

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

No skoro zapisujesz dane do pliku, to wypadałoby je odczytywać, nie sądzisz?
Na 100% w C# istnieje jakaś wbudowana klasa do parsowania INI, a jak nie, to przerzuć się np.na XML.
Btw, nazwa log.ini jest zła, bo źle wskazuje zawartość pliku; config.ini lub coś w tym guście byłoby znacznie lepsze.

D1
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie spotkałem się z bibliotekami do parsowania ini.
Moja rada: zrezygnuj z ini i przerzuć się na xml'a. Stwórz sobie klasę Config, w której będą odpowiednie ustawienia i serializuj i deserializuj ją. Będzie o wiele łatwiej.

char
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szwajcaria
  • Postów: 21
char
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szwajcaria
  • Postów: 21
0
dam1en napisał(a):

Nie spotkałem się z bibliotekami do parsowania ini.
Moja rada: zrezygnuj z ini i przerzuć się na xml'a. Stwórz sobie klasę Config, w której będą odpowiednie ustawienia i serializuj i deserializuj ją. Będzie o wiele łatwiej.

masz gdzies jakis przykład ?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0
Patryk27 napisał(a):

Na 100% w C# istnieje jakaś wbudowana klasa do parsowania INI, a jak nie, to przerzuć się np.na XML.

Wbudowanej biblioteki do ini nie ma, bo to relikt epoki maszyn parowych, ale pewno w necie gdzieś się znajdzie taką.

dam1en napisał(a):

Moja rada: zrezygnuj z ini i przerzuć się na xml'a. Stwórz sobie klasę Config, w której będą odpowiednie ustawienia i serializuj i deserializuj ją. Będzie o wiele łatwiej.

Jeszcze łatwiej będzie użyć wbudowanego mechanizmu. :)

W .NET jest za to wygodny sposób zapisywania ustawień swojej aplikacji w plikach config (które tak naprawdę są zwykłymi xmlami), przy czym format pliku jest właściwie nieistotny, bo plik jest domyślnie opakowany w klasę ustawień.

Zapis:

Kopiuj
Properties.Settings.Default.Wartość = "comcomcom";
Properties.Settings.Default.Save();

Odczyt:

Kopiuj
this.JakieśCoś = Properties.Settings.Default.Wartość;

Więcej: http://msdn.microsoft.com/en-us/library/bb397750.aspx

char
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szwajcaria
  • Postów: 21
0

private void bttn1_Click(object sender, EventArgs e)
{
string SendData;

        StreamWriter str = new StreamWriter(txtpath.Text + "/plik.csv");
        SendData = rtfTerminal.Text;
        str.WriteLine(SendData);
        str.Close();

        str = new StreamWriter(txtpath.Text + "/Log.ini");
        //str.WriteLine("Rozpoczecie = "+ DateTime.Now);
        str.WriteLine("COMPort = " + cmbPortName.Text);
        str.WriteLine("BaudRate = " + cmbBaudRate.Text);
        str.WriteLine("Parity = " + cmbParity.Text);
        str.WriteLine("DataBits = " + cmbDataBits.Text);
        str.WriteLine("StopBits = " + cmbStopBits.Text);
        str.WriteLine("Path = " + txtpath.Text);

        str.Close();

        MessageBox.Show("Done", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }

Nie bardzo rozumiem jak to zastosować do tego

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Wbudowanej biblioteki do ini nie ma, bo to relikt epoki maszyn parowych, ale pewno w necie gdzieś się znajdzie taką.

Pliki INI są przyjazne dla człowieka, jeśli mają być ręcznie edytowane.
W przeciwieństwie do XML, który ani nie jest czytelny, ani łatwo edytowalny (zbyt łatwo rozwalić strukturę), ani łatwo parsowalny (spróbujcie napisać prawidłowy parser...)

Z drugiej strony, parser INI trzeba by napisać, choć nie będzie to takie trudne.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.