Bardzo prosty programik posiadający dane na temat sprzętu komputerowego, taka mała pseudo baza danych.
Cały projekt dostępny do pobrania/podglądu - dysk google
Poniżej kawałek kodu:
ZestawKomputerowy.h
#pragma onceForm1.h
ref class ZestawKomputerowy //klasa przechowująca dane dotyczące wpisów w obiekcie
{
public:
System::String^ pracownik; //imie i nazwisko pracownika
System::String^ numer; //numer zestawu
System::String^ procesor;
System::String^ ram;
System::String^ dysk;
System::String^ monitor;
ZestawKomputerowy() //domyślny konstruktor klasy ZestawKomputerowy
{
}
//konstruktor klasy ZestawKomputerowy przypisujący wszystkie stringi do obiektu
ZestawKomputerowy(System::String^ pracownik,System::String^ numer, System::String^ procesor, System::String^ ram, System::String^ dysk, System::String^ monitor)
{
this->pracownik = pracownik;
this->numer = numer;
this->procesor = procesor;
this->ram = ram;
this->dysk = dysk;
this->monitor = monitor;
}
~ZestawKomputerowy(void) //destruktor klasy ZestawKomputerowy
{
}
//metoda klasy ZestawKomputerowy zapisująca zmiany podane jako argumenty
void EdytujZapisz(System::String^ pracownik,System::String^ numer, System::String^ procesor, System::String^ ram, System::String^ dysk, System::String^ monitor)
{
this->pracownik = pracownik;
this->numer = numer;
this->procesor = procesor;
this->ram = ram;
this->dysk = dysk;
this->monitor = monitor;
}
};
#pragma once
#include "ZestawKomputerowy.h"
namespace EwidencjaSprzętuKomputerowego {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form //klasa formy
{
public:
System::Collections::Generic::List<ZestawKomputerowy^>^ lista; //wskaźnik na listę obiektów klasy ZestawKomputerowy
ZestawKomputerowy^ zestaw; //wskaźnik na pomocniczy obiekt klasy ZestawKomputerowy
bool czy_nowy_wpis; //zmienna pomocnicza określająca czy podczas nowy obiekt ma zostać utworzony, czy ma być zapis danych do istniejącego obiektu
private: System::Windows::Forms::ErrorProvider^ errorProvider1; //do wyświetlania błędów przy wpisach
public:
Form1(void) //konstruktor formy
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
this->czy_nowy_wpis = false; //ustawiam domyślnie false zeby obiekt nie był dodawany
this->lista = gcnew System::Collections::Generic::List<ZestawKomputerowy^>(); //tworze nowy obiekt klasy lista przechowujący obiekty klasy ZestawKomputerowy
this->OdczytajPlik("dane.txt"); //wywołuję metodę klasy form1 która służy do odczytania danych z pliku
for each(ZestawKomputerowy^ tmp in this->lista) //dla każdego elementu znajdującego się w liście
this->listBox1->Items->Add(tmp->numer); //wyświetla w listboxie jego numer ewidencyjny
if(this->lista->Count>0) //jeżeli są jakieś obiekty w liście (licznik listy >0 )
this->listBox1->SelectedIndex = 0; //to zaznacza pierwszy element
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1() //destruktor formy
{
this->ZapiszPlik("dane.txt"); //po zgaszeniu aplikacji następuje zapis danych do pliku
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Label^ label1;
protected:
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::Label^ label5;
private: System::Windows::Forms::Label^ label6;
private: System::Windows::Forms::TextBox^ textBox_ImieNazwisko;
private: System::Windows::Forms::TextBox^ textBox_NumerEwidencyjny;
private: System::Windows::Forms::TextBox^ textBox_Procesor;
private: System::Windows::Forms::TextBox^ textBox_Ram;
private: System::Windows::Forms::TextBox^ textBox_Dysk;
private: System::Windows::Forms::TextBox^ textBox_Monitor;
private: System::Windows::Forms::GroupBox^ groupBox1;
private: System::Windows::Forms::ListBox^ listBox1;
private: System::Windows::Forms::Button^ button_Nowy;
private: System::Windows::Forms::Button^ button_Zapisz;
private: System::Windows::Forms::Button^ button_Anuluj;
private: System::Windows::Forms::Button^ button_Usun;
private: System::ComponentModel::IContainer^ components;
private:
/// <summary>
/// Required designer variable.
/// </summary>
#pragma region Windows Form Designer generated code //z automatu się tworzy podczas pracy w Form designerze
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->label3 = (gcnew System::Windows::Forms::Label());
this->label4 = (gcnew System::Windows::Forms::Label());
this->label5 = (gcnew System::Windows::Forms::Label());
this->label6 = (gcnew System::Windows::Forms::Label());
this->textBox_ImieNazwisko = (gcnew System::Windows::Forms::TextBox());
this->textBox_NumerEwidencyjny = (gcnew System::Windows::Forms::TextBox());
this->textBox_Procesor = (gcnew System::Windows::Forms::TextBox());
this->textBox_Ram = (gcnew System::Windows::Forms::TextBox());
this->textBox_Dysk = (gcnew System::Windows::Forms::TextBox());
this->textBox_Monitor = (gcnew System::Windows::Forms::TextBox());
this->groupBox1 = (gcnew System::Windows::Forms::GroupBox());
this->listBox1 = (gcnew System::Windows::Forms::ListBox());
this->button_Nowy = (gcnew System::Windows::Forms::Button());
this->button_Zapisz = (gcnew System::Windows::Forms::Button());
this->button_Anuluj = (gcnew System::Windows::Forms::Button());
this->button_Usun = (gcnew System::Windows::Forms::Button());
this->errorProvider1 = (gcnew System::Windows::Forms::ErrorProvider(this->components));
this->groupBox1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->errorProvider1))->BeginInit();
this->SuspendLayout();
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(195, 12);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(78, 13);
this->label1->TabIndex = 0;
this->label1->Text = L"Imię i nazwisko";
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(195, 57);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(99, 13);
this->label2->TabIndex = 1;
this->label2->Text = L"Numer ewidencyjny";
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(43, 26);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(49, 13);
this->label3->TabIndex = 2;
this->label3->Text = L"Procesor";
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(63, 51);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(29, 13);
this->label4->TabIndex = 3;
this->label4->Text = L"Ram";
//
// label5
//
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(61, 77);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(31, 13);
this->label5->TabIndex = 4;
this->label5->Text = L"Dysk";
//
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(50, 103);
this->label6->Name = L"label6";
this->label6->Size = System::Drawing::Size(42, 13);
this->label6->TabIndex = 5;
this->label6->Text = L"Monitor";
//
// textBox_ImieNazwisko
//
this->textBox_ImieNazwisko->Location = System::Drawing::Point(198, 28);
this->textBox_ImieNazwisko->Name = L"textBox_ImieNazwisko";
this->textBox_ImieNazwisko->Size = System::Drawing::Size(195, 20);
this->textBox_ImieNazwisko->TabIndex = 7;
//
// textBox_NumerEwidencyjny
//
this->textBox_NumerEwidencyjny->Location = System::Drawing::Point(300, 54);
this->textBox_NumerEwidencyjny->Name = L"textBox_NumerEwidencyjny";
this->textBox_NumerEwidencyjny->Size = System::Drawing::Size(93, 20);
this->textBox_NumerEwidencyjny->TabIndex = 8;
//
// textBox_Procesor
//
this->textBox_Procesor->Location = System::Drawing::Point(97, 23);
this->textBox_Procesor->Name = L"textBox_Procesor";
this->textBox_Procesor->Size = System::Drawing::Size(90, 20);
this->textBox_Procesor->TabIndex = 9;
//
// textBox_Ram
//
this->textBox_Ram->Location = System::Drawing::Point(97, 48);
this->textBox_Ram->Name = L"textBox_Ram";
this->textBox_Ram->Size = System::Drawing::Size(90, 20);
this->textBox_Ram->TabIndex = 10;
//
// textBox_Dysk
//
this->textBox_Dysk->Location = System::Drawing::Point(97, 74);
this->textBox_Dysk->Name = L"textBox_Dysk";
this->textBox_Dysk->Size = System::Drawing::Size(89, 20);
this->textBox_Dysk->TabIndex = 11;
//
// textBox_Monitor
//
this->textBox_Monitor->Location = System::Drawing::Point(97, 100);
this->textBox_Monitor->Name = L"textBox_Monitor";
this->textBox_Monitor->Size = System::Drawing::Size(89, 20);
this->textBox_Monitor->TabIndex = 12;
//
// groupBox1
//
this->groupBox1->Controls->Add(this->textBox_Monitor);
this->groupBox1->Controls->Add(this->textBox_Dysk);
this->groupBox1->Controls->Add(this->textBox_Ram);
this->groupBox1->Controls->Add(this->textBox_Procesor);
this->groupBox1->Controls->Add(this->label6);
this->groupBox1->Controls->Add(this->label5);
this->groupBox1->Controls->Add(this->label4);
this->groupBox1->Controls->Add(this->label3);
this->groupBox1->Location = System::Drawing::Point(198, 80);
this->groupBox1->Name = L"groupBox1";
this->groupBox1->Size = System::Drawing::Size(222, 154);
this->groupBox1->TabIndex = 13;
this->groupBox1->TabStop = false;
this->groupBox1->Text = L"Komputer";
//
// listBox1
//
this->listBox1->FormattingEnabled = true;
this->listBox1->Location = System::Drawing::Point(12, 12);
this->listBox1->Name = L"listBox1";
this->listBox1->Size = System::Drawing::Size(154, 303);
this->listBox1->TabIndex = 14;
this->listBox1->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::listBox1_SelectedIndexChanged);
//
// button_Nowy
//
this->button_Nowy->Location = System::Drawing::Point(12, 321);
this->button_Nowy->Name = L"button_Nowy";
this->button_Nowy->Size = System::Drawing::Size(74, 32);
this->button_Nowy->TabIndex = 15;
this->button_Nowy->Text = L"Nowy";
this->button_Nowy->UseVisualStyleBackColor = true;
this->button_Nowy->Click += gcnew System::EventHandler(this, &Form1::button_Nowy_Click);
//
// button_Zapisz
//
this->button_Zapisz->Location = System::Drawing::Point(198, 262);
this->button_Zapisz->Name = L"button_Zapisz";
this->button_Zapisz->Size = System::Drawing::Size(67, 32);
this->button_Zapisz->TabIndex = 16;
this->button_Zapisz->Text = L"Zapisz";
this->button_Zapisz->UseVisualStyleBackColor = true;
this->button_Zapisz->Click += gcnew System::EventHandler(this, &Form1::button_Zapisz_Click);
//
// button_Anuluj
//
this->button_Anuluj->Location = System::Drawing::Point(271, 262);
this->button_Anuluj->Name = L"button_Anuluj";
this->button_Anuluj->Size = System::Drawing::Size(68, 32);
this->button_Anuluj->TabIndex = 17;
this->button_Anuluj->Text = L"Anuluj";
this->button_Anuluj->UseVisualStyleBackColor = true;
this->button_Anuluj->Click += gcnew System::EventHandler(this, &Form1::button_Anuluj_Click);
//
// button_Usun
//
this->button_Usun->Location = System::Drawing::Point(92, 321);
this->button_Usun->Name = L"button_Usun";
this->button_Usun->Size = System::Drawing::Size(74, 32);
this->button_Usun->TabIndex = 18;
this->button_Usun->Text = L"Usuń";
this->button_Usun->UseVisualStyleBackColor = true;
this->button_Usun->Click += gcnew System::EventHandler(this, &Form1::button_Usun_Click);
//
// errorProvider1
//
this->errorProvider1->ContainerControl = this;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(432, 357);
this->Controls->Add(this->button_Usun);
this->Controls->Add(this->button_Anuluj);
this->Controls->Add(this->button_Zapisz);
this->Controls->Add(this->button_Nowy);
this->Controls->Add(this->listBox1);
this->Controls->Add(this->groupBox1);
this->Controls->Add(this->textBox_NumerEwidencyjny);
this->Controls->Add(this->textBox_ImieNazwisko);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Name = L"Form1";
this->Text = L"Ewidencja sprzętu komputerowego";
this->groupBox1->ResumeLayout(false);
this->groupBox1->PerformLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->errorProvider1))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void button_Nowy_Click(System::Object^ sender, System::EventArgs^ e)
{
this->czy_nowy_wpis = true; //ustawiam zmienną jako dodanie nowego wpisu
this->CzyscPolaFormularza(); //czyszczę pola formularza poprzez wywołanie metody klasy form1
this->listBox1->Enabled = false; //wyłączam aktywność listboxa - zeby nie dało się kliknąć na jakiś inny wpis
this->button_Nowy->Enabled = false; //wyłączam klawisz Nowy aby nie dało się ponownie go nacisnąć jeśli już został naciśnięty
this->SprawdzPola(); //wywołuje metodę klasy form1 sprawdzającą czy pola nie są puste
}
private: System::Void button_Anuluj_Click(System::Object^ sender, System::EventArgs^ e)
{
this->listBox1->Enabled = true; //załączam listboxa z powrotem
this->button_Nowy->Enabled = true; //włączam przycisk Nowy
this->CzyscPolaFormularza(); //czyszczę pola formularza
this->errorProvider1->Clear(); //czyszczę stan sprawdzania pól
this->czy_nowy_wpis = false; //ustawiam na false jako że wpis nie jest dodawany
if(this->lista->Count>0) //jeżeli lista ma jakieś elementy
{
this->listBox1->SelectedIndex = 0; //zaznaczam pierwszy
this->PokazWybrany(this->lista[0]); //i go wyświetlam wywołując metodę klasy form1 podając jako argument wskaśnik na ten element
}
}
private: System::Void button_Zapisz_Click(System::Object^ sender, System::EventArgs^ e)
{
if(this->lista->Count==0) //jeżeli w liście nie ma żadnego elementu (a nie był nacisnięty przycisk Nowy)
{
this->czy_nowy_wpis = true; //to ustawiam zmienną jako true zeby dodało nowy wpis
}
if(false==this->SprawdzPola()) //jeżeli nie będzie żadnego pustego pola
{
if(this->czy_nowy_wpis) //jeżeli ma zostać dodany nowy wpis
{ //to tworzę nowy obiekt wywołując konstruktor, pobierając tekst z pól formularza i przypisuje wskaźnik na obiekt do zmiennej pomocniczej
this->zestaw = gcnew ZestawKomputerowy(this->textBox_ImieNazwisko->Text, this->textBox_NumerEwidencyjny->Text, this->textBox_Procesor->Text, this->textBox_Ram->Text, this->textBox_Dysk->Text, this->textBox_Monitor->Text);
this->lista->Add(this->zestaw); //dodaję ten obiekt do listy
this->czy_nowy_wpis = false; //resetuję zmienną jako że obiekt został dodany
}
else if(this->listBox1->SelectedItem!=nullptr) // w przeciwnym wypadku jeżeli jakiś numer w listboxie został zaznaczony
this->zestaw->EdytujZapisz(this->textBox_ImieNazwisko->Text, this->textBox_NumerEwidencyjny->Text, this->textBox_Procesor->Text, this->textBox_Ram->Text, this->textBox_Dysk->Text, this->textBox_Monitor->Text); //pobieram dane i zapisuję jako edycja
else //lub w jeszcze innym wypadku nieokreślonym - traktuję to jako dodawanie nowego wpisu
{
this->zestaw = gcnew ZestawKomputerowy(this->textBox_ImieNazwisko->Text, this->textBox_NumerEwidencyjny->Text, this->textBox_Procesor->Text, this->textBox_Ram->Text, this->textBox_Dysk->Text, this->textBox_Monitor->Text);
this->lista->Add(this->zestaw);
this->czy_nowy_wpis = false;
}
this->listBox1->Enabled = true; //załączam listboxa z powrotem
this->button_Nowy->Enabled = true; //przycisk Nowy też
this->CzyscPolaFormularza(); //czyszczę pola
this->listBox1->Items->Clear(); //czyszczę pola listboxa
for each(ZestawKomputerowy^ tmp in this->lista) //dla każdego obiektu klasy ZestawKomputerowy w liscie
this->listBox1->Items->Add(tmp->numer); //dodaję jako numer ewidencyjny do listboxa
if(this->lista->Count>0) //jeżeli coś jest w liscie
{
this->listBox1->SelectedIndex = 0; //to ustawiam zaznaczenie na pierwszy element
}
}
}
private: System::Void button_Usun_Click(System::Object^ sender, System::EventArgs^ e)
{
if(this->listBox1->SelectedItem!=nullptr) //jeżeli coś zostało zaznaczone w listboxie
{
System::String^ nazwa; //zmienna pomocnicza przechowująca nazwę
nazwa = this->listBox1->SelectedItem->ToString(); //przypisuję nazwę - numer ewidencyjny zaznaczonego stringa
for each(ZestawKomputerowy^ tmp in this->lista)
{ //przeszukuję listę
if(this->lista->Equals(nazwa,tmp->numer))//jeżeli numer identyfikacyjny zostanie znaleziony w liscie
{
this->lista->Remove(tmp); //usuwam ten obiekt z listy
break; //przerywam pętlę
}
}
this->listBox1->Items->Clear(); //czyszczę listboxa
for each(ZestawKomputerowy^ tmp in this->lista) //ładuję do niego obecny stan listy
this->listBox1->Items->Add(tmp->numer);
if(this->lista->Count>0) //jeżeli coś jest w liscie
{
this->listBox1->SelectedIndex = 0; // to zaznaczam pierwszy element w listboxie
}
}
}
public: void CzyscPolaFormularza(void) //czysci pola tekstowe formularza
{
this->textBox_ImieNazwisko->Clear();
this->textBox_NumerEwidencyjny->Clear();
this->textBox_Procesor->Clear();
this->textBox_Ram->Clear();
this->textBox_Dysk->Clear();
this->textBox_Monitor->Clear();
return;
}
public: void PokazWybrany(ZestawKomputerowy^ wybrany) //wyświetla w textboxach dane obiektu klasy ZestawKomputerowy którego wskaźnik jest podawany jako argument tej metody
{
if(wybrany!=nullptr) //jeżeli wybrany nie jest null pointerem
{
this->textBox_ImieNazwisko->Text = wybrany->pracownik->ToString();
this->textBox_NumerEwidencyjny->Text = wybrany->numer->ToString();
this->textBox_Procesor->Text = wybrany->procesor->ToString();
this->textBox_Ram->Text = wybrany->ram->ToString();
this->textBox_Dysk->Text = wybrany->dysk->ToString();
this->textBox_Monitor->Text = wybrany->monitor->ToString();
}
return;
}
private: System::Void listBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e)
{ //jeżeli index w listboxie zostanie zmieniony
this->zestaw = nullptr; //przypisuje pusty wskaźnik do zmiennej pomocniczej zeby nie było np problemów z edycją
if(this->listBox1->SelectedItem!=nullptr) //jeżeli jest coś zaznaczone
{
System::String^ nazwa;
nazwa = this->listBox1->SelectedItem->ToString(); //przypisuję zaznaczony text w listboxie
for each(ZestawKomputerowy^ tmp in this->lista)
{ //przeszukuję listę
if(this->lista->Equals(nazwa,tmp->numer)) //jeśli znajdę element który został zaznaczony
{
this->zestaw = tmp; //do zmiennej pomocniczej przypisuję znaleziony wskaźnik na obiekt
break; //przerywam pętlę
}
}
this->PokazWybrany(this->zestaw); //pokazuje w formularzu dane tego obiektu
}
}
public: bool SprawdzPola(void)
{
bool error = false; //zmienna pomocnicza określająca czy jest gdziekolwiek błąd, false -oznacza brak błędu
//każde pole musi być zapisane jakimkolwiek tekstem
if (this->textBox_ImieNazwisko->Text->Equals("")) //jeżeli textbox jest pusty
{
this->errorProvider1->SetError(this->textBox_ImieNazwisko, "Uzupełnij wpis!");//ustawia dla tego pola błąd
error = true;//i zmienia na true czyli jest błąd
}
else //w przeciwnym wypadku
this->errorProvider1->SetError(this->textBox_ImieNazwisko, ""); //czyści stan błędu dla obecnego elementu
//itd . . .
if (this->textBox_NumerEwidencyjny->Text->Equals(""))
{
this->errorProvider1->SetError(this->textBox_NumerEwidencyjny, "Uzupełnij wpis!");
error = true;
}
else
this->errorProvider1->SetError(this->textBox_NumerEwidencyjny, "");
if (this->textBox_Procesor->Text->Equals(""))
{
this->errorProvider1->SetError(this->textBox_Procesor, "Uzupełnij wpis!");
error = true;
}
else
this->errorProvider1->SetError(this->textBox_Procesor, "");
if (this->textBox_Ram->Text->Equals(""))
{
this->errorProvider1->SetError(this->textBox_Ram, "Uzupełnij wpis!");
error = true;
}
else
this->errorProvider1->SetError(this->textBox_Ram, "");
if (this->textBox_Dysk->Text->Equals(""))
{
this->errorProvider1->SetError(this->textBox_Dysk, "Uzupełnij wpis!");
error = true;
}
else
this->errorProvider1->SetError(this->textBox_Dysk, "");
if (this->textBox_Monitor->Text->Equals(""))
{
this->errorProvider1->SetError(this->textBox_Monitor, "Uzupełnij wpis!");
error = true;
}
else
this->errorProvider1->SetError(this->textBox_Monitor, "");
return error; //po zakończeniu zwraca stan błędu. Jesli nie było zadnego błędu to pozostaje false.
}
public: void ZapiszPlik(System::String^ nazwa)
{
System::IO::StreamWriter^ zapis; //wskaźnik na strumień zapisujący
System::String^ linia; //string przechowujący linię która będzie zapisana
zapis = gcnew System::IO::StreamWriter(nazwa); //otwieram strumień zapisu o podanej scieżce w arguencie tej metody
for each(ZestawKomputerowy^ tmp in this->lista) //dla każdego obiektu w liscie
{
linia = tmp->pracownik+"\t"+tmp->numer+"\t"+tmp->procesor+"\t"+tmp->ram+"\t"+tmp->dysk+"\t"+tmp->monitor+"\t"; //do linii przypisuję dane w odpowiedniej kolejnosci i oddzielam tabulatorami każdą daną
zapis->WriteLine(linia); //zapisuję tą linię do pliku
}
zapis->Close(); //zamykam strumień
}
public: void OdczytajPlik(System::String^ nazwa)
{
if(System::IO::File::Exists(nazwa)) //jeżeli plik o podanej scieżce istnieje
{
System::IO::StreamReader^ odczyt; //strumień odczytu
System::String ^linia, ^pracownik, ^numer, ^procesor, ^dysk, ^ram, ^monitor;
odczyt = gcnew System::IO::StreamReader(nazwa); //otwieram strumień odczytu o podanej scieżce
while(linia = odczyt->ReadLine())//dopóki są linie w pliku, przypisuję je do zmiennej linia
{
pracownik = linia->Substring(0, linia->IndexOf("\t")); //pobieram pierwszą część tekstu do zmiennej
linia = linia->Remove(0, linia->IndexOf("\t")+1); //kasuję pobraną część tekstu i tabulator
numer = linia->Substring(0, linia->IndexOf("\t"));//itd
linia = linia->Remove(0, linia->IndexOf("\t")+1);
procesor = linia->Substring(0, linia->IndexOf("\t"));
linia = linia->Remove(0, linia->IndexOf("\t")+1);
ram = linia->Substring(0, linia->IndexOf("\t"));
linia = linia->Remove(0, linia->IndexOf("\t")+1);
dysk = linia->Substring(0, linia->IndexOf("\t"));
linia = linia->Remove(0, linia->IndexOf("\t")+1);
monitor = linia->Substring(0,linia->IndexOf("\t"));
this->zestaw = gcnew ZestawKomputerowy(pracownik,numer,procesor,ram,dysk,monitor); //wywołuję konstruktor podając jako argumenty zczytane dane
this->lista->Add(this->zestaw); //dodaję obiekt do listy
linia = ""; //resetuję linię
}
}
}
};
}

Brak komentarzy:
Prześlij komentarz