Imam problem sa delom koda gde trebam da proverim da li je projekcija uneta,tj. da li naziv filma koji unosim u textbox-u "txtNazivFilma" postoji u fajlu projekcija.txt,ali ne znam zbog cega.Bio bih vam zahvalan ako bi mi pomogli,jer vec neko vreme ne mogu da otkrijem sta je u pitanju.
Evo klase gde mi izbacuje gresku(greska je oznacena je sa *****) :
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;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace zeljko_nrt_7514
{
public partial class AProjekcije : Form
{
List<Sala> listaSala;
List<Film> listaFilmova;
List<Projekcija> listaProjekcija;
Sala sala;
Film film;
int idProjekcije;
string putanjaSala;
string putanjaFilm;
string putanjaProjekcija;
public AProjekcije()
{
InitializeComponent();
listaProjekcija = new List<Projekcija>();
listaSala = new List<Sala>();
listaFilmova = new List<Film>();
putanjaSala = "sale.txt";
putanjaFilm = "filmovi2.txt";
putanjaProjekcija = "projekcije.txt";
}
private void btnUnesi_Click(object sender, EventArgs e)
{
bool postojiFilm = false, postojiSala = false, postojiProjekcija = false;
if (!File.Exists(putanjaFilm) || new FileInfo(putanjaFilm).Length == 0 || !File.Exists(putanjaSala) || new FileInfo(putanjaSala).Length == 0)
{
MessageBox.Show("Azurirajte film i salu.");
return;
}
//de sala
BinaryFormatter bf1 = new BinaryFormatter();
FileStream fs1 = File.OpenRead(putanjaSala);
listaSala = bf1.Deserialize(fs1) as List<Sala>;
fs1.Dispose();
//de film
BinaryFormatter bf2 = new BinaryFormatter();
FileStream fs2 = File.OpenRead(putanjaFilm);
listaFilmova = bf2.Deserialize(fs2) as List<Film>;
fs2.Dispose();
//uzimanje filma iz liste
foreach(Film f in listaFilmova)
{
if(txtNazivFilma.Text.Equals(f.naziv))
{
film = f;
postojiFilm = true;
break;
}
}
//uzimanje sale iz liste
foreach (Sala s in listaSala)
{
if (txtSala.Text.Equals(s.naziv))
{
sala = s;
postojiSala = true;
break;
}
}
//ako postoje film i sala obavesti
if (postojiFilm == false)
{
MessageBox.Show("Uneti film ne postoji.");
return;
}
if (postojiSala == false)
{
MessageBox.Show("Uneta sala ne postoji.");
return;
}
//de i sr projekcije ako postoji putanja--------------------------------------------------
if (File.Exists(putanjaProjekcija) && new FileInfo(putanjaProjekcija).Length > 0)
{
int id;
BinaryFormatter bf = new BinaryFormatter();
FileStream fs = File.OpenRead(putanjaProjekcija);
listaProjekcija = bf.Deserialize(fs) as List<Projekcija>;
fs.Dispose();
listBox1.DataSource = listaProjekcija;
id = listaProjekcija.Count + 1;
MessageBox.Show("Uspesno ocitavanje");
foreach (Projekcija p in listaProjekcija)
{
*************if (txtNazivFilma.Text.Equals(p.film.naziv))*********************
{
postojiProjekcija = true;
break;
}
}
if (postojiProjekcija == true)
{
MessageBox.Show("Projekcija je vec uneta.");
return;
}
BinaryFormatter bf3 = new BinaryFormatter();
FileStream fs3 = File.OpenWrite(putanjaProjekcija);
listaProjekcija.Add(new Projekcija(id, film, sala, txtVreme.Text));
bf3.Serialize(fs3, listaProjekcija);
fs3.Dispose();
MessageBox.Show("Uspesno upisivanje");
}
else
{
//sr projekcije ako nema putanje
BinaryFormatter bf4 = new BinaryFormatter();
FileStream fs4 = File.OpenWrite(putanjaProjekcija);
listaProjekcija.Add(new Projekcija(1, film, sala, txtVreme.Text));
bf4.Serialize(fs4, listaProjekcija);
fs4.Dispose();
MessageBox.Show("Uspesno upisivanje");
}
}
}
}
A evo i klase Projekcija.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace zeljko_nrt_7514
{
[Serializable]
class Projekcija
{
public int id;
public Film film;
public Sala sala;
public string vreme;
public Projekcija(int id, Film film, Sala sala, string vreme)
{
this.id = id;
this.film = film;
this.sala = sala;
this.vreme = vreme;
}
public override string ToString()
{
return id + " -" + film + "- " + sala + " -" + vreme;
}
}
}
Evo i slike gde izbacuje gresku:
Slika
Hvala unapred.
[Ovu poruku je menjao shocknp dana 26.12.2016. u 23:33 GMT+1]