Ваш foreach
работает только при наличии хотя бы 1 строки. Чтобы создать новый конфиг при наличии 0 строк , вам нужно выполнить явную проверку + соответствующее действие для этого:
string[] cfgdata = File.ReadAllLines(filePath);
if (cfgdata.Length == 0) newcfg();
Возможно, вам также потребуется обеспечить дополнительную обработку после этого, например если вы хотите использовать только что созданный конфиг, вам также необходимо прочитать вновь созданный файл:
string[] cfgdata = File.ReadAllLines(filePath);
if (cfgdata.Length == 0)
{
newcfg();
cfgdata = File.ReadAllLines(filePath);
if (cfgdata.Length == 0)
{
throw new Exception("Config file is empty, despite just creating a new one.")
}
}
foreach (string line in cfgdata)
{
// ...
}
Боюсь, нет встроенного способа. Вы можете сделать что-то вроде этого:
var width = ( 100 * parseFloat($('.largeField').css('width')) / parseFloat($('.largeField').parent().css('width')) ) + '%';
Вы можете поместить стили, к которым вам нужен доступ с помощью jQuery, либо в:
Тогда должна быть возможность (хотя и не обязательно простая) написать функцию js для анализа всего в тегах стиля в заголовке документа и возврата нужного значения .
You could access the document.styleSheets
object:
<style type="text/css">
.largeField {
width: 65%;
}
</style>
<script type="text/javascript">
var rules = document.styleSheets[0].rules || document.styleSheets[0].cssRules;
for (var i=0; i < rules.length; i++) {
var rule = rules[i];
if (rule.selectorText.toLowerCase() == ".largefield") {
alert(rule.style.getPropertyValue("width"));
}
}
</script>
Вы можете использовать функцию css(width), чтобы вернуть текущую ширину элемента.
т.е.
var myWidth = $("#myElement").css("width");
См. также: http://api.jquery.com/width/ http://api.jquery.com/css/