private static void ReadArtSDF(string path, ref DataTable dTable) { byte err_cnt = 0; if (File.Exists(path)) { //StreamReader sr = null; Stream sr = null; do { try { //sr = new StreamReader(path, Encoding.Default); sr = new FileStream(path, FileMode.Open); break; } catch { System.Threading.Thread.Sleep(100); err_cnt++; } } while (err_cnt < 10); if (sr == null) return; BufferedStream buff = new BufferedStream(sr, 131072); StreamReader reader = new StreamReader(buff, Encoding.Default); StringReader strRd = new StringReader(reader.ReadToEnd()); sr.Close(); sr.Dispose(); string line = string.Empty; DataRow dRow = dTable.NewRow(); int sc = 0; bool isfull = new sgmode.ClassMode().FullLoader(); dTable.Rows.Clear(); winapi.WApi.OutputDebugString("ReadArtSDF_begin"); while ((line = strRd.ReadLine()) != null) { if (line == string.Empty) continue; /* if (!isfull && sc >= 10) break; if (isfull && (sc + 1) % 100 == 0) isfull = new sgmode.ClassMode().FullLoader(); */ //dRow["C"] = index++; line = line.Replace("\\\\", "\\"); dRow["ID"] = line.Substring(0, 10).Trim();//id dRow["BC"] = line.Substring(10, 14).Trim();//skod dRow["NAME"] = line.Substring(24, 35).Trim().Replace('i', 'і').Replace('I', 'І');//name dRow["DESC"] = line.Substring(59, 60).Trim().Replace('i', 'і').Replace('I', 'І');//desc dRow["UNIT"] = line.Substring(119, 15).Trim();//unit dRow["VG"] = line.Substring(134, 1).Trim();//vg if (dRow["VG"].ToString() == "") dRow["VG"] = " "; dRow["TID"] = line.Substring(135, 11).Trim();//tid dRow["TQ"] = GetDouble(line.Substring(146, 12).Trim());//tq dRow["PACK"] = GetDouble(line.Substring(158, 18).Trim());//pack dRow["WEIGHT"] = GetDouble(line.Substring(176, 18).Trim());//weight dRow["PRICE"] = GetDouble(line.Substring(194, 12).Trim());//price dRow["PR1"] = GetDouble(line.Substring(206, 12).Trim());//pr1 dRow["PR2"] = GetDouble(line.Substring(218, 12).Trim());//pr2 dRow["PR3"] = GetDouble(line.Substring(230, 12).Trim());//pr3 dRow["Q2"] = GetDouble(line.Substring(242, 12).Trim());//q2 dRow["Q3"] = GetDouble(line.Substring(254, 10).Trim());//q3 dTable.Rows.Add(dRow); dRow = dTable.NewRow(); //sc++; } winapi.WApi.OutputDebugString("ReadArtSDF_end"); } }
private static void ReadCardSDF(string path, ref DataTable dTable) { byte err_cnt = 0; if (File.Exists(path)) { StreamReader sr = null; do { try { sr = new StreamReader(path, Encoding.Default); break; } catch { System.Threading.Thread.Sleep(100); err_cnt++; } } while (err_cnt < 10); if (sr == null) return; string line = string.Empty; DataRow dRow = dTable.NewRow(); //long index = 0; int sc = 0; bool isfull = new sgmode.ClassMode().FullLoader(); while ((line = sr.ReadLine()) != null) { //dRow["C"] = index++; if (line == string.Empty) continue; if (!isfull && sc >= 10) break; if (isfull && (sc + 1) % 100 == 0) isfull = new sgmode.ClassMode().FullLoader(); dRow["CBC"] = line.Substring(0, 20).Trim();//abc dRow["CID"] = line.Substring(20, 10).Trim();//aid dRow["CDISC"] = GetDouble(line.Substring(30, 6).Trim());//cdisc try { dRow["CPRICENO"] = int.Parse(line.Substring(36).Trim());//cdisc } catch { dRow["CPRICENO"] = (int)0; } dTable.Rows.Add(dRow); dRow = dTable.NewRow(); sc++; } sr.Close(); sr.Dispose(); } }
private static void ReadAltSDF(string path, ref DataTable dTable) { byte err_cnt = 0; if (File.Exists(path)) { Stream sr = null; do { try { sr = new FileStream(path, FileMode.Open); break; } catch { System.Threading.Thread.Sleep(100); err_cnt++; } } while (err_cnt < 10); if (sr == null) return; BufferedStream buff = new BufferedStream(sr, 131072); StreamReader reader = new StreamReader(buff, Encoding.Default); StringReader strRd = new StringReader(reader.ReadToEnd()); sr.Close(); sr.Dispose(); string line = string.Empty; DataRow dRow = dTable.NewRow(); int testdsc = 0; bool test1 = new sgmode.ClassMode().FullLoader(); dTable.Rows.Clear(); winapi.WApi.OutputDebugString("ReadAltSDF_begin"); while ((line = strRd.ReadLine()) != null) { if (line == string.Empty) continue; /* if (!test1 && testdsc >= 10) break; if (test1 && (testdsc + 1) % 100 == 0) test1 = new sgmode.ClassMode().FullLoader(); */ //dRow["C"] = index++; dRow["ABC"] = line.Substring(0, 20).Trim();//abc dRow["AID"] = line.Substring(20, 10).Trim();//aid dTable.Rows.Add(dRow); dRow = dTable.NewRow(); //testdsc++; } winapi.WApi.OutputDebugString("ReadAltSDF_end"); sr.Close(); sr.Dispose(); } }