Розробка елементів гнучкої інтегрованої системи віддаленого доступу до каталогу відеофайлів
Розробка гнучкої інтегрованої автоматизованої системи доступу до каталогу навчальних відеофільмів в мультимедійних класах металургійного факультету Національної металургійної академії. Теоретичні аспекти проектування додатків на базі платформи dotNET.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 26.10.2012 |
Размер файла | 4,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
9. Жарков В,А. Самоучитель Жаркова по анимации и мультипликации в Visual С++. - М /. Жарков Пресс, 2003.
10. Кариев Ч.А. Разработка Windows-приложений на основе Visual C# . БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2007
11. Кент Бек. Экстремальное программировнаие. - Питер, 2002
12. Мартин Ф. Архитектура корпоративных программных приложений. - М.: Издательский дом "Вильямс", 2004
13. Нейлгел К., Ивьен Б., Глинн Дж. С# 2008 для профессионалов. -М.: Издательский дом "Вильямс", 2008
14. Прайс Дж., Гандерлой М. Visual C# .NET : Пер. с англ. - К.: ВЕК+, 2005
15. Рихтер Дж.. Программирование на платформе Microsoft .Net Framework. - М: Русская Редакция, 2007
16. Робинсон С., Корнес О., Глинн Дж. С# для профессионалов. - М: Лори, 2008
17. Троелсен Э. Язык программирования С# 2005 и платформа .Net 2.0. - М.: Издательский дом "Вильямс", 2007
18. Чакработи А., Кранти Ю., Сандху Р. Microsoft .NET Framework: разработка профессиональных проектов: Пер. с англ. СПб.: БХВ-Петербург, 2006
19. Zharkov V.A. Theory and Practice of Deep Drawing. - London, Mechanical Engineering Publications Limited, 1995.
20. j@alba.ua - адрес автора
21. http://algolist.manual.ru // Исходные коды и книги по алгоритмам
22. http://www.intuit.ru // Интернет-университет информационных технологий
23. http://ru.wikipedia.org // Свободная Интернет-энциклопедия
24. http://www.rsdn.ru
25. http://www. citforum.ru
26. http://www.msdn.microsoft.com
27. http://www.opennet.ru
28. http://www.gotdotnet.ru
ДОДАТОК А
Лістинг 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using catalog;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
catalog.catalog cat = new catalog.catalog();
Folders folders;
public Form1()
{
InitializeComponent();
load();
}
private int _cur_disc = 0;
private void load()
{
List<Dictionary<string, string>> discs = cat.GetRootFolders();
listView2.Items.Clear();
treeView1.Nodes.Clear();
listView1.Items.Clear();
for (int i = 0; i < discs.Count; i++ )
{
listView2.Items.Add(discs[i]["name"]).Tag = discs[i]["id"];
listView2.Items[i].ImageIndex = 0;
listView2.Items[i].SubItems.Add((Math.Round ((float) (Convert.ToInt32(discs[i]["size"]))/1024, 2) ).ToString() + " Mb");
listView2.Items[i].SubItems.Add(discs[i]["files"]);
listView2.Items[i].SubItems.Add(discs[i]["folders"]);
listView2.Items[i].SubItems.Add(discs[i]["comment"]);
}
}
private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
{
}
private void CreateTreeView()
{
TreeNode node = new TreeNode();
node.Text = folders.name;
node.Tag = folders.id.ToString();
_CreateTreeView(folders.Childs, node);
treeView1.Nodes.Add(node);
}
private void _CreateTreeView(List<Folders> f, TreeNode node)
{
foreach (Folders el in f)
{
TreeNode new_node = new TreeNode();
new_node.Text = el.name;
new_node.Tag = el.id.ToString();
_CreateTreeView(el.Childs, new_node);
node.Nodes.Add(new_node);
}
}
private void listView2_ItemActivate(object sender, EventArgs e)
{
ListView lv = (ListView)sender;
_cur_disc = Convert.ToInt32(lv.SelectedItems[0].Tag);
folder_tree_prepare();
}
private void folder_tree_prepare()
{
List<Dictionary<string, string>> file_list = cat.getFileList(_cur_disc);
treeView1.Nodes.Clear();
folders = cat.getFoldersStruct(_cur_disc);
CreateTreeView();
treeView1.Nodes[0].ImageIndex = 3;
treeView1.Nodes[0].Expand();
treeView1.SelectedNode = treeView1.Nodes[0];
}
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode == treeView1.Nodes[0])
{
treeView1.SelectedImageIndex = 3;
treeView1.Nodes[0].Expand();
}
else
{
treeView1.SelectedImageIndex = 0;
}
ubdFiles();
}
private void ubdFiles()
{
List<Dictionary<string, string>> file_list = cat.getFileList(Convert.ToInt32(treeView1.SelectedNode.Tag));
listView1.Items.Clear();
for (int i = 0; i < file_list.Count; i++)
{
listView1.Items.Add(file_list[i]["name"]).Tag = file_list[i]["id"];
listView1.Items[i].ImageIndex = 1;
listView1.Items[i].SubItems.Add((Math.Round((float)(Convert.ToInt32(file_list[i]["size"])) / 1024, 2)).ToString() + " Kb");
listView1.Items[i].SubItems.Add(file_list[i]["comment"]);
}
}
private void eDITToolStripMenuItem_Click(object sender, EventArgs e)
{
listView2.FocusedItem.BeginEdit();
}
private void aDDCOMMENTToolStripMenuItem_Click(object sender, EventArgs e)
{
Form ed = new Form2(Convert.ToInt32(listView2.FocusedItem.Tag), 1, listView2.FocusedItem.SubItems[4].Text);
ed.ShowDialog();
load();
}
private void listView2_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
int id = Convert.ToInt32(listView2.Items[e.Item].Tag.ToString());
string name = e.Label;
if (name != null)
{
cat.nameChange(id, name);
}
if (id == _cur_disc)
{
folder_tree_prepare();
}
}
private void aDDCommentToolStripMenuItem1_Click(object sender, EventArgs e)
{
Form ed = new Form2(Convert.ToInt32(listView1.FocusedItem.Tag), 0, listView1.FocusedItem.SubItems[2].Text);
ed.ShowDialog();
ubdFiles();
}
private void dELETEToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Вы действительно хотите удалить выбранную запись?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
cat.delete(Convert.ToInt32(listView2.FocusedItem.Tag));
load();
}
private void aDDToolStripMenuItem_Click(object sender, EventArgs e)
{
Form add = new Form3();
add.ShowDialog();
load();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
if(toolStripTextBox1.Text.Length > 0)
{
Form search = new Form4(toolStripTextBox1.Text);
search.Show();
}
}
}
}
Лістинг 2
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.SQLite;
namespace catalog
{
public class catalog
{
string connectionString;
public catalog() { connectionString = "Data Source=catalog.db;Version=3;"; }
private int folders_count = 0;
private int files_count = 0;
private double size = 0;
private int root_id = 0;
private string _disc_name = "";
public void scan_disc(string path,string name, string comment)
{
_disc_name = name;
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "INSERT INTO catalog (name, path, size, folders, files,parrent_id,comment) VALUES ('" + name + "', '" + path + "', '0', '0', '0','0',\""+comment+"\")";
cmd.CommandType = CommandType.Text;
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
int cur_id = get_last_cat_id();
root_id = cur_id;
getDiscDir(path, cur_id);
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "UPDATE catalog SET folders='" + folders_count + "', files='"+files_count+"', size='"+size+"' WHERE id='"+root_id+"'";
cmd.CommandType = CommandType.Text;
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
}
private void getDiscDir(string path, int parrent_id)
{
try
{
string[] childs_dirs = Directory.GetDirectories(path);
folders_count += childs_dirs.Length;
string[] files = Directory.GetFiles(path);
files_count += files.Length;
for (int i = 0; i < files.Length; i++)
{
System.IO.FileInfo fi = new FileInfo(files[i]);
int f_size = (int)fi.Length;
size += (f_size / 1024);
string f_name = Path.GetFileName(files[i]);
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
string new_path = files[i].Substring(1, (files[i].Length - 1));
cmd.CommandText = "INSERT INTO files (path, name, size, catalog_id, disc_name) VALUES ('" + new_path + "', '" + f_name + "', '" + f_size + "', '" + parrent_id + "', '"+_disc_name+"')";
cmd.CommandType = CommandType.Text;
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
}
for (int i = 0; i < childs_dirs.Length; i++)
{
string ch_name = Path.GetFileName(childs_dirs[i]);
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "INSERT INTO catalog (name, path, size, folders, files, parrent_id) VALUES ('" + ch_name + "', '" + childs_dirs[i] + "', '0', '0', '0','" + parrent_id + "')";
cmd.CommandType = CommandType.Text;
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
int ch_id = get_last_cat_id();
getDiscDir(childs_dirs[i], ch_id);
}
}
catch (Exception x)
{
int t = 0;
}
}
private int get_last_cat_id()
{
int id = 0;
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "SELECT MAX(id) from catalog";
cmd.CommandType = CommandType.Text;
cn.Open();
id = Convert.ToInt32(cmd.ExecuteScalar().ToString());
}
}
return id;
}
public List<Dictionary<string, string>> GetRootFolders()
{
List<Dictionary<string, string>> root_folder_list = new List<Dictionary<string, string>>();
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "SELECT * from catalog where parrent_id='0' and deleted='0'";
cmd.CommandType = CommandType.Text;
cn.Open();
SQLiteDataReader dr = (SQLiteDataReader)cmd.ExecuteReader();
while (dr.Read())
{
Dictionary<string, string> folder = new Dictionary<string, string>();
folder.Add("id", dr["id"].ToString());
folder.Add("name", dr["name"].ToString());
folder.Add("path", dr["path"].ToString());
folder.Add("folders", dr["folders"].ToString());
folder.Add("files", dr["files"].ToString());
folder.Add("size", dr["size"].ToString());
folder.Add("comment", dr["comment"].ToString());
root_folder_list.Add(folder);
}
cn.Close();
}
}
return root_folder_list;
}
private List<Folders> _getFoldersStruct(int id)
{
List<Folders> folder_struct = new List<Folders>();
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "SELECT * from catalog where parrent_id='" + id + "'";
cmd.CommandType = CommandType.Text;
cn.Open();
SQLiteDataReader dr = (SQLiteDataReader)cmd.ExecuteReader();
while (dr.Read())
{
Folders folder = new Folders();
folder.name = dr["name"].ToString();
int new_id = Convert.ToInt32(dr["id"].ToString());
folder.id = new_id;
folder.Childs = _getFoldersStruct(new_id);
folder_struct.Add(folder);
}
cn.Close();
}
}
return folder_struct;
}
public Folders getFoldersStruct(int disc_id)
{
Folders folder_struct = new Folders();
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "SELECT * from catalog where id='"+disc_id+"'";
cmd.CommandType = CommandType.Text;
cn.Open();
SQLiteDataReader dr = (SQLiteDataReader)cmd.ExecuteReader();
while (dr.Read())
{
folder_struct.name = dr["name"].ToString();
int new_id = Convert.ToInt32(dr["id"].ToString());
folder_struct.id = new_id;
folder_struct.Childs = _getFoldersStruct(new_id);
}
cn.Close();
}
}
return folder_struct;
}
public List<Dictionary<string, string>> getFileList(int catalog_id)
{
List<Dictionary<string, string>> file_list = new List<Dictionary<string, string>>();
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "SELECT * from files where catalog_id='" + catalog_id + "'";
cmd.CommandType = CommandType.Text;
cn.Open();
SQLiteDataReader dr = (SQLiteDataReader)cmd.ExecuteReader();
while (dr.Read())
{
Dictionary<string, string> file = new Dictionary<string, string>();
file.Add("id", dr["id"].ToString());
file.Add("path", dr["path"].ToString());
file.Add("name", dr["name"].ToString());
file.Add("comment", dr["comment"].ToString());
file.Add("size", dr["size"].ToString());
file_list.Add(file);
}
cn.Close();
}
}
return file_list;
}
public void nameChange(int id, string name)
{
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "Select name FROM catalog where id='" + id + "'";
cmd.CommandType = CommandType.Text;
cn.Open();
string old_name = (string)cmd.ExecuteScalar();
SQLiteCommand cmd2 = cn.CreateCommand();
cmd2.CommandText = "UPDATE catalog set name='"+name+"' where id='" + id + "'";
cmd2.CommandType = CommandType.Text;
cmd2.ExecuteNonQuery();
SQLiteCommand cmd3 = cn.CreateCommand();
cmd3.CommandText = "UPDATE files set disc_name='"+name+"' where disc_name='" + old_name + "'";
cmd3.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
cn.Close();
}
}
public void commentDiscChange(int id, string comment)
{
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "UPDATE catalog set comment='" + comment + "' where id='" + id + "'";
cmd.CommandType = CommandType.Text;
cn.Open();
cmd.ExecuteNonQuery();
}
cn.Close();
}
}
public void commentFileChange(int id, string comment)
{
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "UPDATE files set comment='" + comment + "' where id='" + id + "'";
cmd.CommandType = CommandType.Text;
cn.Open();
cmd.ExecuteNonQuery();
}
cn.Close();
}
}
public void delete(int id)
{
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "update catalog set deleted='1' where id='" + id + "'";
cmd.CommandType = CommandType.Text;
cn.Open();
cmd.ExecuteNonQuery();
}
cn.Close();
}
}
public List<Dictionary<string, string>> do_search(string search_str)
{
List<Dictionary<string, string>> result= new List<Dictionary<string, string>>();
search_str = clean_words(search_str);
string[] search_text;
string[] separator = { " " };
string tag = search_str;
search_text = tag.Split(separator, StringSplitOptions.RemoveEmptyEntries);
string select = "SELECT * FROM files WHERE ";
string added_q = "";
for (int i = 0; i < search_text.Length; i++)
{
if (search_text[i].Length > 2)
{
if (added_q.Length == 0)
{
added_q += " (name like '%" + search_text[i] + "%' OR comment like '%" + search_text[i] + "%')";
}
else
{
added_q += " OR (name like '%" + search_text[i] + "%' OR comment like '%" + search_text[i] + "%')";
}
}
}
select += added_q + " ORDER by id ASC;";
using (SQLiteConnection cn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = cn.CreateCommand())
{
cmd.CommandText = select;
cmd.CommandType = CommandType.Text;
cn.Open();
SQLiteDataReader dr = (SQLiteDataReader)cmd.ExecuteReader();
while (dr.Read())
{
Dictionary<string, string> file = new Dictionary<string, string>();
file.Add("name", dr["name"].ToString());
file.Add("id", dr["id"].ToString());
file.Add("catalog_id", dr["catalog_id"].ToString());
file.Add("path", dr["path"].ToString());
file.Add("comment", dr["comment"].ToString());
file.Add("size", dr["size"].ToString());
file.Add("disc_name", dr["disc_name"].ToString());
result.Add(file);
}
}
}
return result;
}
private string clean_words(string value)
{
string[] drop_char = { "^", "$", "&", "(", ")", "<", ">", "`", "\\", "\"", "|", ",", "@", "_", "?", "%", "-", "~", "+", ".", "[", "]", "{", "}", ":", "\\", "/", "=", "#", "\"", ";", "!" };
string[] drop_words = { "a", "the", "of", "and", "or", "for", "this" };
for (int i = 0; i < drop_char.Length; i++)
{
value = value.Replace(drop_char[i], "");
}
return value;
}
}
public struct Folders
{
public string name;
public int id;
public List<Folders> Childs;
}
}
Размещено на Allbest.ru
Подобные документы
Реалізація гнучкої спеціалізованої системи підприємництва в середовищі Delphi 6.0 за допомогою технології доступу до баз даних ADO. Розробка елементів системи, її призначення для накопичення і обробки інформації про обіг товарів приватного підприємства.
дипломная работа [1,3 M], добавлен 26.10.2012Розробка системи, що виконує функцію автоматизації процесу пропускного пункту підприємства з використанням мов програмування PHP, JavaScript і MySql. Практичні аспекти проектування ГІС із використанням WEB-технологій і баз даних, тестування програми.
дипломная работа [1,5 M], добавлен 25.10.2012Переваги електронної комерції. Історія створення та мова WEB-сценаріїв PHP. Розробка системи доступу до бази даних магазину за допомогою WEB-каталогу, який надає інформацію про товари в зручній для клієнта формі, використовуючи нові Internet-технології.
курсовая работа [78,2 K], добавлен 28.12.2013Види інформаційних систем. Програмна реалізація гнучкої системи для автоматизованої реєстрації та обліку руху імунобіологічних препаратів в середовищі Delphi 6.0 з використанням технології доступу до баз даних ADO. Розрахунок витрат на розробку програми.
дипломная работа [3,2 M], добавлен 25.10.2012DirectX як набір API функцій, розроблених для вирішення завдань, пов'язаних з ігровим і відеопрограмуванням в операційній системі Microsoft Windows. Етапи створення тривимірних графічних додатків на базі платформи dotNET. Аналіз компонентної моделі COM.
дипломная работа [4,4 M], добавлен 22.10.2012Апаратна організація Web-серверу гнучкої комп’ютеризованої системи в середовищі Linux Debian. Забезпечення обміну даними між персональним комп’ютером і зовнішніми вимірювальними приладами, прийом/передача даних крізь USB-інтерфейс в системи обміну даними.
дипломная работа [3,3 M], добавлен 25.10.2012База даних як складова частина інформаційної системи. Загальні принципи створення контролерів автоматизації MS Office. Розробка гнучкої комп'ютеризованої системи, призначеної для автоматизації розрахунку учбового навантаження. Моделі представлення даних.
дипломная работа [4,7 M], добавлен 26.10.2012Cтворення системи для впорядковування інформації про файли, що зберігаються на компакт-дисках або інших знімних носіях. Загальні вимоги до розробки. Технології розробки Windows-додатків. Опис функціональних можливостей і програмної реалізації системи.
дипломная работа [891,7 K], добавлен 25.10.2012Види віртуальних тестових машин, їх ключові можливості, сумісність c операційними системами. Процес установки гостьових ОС BackTrack і FreeBSD. Встановлення серверного програмного забезпечення. Тестування веб-сервера і засобів віддаленого управління.
дипломная работа [3,5 M], добавлен 22.07.2015Структура завантажувального запису, службової області FAT, елемента каталогу. Код програми файлового менеджеру. Алгоритм пошуку дисків й іменування дисків, доступу к об'єктам файлової системи, визначення зайнятого місця на розділі, зрівняння директорій.
дипломная работа [1,5 M], добавлен 20.11.2010