/// <param name="fetch_rqst"></param> /// <example>FetchInit("SFacc/2:3")</example> public void FetchInit(string fetch_rqst) { Log.set("FetchInit(fetch_rqst)"); try { if (string.IsNullOrEmpty(fetch_rqst)) { FetchInit(); return; } string[] ar_rqst = fetch_rqst.Split('/'); if (!Documents.ContainsKey(ar_rqst[0])) Log.FATAL("нет такого Документа"); string strFetch = ar_rqst[0] + "/" + ar_rqst[1]; if (docDic.ContainsKey(strFetch)) return; // уже инициирован -> return Document doc = getDoc(ar_rqst[0]); string[] cols = ar_rqst[1].Split(':'); int key = Lib.ToInt(cols[0]); int val = Lib.ToInt(cols[1]); Dictionary<string, string> keyDic = new Dictionary<string, string>(); docDic.Add(strFetch, keyDic); DateTime t0 = DateTime.Now; for (int i = 1; i <= doc.Body.iEOL(); i++) { string s1 = doc.Body.Strng(i, key); if (s1 != "") try { keyDic.Add(s1, doc.Body.Strng(i, val)); } catch { Log.Warning("Запрос \"" + fetch_rqst + " Строка " + i + " неуникальное значение \"" + s1 + "\" в ключевом поле запроса!"); } } DateTime t1 = DateTime.Now; new Log("-> " + (t1 - t0)); } catch { Log.FATAL("ошибка запроса \"" + fetch_rqst + "\" для Документа \"" + name + "\""); } finally { Log.exit(); } }