Beispiel #1
0
        public void Inserisci(Opera o)
        {
            //Apre il file
            FileStream   fs = new FileStream("file.txt", FileMode.Append);
            BinaryWriter bw = new BinaryWriter(fs);

            //Inserisce i dati, spazia autorore e titolo di 50.
            bw.Write(o.Codice);
            bw.Write(o.Autore.PadRight(50, ' '));
            bw.Write(o.Titolo.PadRight(50, ' '));
            bw.Write(o.Anno);
            bw.Write(o.Tipo);

            bw.Close();
            fs.Close();
        }
Beispiel #2
0
        public bool Modifica(int c, Opera o)
        {
            try {
                FileStream   fs = new FileStream("file.txt", FileMode.Open, FileAccess.ReadWrite);
                BinaryReader br = new BinaryReader(fs);
                BinaryWriter bw = new BinaryWriter(fs);
                long         posizione;

                while (br.PeekChar() != -1)
                {
                    posizione = fs.Position;
                    if (br.ReadInt32() == c)
                    {
                        //Se viene trovata l'opera col codice corretto, viene modificata.
                        fs.Position = posizione;

                        bw.Write(o.Codice);
                        bw.Write(o.Autore.PadRight(50, ' '));
                        bw.Write(o.Titolo.PadRight(50, ' '));
                        bw.Write(o.Anno);
                        bw.Write(o.Tipo);

                        br.Close();
                        bw.Close();
                        fs.Close();
                        //Si ritorna vero alla Form per indicare che l'azione è andata a buon fine
                        return(true);
                    }
                    //Altrimenti si sposta la corrente del flusso
                    br.ReadString().Trim();
                    br.ReadString().Trim();
                    br.ReadInt32();
                    br.ReadByte();
                }

                br.Close();
                bw.Close();
                fs.Close();
                //Si indica che il cpodice non è stato trovato
                return(false);
            } catch (Exception) {
                //Si ritorna false anche se non è stato trovato il file
                return(false);
            }
        }