private static void CreateCulvertDefaultFile(string culvertFileName, string culvertType) { var data = new Universal.CulvertValuesGroup(); TextWriter culvertFile = new StreamWriter(culvertFileName); switch (Convert.ToInt32(culvertType)) { case 0: //rating table data.Type = 0; data.FileName = culvertFileName; data.NPoints = 1; var myRt = new Universal.SecondaryTable[data.NPoints]; myRt[0].Col0 = "0"; myRt[0].Col1 = "0"; data.Table = myRt; data.Z1 = "0.0"; data.Z1 = "0.0"; data.UseElementElevations = 1; Universal.CulvertValuesGroups.Add(culvertFileName, data); // Write default data. culvertFile.WriteLine(data.NPoints); culvertFile.WriteLine(data.Table[0].Col0 + " " + data.Table[0].Col1); culvertFile.WriteLine(data.Z1); culvertFile.WriteLine(data.Z2); culvertFile.WriteLine(data.UseElementElevations); break; case 1: // Variables type 1 (box) data.Type = 1; data.Nb = "1"; data.FileName = culvertFileName; data.Ke = "0.5"; data.nc = "0.025"; data.Kp = "1.5"; data.M = "0.5"; data.cp = "1.0"; data.Y = "0.8"; data.m = "0.7"; data.Hb = "1.0"; data.Base = "1.0"; data.Z1 = "0.0"; data.Z1 = "0.0"; data.ComboManningSelectionIndex = 0; data.ComboEntranceLossSelectionIndex = 0; data.ComboInletCoeffsSelectionIndex = 0; data.UseElementElevations = 1; Universal.CulvertValuesGroups.Add(culvertFileName, data); // Write default data. culvertFile.WriteLine(data.Nb); culvertFile.WriteLine(data.Ke); culvertFile.WriteLine(data.nc); culvertFile.WriteLine(data.Kp); culvertFile.WriteLine(data.M); culvertFile.WriteLine(data.cp); culvertFile.WriteLine(data.Y); culvertFile.WriteLine(data.m); culvertFile.WriteLine(data.Hb); culvertFile.WriteLine(data.Base); culvertFile.WriteLine(data.Z1); culvertFile.WriteLine(data.Z2); culvertFile.WriteLine(data.ComboManningSelectionIndex); culvertFile.WriteLine(data.ComboEntranceLossSelectionIndex); culvertFile.WriteLine(data.ComboInletCoeffsSelectionIndex); culvertFile.WriteLine(data.UseElementElevations); data.UseElementElevations = 1; break; case 2: // Variables type 2 (circular) data.Type = 2; data.Nb = "1"; data.FileName = culvertFileName; data.Ke = "0.5"; data.nc = "0.025"; data.Kp = "1.5"; data.M = "0.5"; data.cp = "1.0"; data.Y = "0.8"; data.m = "0.7"; data.Dc = "1"; data.Z1 = "0.0"; data.Z1 = "0.0"; data.ComboManningSelectionIndex = 0; data.ComboEntranceLossSelectionIndex = 0; data.ComboInletCoeffsSelectionIndex = 0; data.UseElementElevations = 1; Universal.CulvertValuesGroups.Add(culvertFileName, data); // Write default data. culvertFile.WriteLine(data.Nb); culvertFile.WriteLine(data.Ke); culvertFile.WriteLine(data.nc); culvertFile.WriteLine(data.Kp); culvertFile.WriteLine(data.M); culvertFile.WriteLine(data.cp); culvertFile.WriteLine(data.Y); culvertFile.WriteLine(data.m); culvertFile.WriteLine(data.Dc); culvertFile.WriteLine(data.Z1); culvertFile.WriteLine(data.Z2); culvertFile.WriteLine(data.ComboManningSelectionIndex); culvertFile.WriteLine(data.ComboEntranceLossSelectionIndex); culvertFile.WriteLine(data.ComboInletCoeffsSelectionIndex); culvertFile.WriteLine(data.UseElementElevations); break; } culvertFile.Close(); }
private static void LoadBridgesSecondaryData(string secondaryFileName, ref List <string> warnings) { //Create new item in SecondaryGroups structure (if it is not //already there) with data from secondaryFileName. if (Universal.SecondaryGroups.ContainsKey(secondaryFileName)) { //Do not load the data from this file since it is already in memory. //In memory it could have been modified but we want to keep it as it //is, just as Word and Excel does when a file is loaded again: //it keeps the modifications. } else //Load this file to SecondaryGroups. { if (File.Exists(secondaryFileName)) { try { StreamReader secondaryFile; secondaryFile = File.OpenText(secondaryFileName); var thisGroup = new Universal.SecondaryGroup(); thisGroup.Component = "BRIDGES"; thisGroup.FileName = secondaryFileName; thisGroup.NPoints = Convert.ToInt64(secondaryFile.ReadLine()); var thisTable = new Universal.SecondaryTable[thisGroup.NPoints]; //Read every line with 5 values: X, bed, z lower, z upper, deck for (int j = 0; j <= thisGroup.NPoints - 1; ++j) { string next = secondaryFile.ReadLine(); string[] splt = next.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); thisTable[j].Col0 = splt[0]; thisTable[j].Col1 = splt[1]; thisTable[j].Col2 = splt[2]; thisTable[j].Col3 = splt[3]; thisTable[j].Col4 = splt[4]; } secondaryFile.Close(); //Store bridge profile table: thisGroup.Table = thisTable; //Store this new group of bridge geometries: Universal.SecondaryGroups.Add(secondaryFileName, thisGroup); } catch (Exception ex) { MessageBox.Show(Universal.Idioma("ERROR 3004171244: error reading file ", "ERROR 3004171244: error leyendo archivo ") + "\n\n" + secondaryFileName + "\n\n" + ex.Message, "RiverFlow2D", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { //Bridge profile file doesn't exist in memory. Universal.CreateSecondaryDefaultFile("BRIDGES", secondaryFileName, 5); if (warnings.IndexOf(secondaryFileName) == -1) { warnings.Add(secondaryFileName); } } } }
private static void LoadCulvertsSecondaryData(string wholeFileName, ref string culvertType, ref List <string> warnings) { if (!Universal.CulvertValuesGroups.ContainsKey(wholeFileName)) { if (File.Exists(wholeFileName)) { try { var data = new Universal.CulvertValuesGroup(); StreamReader culvertFile; culvertFile = File.OpenText(wholeFileName); switch (Convert.ToInt32(culvertType)) //culvert type { case 0: //rating table data.Type = 0; data.FileName = wholeFileName; data.NPoints = Convert.ToInt64(culvertFile.ReadLine()); var myRt = new Universal.SecondaryTable[data.NPoints]; for (int j = 0; j <= data.NPoints - 1; ++j) { string next = culvertFile.ReadLine(); string[] split = next.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); if (split.Length == 2) { myRt[j].Col0 = split[0]; myRt[j].Col1 = split[1]; } else if (split.Length == 1) { myRt[j].Col0 = split[0]; myRt[j].Col1 = ""; } else { myRt[j].Col0 = ""; myRt[j].Col1 = ""; } //Universal.CulvertValuesGroups.V } data.Z1 = culvertFile.ReadLine(); data.Z2 = culvertFile.ReadLine(); data.UseElementElevations = Convert.ToInt32(culvertFile.ReadLine()); culvertFile.Close(); data.Table = myRt; Universal.CulvertValuesGroups.Add(wholeFileName, data); break; case 1: // Variables type 1 (box) data.Type = 1; data.Nb = culvertFile.ReadLine(); data.FileName = wholeFileName; data.Ke = culvertFile.ReadLine(); data.nc = culvertFile.ReadLine(); data.Kp = culvertFile.ReadLine(); data.M = culvertFile.ReadLine(); data.cp = culvertFile.ReadLine(); data.Y = culvertFile.ReadLine(); data.m = culvertFile.ReadLine(); data.Hb = culvertFile.ReadLine(); data.Base = culvertFile.ReadLine(); data.Z1 = culvertFile.ReadLine(); data.Z2 = culvertFile.ReadLine(); data.ComboManningSelectionIndex = Convert.ToInt32(culvertFile.ReadLine()); data.ComboEntranceLossSelectionIndex = Convert.ToInt32(culvertFile.ReadLine()); data.ComboInletCoeffsSelectionIndex = Convert.ToInt32(culvertFile.ReadLine()); data.UseElementElevations = Convert.ToInt32(culvertFile.ReadLine()); culvertFile.Close(); Universal.CulvertValuesGroups.Add(wholeFileName, data); break; case 2: // Variables type 2 (circular) data.Type = 2; data.Nb = culvertFile.ReadLine(); data.FileName = wholeFileName; data.Ke = culvertFile.ReadLine(); data.nc = culvertFile.ReadLine(); data.Kp = culvertFile.ReadLine(); data.M = culvertFile.ReadLine(); data.cp = culvertFile.ReadLine(); data.Y = culvertFile.ReadLine(); data.m = culvertFile.ReadLine(); data.Dc = culvertFile.ReadLine(); data.Z1 = culvertFile.ReadLine(); data.Z2 = culvertFile.ReadLine(); data.ComboManningSelectionIndex = Convert.ToInt32(culvertFile.ReadLine()); data.ComboEntranceLossSelectionIndex = Convert.ToInt32(culvertFile.ReadLine()); data.ComboInletCoeffsSelectionIndex = Convert.ToInt32(culvertFile.ReadLine()); data.UseElementElevations = Convert.ToInt32(culvertFile.ReadLine()); culvertFile.Close(); Universal.CulvertValuesGroups.Add(wholeFileName, data); break; } } catch (Exception ex) { MessageBox.Show(Universal.Idioma("ERROR 1303130759: error reading file ", "ERROR 1303130759: error leyendo archivo ") + wholeFileName + ". " + ex.Message, "RiverFlow2D", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { // Culvert file doesn't exist. See if a default file was created. if (warnings.IndexOf(wholeFileName) == -1) { // Write this default file. warnings.Add(wholeFileName); if (!(culvertType == "0" | culvertType == "1" | culvertType == "2")) { culvertType = "1"; } CreateCulvertDefaultFile(wholeFileName, culvertType); } } } }