public byte[] Merge(byte[][] tablicaWejsciowa) { try { files = tablicaWejsciowa; WaveIOFony wa_IN = new WaveIOFony(); WaveIOFony wa_out = new WaveIOFony(); wa_out.DataLength = 0; wa_out.length = 0; //Pobranie danych o "głowie" foreach (byte[] path in files) { wa_IN.WaveHeaderIN(@path); wa_out.DataLength += wa_IN.DataLength; wa_out.length += wa_IN.length; } //Rekonstrukcja nowej "głowy" wa_out.BitsPerSample = wa_IN.BitsPerSample; wa_out.channels = wa_IN.channels; wa_out.samplerate = wa_IN.samplerate; using (MemoryStream fs = new MemoryStream()) { BinaryWriter bw = new BinaryWriter(fs); fs.Position = 0; bw.Write(new char[4] { 'R', 'I', 'F', 'F' }); bw.Write(wa_out.length); bw.Write(new char[8] { 'W', 'A', 'V', 'E', 'f', 'm', 't', ' ' }); bw.Write((int)16); bw.Write((short)1); bw.Write(wa_out.channels); bw.Write(wa_out.samplerate); bw.Write((int)(wa_out.samplerate * ((wa_out.BitsPerSample * wa_out.channels) / 8))); bw.Write((short)((wa_out.BitsPerSample * wa_out.channels) / 8)); bw.Write(wa_out.BitsPerSample); bw.Write(new char[4] { 'd', 'a', 't', 'a' }); bw.Write(wa_out.DataLength); for (int i = 0; i < files.Length; i++) { if (i != 0) { using (MemoryStream ms = new MemoryStream(files[i])) { fs.Position -= 22816; byte[] razem = new byte[ms.Length - 44]; ms.Position = 4410; ms.Read(razem, 0, razem.Length - 4410); bw.Write(razem); } } else { using (MemoryStream ms = new MemoryStream(files[i])) { byte[] razem = new byte[ms.Length - 44]; ms.Position = 4410; ms.Read(razem, 0, razem.Length - 4410); bw.Write(razem); } } } koniec = new byte[fs.Length]; fs.Position = 0; fs.Read(koniec, 0, koniec.Length); bw.Close(); fs.Close(); } return(koniec); } catch (Exception) { throw new Exception("Błąd podczas łączenia dźwięku(Fony)."); } }
}//koniec metody Sprawdzenie public byte[] Noweslowo(string slowo) { _conn = new SqlConnection(@"Data Source=(localDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\BazaSlow.mdf;Initial Catalog=Bazaslow;Integrated Security=True"); char[] znaki = new char[slowo.Length]; znaki = slowo.ToCharArray(); ListaGlosek = new ArrayList(); ListaGlosekBajty = new ArrayList(); int i = 0; try { using (SqlCommand command = new SqlCommand("SELECT BLOB FROM Fony WHERE Fon = @FON", _conn)) { _conn.Open(); foreach (char znak in znaki) { command.Parameters.AddWithValue("@FON", znak); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { ListaGlosek.Add(znak.ToString()); ListaGlosekBajty.Add((byte[])reader["BLOB"]); } } command.Parameters.Clear(); reader.Close(); i++; } } }catch (Exception ex) { if (ex != null) { throw ex; } else { throw new Exception("Błąd podczas pobierania danych(Fony) z bazy"); } }finally { _conn.Close(); } WaveIOFony polaczenie = new WaveIOFony(); DoSprawdzeniaDwuznakow = SprawdzenieDwuznakow(); Normalizacja normalizuj = new Normalizacja(polaczenie.Merge(DoSprawdzeniaDwuznakow)); normalizuj.HeadOut(); razem = normalizuj.Zrob(); return(razem); }//koniec metory Noweslowo