예제 #1
0
        private void BtnAdd_Click(object sender, EventArgs e)
        {
            if (locked)
            {
                return;
            }
            locked = true;
            string search = searchInput1.Text.ToString();

            FileItems[] all = NestedFileDatabase.Collection.GetLists();
            for (int l = lastList; l < all.Length; l++)
            {
                FileItems List = all[l];
                if (List != null)
                {
                    var allItems = List.GetItems();
                    for (int i = 0; i < allItems.Length; i++)
                    {
                        var allRows = allItems[i].GetRows();
                        for (int r = 0; r < allRows.Length; r++)
                        {
                            var row = allRows[i];
                            if (
                                Compare(search.ToLower().Trim(), row.RowName.ToLower().Trim()) ||
                                Compare(search.ToLower().Trim(), row.RowValue.ToString().ToLower().Trim())
                                )
                            {
                                locked = false;
                                comboBox_lists.SelectedIndex = l;

                                listBox_items.Rows[i].Selected = true;
                                listBox_items.CurrentCell      = listBox_items.Rows[i].Cells[0];
                                lastList = l;
                                lastItem = i + 1;

                                break;
                            }
                        }
                    }
                }
            }
            locked   = false;
            lastList = 0;
            lastItem = 0;
        }
        internal void MSaveFile(string path)
        {
            FileItems[] all    = lists.GetLists();
            DataWriter  writer = new DataWriter();

            writer.Write(all.Length);
            for (int l = 0; l < all.Length; l++)
            {
                FileItems list = all[l];
                writer.Write(list.ListId);
                writer.Write(list.ListName);
                FileItem[] items = list.GetItems();
                writer.Write(items.Length);
                for (int i = 0; i < items.Length; i++)
                {
                    FileItem item = items[i];

                    FileRow[] rows = item.GetRows();

                    writer.Write(item.ItemId);
                    writer.Write(item.ItemName);
                    writer.Write(rows.Length);

                    for (int r = 0; r < rows.Length; r++)
                    {
                        writer.Write(rows[r].RowIndex);
                        writer.Write(rows[r].RowName);
                        writer.Write((byte)rows[r].RowType);
                        switch (rows[r].RowType)
                        {
                        case FileRowType.Byte:
                            writer.Write((byte)rows[r].RowValue);
                            break;

                        case FileRowType.Int:
                            writer.Write((int)rows[r].RowValue);
                            break;

                        case FileRowType.Short:
                            writer.Write((short)rows[r].RowValue);
                            break;

                        case FileRowType.Float:
                            writer.Write((float)rows[r].RowValue);
                            break;

                        case FileRowType.Double:
                            writer.Write((double)rows[r].RowValue);
                            break;

                        case FileRowType.Boolean:
                            writer.Write((bool)rows[r].RowValue);
                            break;

                        case FileRowType.String:
                            writer.Write((string)rows[r].RowValue);
                            break;
                        }
                    }
                }
            }
            File.WriteAllBytes(path, writer.ToArray());
        }