void saveNameList() { String orderFile = _packetDir + "\\ListOrder.txt"; File.Delete(orderFile); if (Directory.Exists(_packetDir + "\\Backups")) { if (V_Data.Rows.Count != Directory.GetDirectories(_packetDir).Length - 1) { MessageBox.Show("디렉토리 개수와 목록의 개수가 달라서 목록을 다시 만듭니다."); //File.Delete(orderFile); makeNewOrderIfNotExists(); initList(); return; } } else { if (V_Data.Rows.Count != Directory.GetDirectories(_packetDir).Length) { MessageBox.Show("디렉토리 개수와 목록의 개수가 달라서 목록을 다시 만듭니다."); //File.Delete(orderFile); makeNewOrderIfNotExists(); initList(); return; } } StreamWriter sw = new StreamWriter(File.OpenWrite(orderFile)); try { string root = Directory.GetCurrentDirectory(); int rootLen = root.Length + 1; for (int i = 0; i < V_Data.RowCount; i++) { String name = V_Data.GetValue(i, (int)Titles.name) as String; String dir = _packetDir + "\\" + name; if (Directory.Exists(dir) == false) { MessageBox.Show(dir + "라인이 무결성을 통과 못하여 목록을 다시 만듭니다."); sw.Close(); File.Delete(orderFile); makeNewOrderIfNotExists(); initList(); return; } sw.WriteLine(dir.Substring(rootLen)); } } catch (Exception e) { MessageBox.Show(e.Message); } finally { sw.Close(); } }
void V_Data_E_ContextMenuClicked(object sender, FormAdders.EasyGridViewCollections.EasyGridMenuClickArgs args) { switch (args.Text) { case "SetAsStartPoint": if (SetAsStartPoint(args.RowIndex) == false) { MessageBox.Show("비활성된 라인입니다. 체크를 풀어주세요."); } break; case "Copy This": { String name = V_Data.GetValue(args.RowIndex, (int)Titles.name) as String; String msg = V_Data.RowRelativeObject(args.RowIndex)["msg"] as String; CPacketStruct parser = V_Data.Rows[args.RowIndex].RelativeObject["parser"] as CPacketStruct; AddNewItem(parser, name); //initList(); } break; case "Delete Lines": if (V_Data.SelectedRows.Count > 0) { List <EasyGridRow> rows = new List <EasyGridRow>(V_Data.SelectedRows); foreach (EasyGridRow row in rows) { DeleteLine(row.Index); } foreach (EasyGridRow row in rows) { V_Data.RemoveARow(row, false); } V_Data.RefreshList(); saveNameList(); } break; case "Make New Msg": { InputForm input = new InputForm(); DialogResult result = input.ShowDialog("새 메시지 이름"); if (result == DialogResult.Cancel || result == DialogResult.Abort) { return; } AddNewItem(null, input.InputText); } break; } }
void V_Data_E_ContextMenuClicked(object sender, FormAdders.EasyGridViewCollections.EasyGridMenuClickArgs args) { switch (args.Text) { case "SetAsStartPoint": if (SetAsStartPoint(args.RowIndex) == false) { MessageBox.Show("비활성된 라인입니다. 체크를 풀어주세요."); } break; case "Copy This": String name = V_Data.GetValue(args.RowIndex, (int)Titles.name) as String; String msg = V_Data.RowRelativeObject(args.RowIndex)["msg"] as String; AddNewItem(msg, name, true); //initList(); break; case "Delete Lines": if (V_Data.SelectedRows.Count > 0) { List <EasyGridRow> rows = new List <EasyGridRow>(V_Data.SelectedRows); foreach (EasyGridRow row in rows) { DeleteLine(row.Index); } foreach (EasyGridRow row in rows) { V_Data.RemoveARow(row, false); } V_Data.RefreshList(); saveNameList(); } break; } }
void addLines(long startIndex, long numLines) { String line; long lineIndex = 0; try { _checking = true; //long backPoint = 0; int backLine = 0; while ((line = _fileReader.ReadLine()) != null && _checking) { /* * if (_totalLines == 0) * { * if (_seekPoint[_seekPoint.Count - 1] == _fileReader.BaseStream.Position) * { * _seekPoint.Add(_seekPoint[_seekPoint.Count - 1] + Buffer.ByteLength(line.ToCharArray())); * } * else * { * _seekPoint.Add(_fileReader.BaseStream.Position); * } * } */ if (lineIndex >= startIndex && numLines > 0) { addALine(false, lineIndex, line); if ((--numLines) == 0 && _isInit) //최초 1회, 끝까지 간다. { //backPoint = _fileReader.BaseStream.Position; backLine = (int)lineIndex; } else if (numLines == 0) { break; } } lineIndex++; } if (_isInit)//포인터를 되돌려놓기 위함.. { _isInit = false; _totalLines = lineIndex - 1; _fileReader.Close(); _fileReader = File.OpenText(_fileName); line = _fileReader.ReadLine(); _nowLine = backLine; int lines = _nowLine; while ((line = _fileReader.ReadLine()) != null && --lines > 0) { } L_Total.Text = _totalLines.ToString(); Track_From.Maximum = (int)_totalLines; Track_From.LargeChange = (int)lineIndex / 10; //MessageBox.Show("파일의 일부를 표시합니다.. from:" + T_From.Text + " to:" + (_nowLine - startIndex).ToString()); try { long time0 = getTime(V_Data.GetValue(0, 2).ToString()); long time1 = getTime(V_Data.GetValue(1, 2).ToString()); T_Diff.Text = (time1 - time0).ToString(); } catch { } } else { _nowLine = (int)lineIndex; } //T_From.Text = _nowLine.ToString(); } catch { } }