Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C#] Zapis danych do pliku

Ostatnio zmodyfikowano 2010-06-12 11:06
Autor Wiadomość
Pirotechnik
Temat założony przez niniejszego użytkownika
[C#] Zapis danych do pliku
» 2010-06-09 21:34:41
Mam taki oto taki kod:


using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

public class MainForm : Form
{
    public MainForm()
    {
        Edycja edycja = new Edycja();
        ZapisPliku ZP = new ZapisPliku();

        Controls.Add(edycja.PoleEdycji);

        Text = "Edytorek";
        Height = 530;
        Width = 512;
        MainMenu mm = new MainMenu();

        MenuItem Plik = new MenuItem("Plik");
        MenuItem PlikZakoncz = new MenuItem("Zakończ");
        MenuItem PlikZapisz = new MenuItem("Zapisz/Otwórz/Usuń");

        Menu = mm;
        mm.MenuItems.Add(Plik);
        Plik.MenuItems.Add(PlikZapisz);
        Plik.MenuItems.Add(PlikZakoncz);

        PlikZakoncz.Click += NZakoncz;
        PlikZapisz.Click += ZP.WywolajZapis;
    }

    public void NZakoncz(object sender, EventArgs ea)
    {
        Application.Exit();
    }

    public static void Main()
    {
        Application.Run(new MainForm());
    }
}

public class Edycja : Form // Pole edycji pliku
{
    public TextBox PoleEdycji = new TextBox();

    public Edycja()
    {
        PoleEdycji.Multiline = true; // kilka lini
        PoleEdycji.Height = 470; // rozmiar
        PoleEdycji.Width = 495; // rozmiar
        PoleEdycji.Top = 2; // wspolrzedne
        PoleEdycji.Left = 2; // wspolrzedne
        PoleEdycji.WordWrap = true; // przenoszenie slow
        PoleEdycji.Text += "Wpisz tekst";
    }
}

public class ZapisPliku : Form
{
    public TextBox OperowaniePliku = new TextBox();
    public Label Etykieta = new Label();
    public Button przycisk = new Button();
    public Button otworz = new Button();
    public Button zakoncz = new Button();
    public Button usun = new Button();

    public Form OknoZapisu = new Form();
    Edycja PoleE = new Edycja();

    bool pierwszewlaczenie = false;
    bool udalosie = true;

    public ZapisPliku()
    {
        //Pole wczytania Pliku
        OperowaniePliku.Height = 10;
        OperowaniePliku.Width = 200;
        OperowaniePliku.Multiline = false;
        OperowaniePliku.Top = 31;
        OperowaniePliku.Left = 40;

        //Etykieta
        Etykieta.Top = 17;
        Etykieta.Left = OperowaniePliku.Left;
        Etykieta.Text = "Element docelowy: ";

        //Przycisk
        przycisk.Top = 55;
        przycisk.Left = 74;
        przycisk.Height = 30;
        przycisk.Width = 64;
        przycisk.Text = "Zapisz";

        //otworz
        otworz.Top = 55;
        otworz.Left = 10;
        otworz.Height = 30;
        otworz.Width = 64;
        otworz.Text = "Otwórz";

        //usun
        usun.Top = 55;
        usun.Left = 138;
        usun.Height = 30;
        usun.Width = 64;
        usun.Text = "Usuń";

        //zakoncz
        zakoncz.Top = 55;
        zakoncz.Left = 202;
        zakoncz.Height = 30;
        zakoncz.Width = 64;
        zakoncz.Text = "Zamknij";

        // reszta
        OknoZapisu.Controls.Add(OperowaniePliku);
        OknoZapisu.Controls.Add(Etykieta);
        OknoZapisu.Controls.Add(przycisk);
        OknoZapisu.Controls.Add(zakoncz);
        OknoZapisu.Controls.Add(otworz);
        OknoZapisu.Controls.Add(usun);

        OknoZapisu.Width = 280;
        OknoZapisu.Height = 128;
        OknoZapisu.Text = "Zapisz Plik";
        OknoZapisu.Visible = false;
        OknoZapisu.ShowIcon = false;
        OknoZapisu.ControlBox = false;

        przycisk.Click += FunkcjaZapisu;
        zakoncz.Click += zamknij;
        usun.Click += FunkcjaUsuwania;
    }

    public void WywolajZapis(object sender, EventArgs ea)
    {

        if (pierwszewlaczenie == true)
            OknoZapisu.Show(new ZapisPliku());
        else OknoZapisu.Visible = true;
    }

    public void zamknij(object sender, EventArgs ea)
    {
        OknoZapisu.Visible = false;
    }

    public void FunkcjaZapisu(object sender, EventArgs ea)
    {
           String plik = OperowaniePliku.Lines[0];
            plik += ".txt";

        if (File.Exists(plik)) // od tad
            MessageBox.Show("Plik już istnieje!!", "BŁĄD!!");
        else
        {
            try
            {
                /*String plik = OperowaniePliku.Lines[0];
                plik += ".txt";*/
                StreamWriter sw = new StreamWriter(plik); // tu wyskakuje bład
                    sw.Write(PoleE.PoleEdycji.Text);
                    sw.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("Błąd podczas zapisu pliku!!", "BŁĄD!!");
            }
        } // do tad pewien kolega mi pomógł
    }

    public void FunkcjaUsuwania(object sender, EventArgs ea)
    {
        String nazwapliku = OperowaniePliku.Lines[0];
        nazwapliku += ".txt";
        FileInfo plik = new FileInfo(nazwapliku);

        if (!plik.Exists)
            MessageBox.Show("Błąd podczas usuwania pliku!! Sprawdź czy ścieżka jest właściwa!!", "BŁĄD!!");
        else
        {
            try
            {
                plik.Delete(); // usuniecie pliku
            }
            catch (Exception)
            {
                MessageBox.Show("Plik nie może zostać usunięty!!", "BŁĄD!!");
                udalosie = false;
            }

            if (udalosie == true)
            {
                MessageBox.Show("Usunięto pomyślnie");
            }
            udalosie = true;
        }
    }

    public void FunkcjaOtwierania(object sender, EventArgs ea)
    {
        String nazwapliku = OperowaniePliku.Lines[0];
        nazwapliku += ".txt";

        try
        {
            StreamReader plik = new StreamReader(nazwapliku);

            PoleE.PoleEdycji.Text = plik.ReadToEnd();
            plik.Close();
            OknoZapisu.Update();
        }
        catch (Exception)
        {
            MessageBox.Show("Błąd podczas otwierania pliku!! Sprawdź czy ścieżka jest właściwa!!", "BŁĄD!!");
        }
    }
}

Problem w tym że, nie dam rady zapisać danych do pliku (z TextBox'a w oknie roboczym) jest to program napisany w C# więc nie wiem czy ktoś pomoże... Pytałem na innych forach ale Oni też mi nie umieją pomóc więc kieruje się do was... Paczyłem też na google i teoretycznie wszystko powinno grać ale w praktyce tak nie jest... Prosze o pomoc
P-17850
filipesq
» 2010-06-09 21:36:47
darkcult.gamedev.pl - tam masz wszystko wyjaśnione, nawet gotowe funkcje...
P-17852
Pirotechnik
Temat założony przez niniejszego użytkownika
» 2010-06-09 21:39:29
Obawiam się że to strona o C++....
P-17853
Elaine
» 2010-06-09 21:40:41
filipesq, a wiesz, że temat jest o C#?
P-17854
filipesq
» 2010-06-09 21:44:44
Przepraszam, nie doczytałem :(
P-17855
Pirotechnik
Temat założony przez niniejszego użytkownika
» 2010-06-09 22:58:52
Ma ktoś jakiś pomysł??
P-17858
DejaVu
» 2010-06-09 23:05:26
Cóż... ja z chęcią odeślę na inne forum, ponieważ C# się nie zajmujemy i najwyraźniej nie ma tutaj osób, które by go namiętnie używały. Dane da się zapisać do pliku obojętnie czy są one w Textboxie czy też nie - musisz po prostu poczytać jak to zrobić.
P-17859
kitowiec112
» 2010-06-10 17:33:05
Wszystko ma być napisane "z palca"? Nie możesz użyć kontrolek?
P-17869
« 1 » 2
  Strona 1 z 2 Następna strona