public void ChangeKnowHowProtection(S7ProjectBlockInfo blkInfo, bool KnowHowProtection) { tmpBlock myTmpBlk = new tmpBlock(); if (subblkDBF != null) { var dbfTbl = subblkDBF; foreach (DataRow row in dbfTbl.Rows) { int subblktype = Convert.ToInt32(row["SUBBLKTYP"]); int objid = (int)row["OBJECTID"]; if (objid == blkInfo.id && (subblktype == 12 || subblktype == 8 || subblktype == 14)) { _bausteinDbf = null; _subblkDbf = null; _intBlockList = null; ((Step7ProjectV5) Project).hasChanges = true; if (KnowHowProtection) DBF.ParseDBF.WriteValue(Folder + "SUBBLK.DBF", "PASSWORD", dbfTbl.Rows.IndexOf(row), 3, ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project).DirSeperator); else DBF.ParseDBF.WriteValue(Folder + "SUBBLK.DBF", "PASSWORD", dbfTbl.Rows.IndexOf(row), 0, ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project).DirSeperator); break; } } } }
private List<ProjectBlockInfo> intReadPlcBlocksList() { bool showDeleted = ((Step7ProjectV5)this.Project)._showDeleted; List<ProjectBlockInfo> tmpBlocks = new List<ProjectBlockInfo>(); if (bausteinDBF != null) { var dbfTbl = bausteinDBF; foreach (DataRow row in dbfTbl.Rows) { if (!(bool)row["DELETED_FLAG"] || showDeleted) { int id = (int)row["ID"]; int blocknumber = Convert.ToInt32(row["NUMMER"]); int blocktype = Convert.ToInt32(row["TYP"]); S7ProjectBlockInfo tmp = new S7ProjectBlockInfo(); tmp.ParentFolder = this; tmp.Deleted = (bool)row["DELETED_FLAG"]; tmp.BlockNumber = blocknumber; tmp.id = id; if (blocktype == 0x00) tmp.BlockType = PLCBlockType.UDT; else tmp.BlockType = (PLCBlockType)blocktype; if (tmp.BlockType == PLCBlockType.SFB || tmp.BlockType == PLCBlockType.SFC || tmp.BlockType == PLCBlockType.SDB || tmp.BlockType == PLCBlockType.DB || tmp.BlockType == PLCBlockType.VAT || tmp.BlockType == PLCBlockType.FB || tmp.BlockType == PLCBlockType.FC || tmp.BlockType == PLCBlockType.OB || tmp.BlockType == PLCBlockType.UDT) tmpBlocks.Add(tmp); } } } if (subblkDBF != null) { var dbfTbl = subblkDBF; foreach (S7ProjectBlockInfo step7ProjectBlockInfo in tmpBlocks) { var rows = dbfTbl.Select("OBJECTID = " + step7ProjectBlockInfo.id.ToString()); foreach (DataRow row in rows) { int subblktyp = Convert.ToInt32(row["SUBBLKTYP"]); if ((int)row["OBJECTID"] == step7ProjectBlockInfo.id && (subblktyp == 12 || subblktyp == 8 || subblktyp == 14)) { if ((int)row["PASSWORD"] == 3) step7ProjectBlockInfo.KnowHowProtection = true; } } } } NumericComparer<ProjectBlockInfo> nc = new NumericComparer<ProjectBlockInfo>(); tmpBlocks.Sort(nc); return tmpBlocks; }
public void UndeleteBlock(S7ProjectBlockInfo blkInfo, int newBlockNumber) { tmpBlock myTmpBlk = new tmpBlock(); if (((Step7ProjectV5)Project)._ziphelper.FileExists(Folder + "BAUSTEIN.DBF")) { var dbfTbl = DBF.ParseDBF.ReadDBF(Folder + "BAUSTEIN.DBF", ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project)._DirSeperator); foreach (DataRow row in dbfTbl.Rows) { int objid = (int)row["ID"]; if (objid == blkInfo.id) { ((Step7ProjectV5)Project).hasChanges = true; DBF.ParseDBF.WriteValue(Folder + "BAUSTEIN.DBF", "DELETED_FLAG", dbfTbl.Rows.IndexOf(row), false, ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project)._DirSeperator); DBF.ParseDBF.WriteValue(Folder + "BAUSTEIN.DBF", "NUMMER", dbfTbl.Rows.IndexOf(row), newBlockNumber, ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project)._DirSeperator); } } } if (((Step7ProjectV5)Project)._ziphelper.FileExists(Folder + "SUBBLK.DBF")) { var dbfTbl = DBF.ParseDBF.ReadDBF(Folder + "SUBBLK.DBF", ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project)._DirSeperator); foreach (DataRow row in dbfTbl.Rows) { int objid = (int)row["OBJECTID"]; if (objid == blkInfo.id) { ((Step7ProjectV5)Project).hasChanges = true; DBF.ParseDBF.WriteValue(Folder + "SUBBLK.DBF", "DELETED_FLAG", dbfTbl.Rows.IndexOf(row), false, ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project)._DirSeperator); DBF.ParseDBF.WriteValue(Folder + "SUBBLK.DBF", "BLKNUMBER", dbfTbl.Rows.IndexOf(row), newBlockNumber, ((Step7ProjectV5)Project)._ziphelper, ((Step7ProjectV5)Project)._DirSeperator); } } } }
private List<ProjectBlockInfo> intReadPlcBlocksList() { bool showDeleted = ((Step7ProjectV5)this.Project)._showDeleted; List<ProjectBlockInfo> tmpBlocks = new List<ProjectBlockInfo>(); if (bausteinDBF != null) //ZipHelper.FileExists(((Step7ProjectV5)Project)._zipfile, Folder + "BAUSTEIN.DBF")) { var dbfTbl = bausteinDBF; //DBF.ParseDBF.ReadDBF(Folder + "BAUSTEIN.DBF", ((Step7ProjectV5)Project)._zipfile, ((Step7ProjectV5)Project)._DirSeperator); //if (Parent is S7ProgrammFolder && ((S7ProgrammFolder)Parent).SymbolTable != null) //{ // SymbolTable symtab = (SymbolTable)((S7ProgrammFolder)Parent).SymbolTable; //} foreach (DataRow row in dbfTbl.Rows) { if (!(bool)row["DELETED_FLAG"] || showDeleted) { int id = (int)row["ID"]; int blocknumber = Convert.ToInt32(row["NUMMER"]); int blocktype = Convert.ToInt32(row["TYP"]); S7ProjectBlockInfo tmp = new S7ProjectBlockInfo(); tmp.ParentFolder = this; tmp.Deleted = (bool)row["DELETED_FLAG"]; tmp.BlockNumber = blocknumber; tmp.id = id; if (blocktype == 0x00) tmp.BlockType = PLCBlockType.UDT; else tmp.BlockType = (PLCBlockType)blocktype; /* if (symtab != null) { SymbolTableEntry sym = symtab.GetEntryFromOperand(tmp.ToString()); if (sym != null) tmp.Symbol = sym.Symbol; } */ if (tmp.BlockType == PLCBlockType.SFB || tmp.BlockType == PLCBlockType.SFC || tmp.BlockType == PLCBlockType.SDB || tmp.BlockType == PLCBlockType.DB || tmp.BlockType == PLCBlockType.VAT || tmp.BlockType == PLCBlockType.FB || tmp.BlockType == PLCBlockType.FC || tmp.BlockType == PLCBlockType.OB || tmp.BlockType == PLCBlockType.UDT) tmpBlocks.Add(tmp); } } } if (subblkDBF != null) //ZipHelper.FileExists(((Step7ProjectV5)Project)._zipfile, Folder + "SUBBLK.DBF")) { var dbfTbl = subblkDBF; // DBF.ParseDBF.ReadDBF(Folder + "SUBBLK.DBF", ((Step7ProjectV5)Project)._zipfile, ((Step7ProjectV5)Project)._DirSeperator); foreach (S7ProjectBlockInfo step7ProjectBlockInfo in tmpBlocks) { var rows = dbfTbl.Select("OBJECTID = " + step7ProjectBlockInfo.id.ToString()); foreach (DataRow row in rows) { int subblktyp = Convert.ToInt32(row["SUBBLKTYP"]); if ((int)row["OBJECTID"] == step7ProjectBlockInfo.id && (subblktyp == 12 || subblktyp == 8 || subblktyp == 14)) { if ((int)row["PASSWORD"] == 3) step7ProjectBlockInfo.KnowHowProtection = true; } } } } NumericComparer<ProjectBlockInfo> nc = new NumericComparer<ProjectBlockInfo>(); tmpBlocks.Sort(nc); return tmpBlocks; }