Это происходит потому, что String.Replace
принимает два строковых аргумента: oldValue и newValue. Вы указали newValue 'DT11.TotalAcc', однако пустая строка недопустима для oldValue.
Что вы можете сделать, это после получения DT11.Done, заменить его на некоторое значение tempValue, а затем использовать его для замены новым значением
что-то вроде
while ((line = file11.ReadLine()) != null)
{
string[] SpltStr11 = line.Split('|');
Flds DT11 = new Flds();
DT11.Date = SpltStr11[0];
DT11.Name = SpltStr11[1];
DT11.TotalAcc = SpltStr11[2];
DT11.Folder = SpltStr11[3];
DT11.Done = SpltStr11[4];
if (string.IsNullOrEmpty(DT11.Done))
{
DT11.Done = "tempVal";
}
ListDT11.Add(DT11);
}
Таким образом, вы будете не получить ошибку. Остальной код вы можете отформатировать соответственно
От оболочки можно использовать open
команда с URL в качестве параметра, и это заботится об открытии того URL в браузере по умолчанию.
Таким образом, необходимо смочь использовать system()
или подобный fork()/exec()
код, чтобы сделать то же.
nb: open
также откроет другие виды файлов / URL также, так удостоверьтесь, что это действительно - веб-URL, который Вы пытаетесь открыть иначе, у Вас есть вероятная проблема безопасности.
Objective C способ сделать это, кажется:
[[NSWorkspace sharedWorkspace] openURL:url];
где url
указатель на объект NSURL