Application.DoEvents();
StreamReader sr = new StreamReader(path);
System.Collections.ArrayList list = new System.Collections.ArrayList();
progress.Minimum = 0;
progress.Maximum = y;//怎么獲取文檔是的行數目 while (sr.Peek()!=-1)
{
progress.Value++;
list.Add(sr.ReadLine());
}
sr.Close();這樣讀取好慢..因為文件很大上了600M
怎么用多線程加快點速度???
StreamReader sr = new StreamReader(path);
System.Collections.ArrayList list = new System.Collections.ArrayList();
progress.Minimum = 0;
progress.Maximum = y;//怎么獲取文檔是的行數目 while (sr.Peek()!=-1)
{
progress.Value++;
list.Add(sr.ReadLine());
}
sr.Close();這樣讀取好慢..因為文件很大上了600M
怎么用多線程加快點速度???
解决方案 »
- 求大侠指教
- 变量赋值
- C#中正则表达式中换行的处理
- 一个tooltrip工具栏的问题。
- petshop里面的SQLHelper怎么和我在微软下载的SQLHelper内容不一样呢?
- 请教一个奇怪的,有关C# .NET Win Form App里,panel控件的问题!
- 怎么屏蔽点击dataGrid的无效行的异常。
- 怎样获取textbox.text中内容的值的类型?
- 哪有C# 基础的习题..
- WPF Menu中的文字位置 问题
- 数组的维数能用变量声明吗?
- C++函数中需要传入地址符( GetInf(int itan , PW_TAG &*Stag) ),要把这个函数转成C#调用,后面这个输入参数 怎么该??
comm c = new comm();
private string path;
private int line = 0;
public Dataclass(string path)
{
this.path = path;
}
private int DoWork()
{
StreamReader sr = new StreamReader(path);
while (sr.ReadLine()!=null)
{
line++;
}
sr.Close();
return line;
} /// <summary>
/// 文檔數據讀入Dataset
/// </summary>
/// <param name = "tablename">數據表名</param>
/// <param name = "n">從文檔多少行開始作為數據</param>
/// <param name = "col">列數</param>
/// <param name = "ch">文檔路徑</param>
public DataSet Tablebase(string tablename, int n, int col,char ch,ToolStripStatusLabel rowconut, ToolStripProgressBar progress)
{
try
{
StreamReader sr = new StreamReader(path);
progress.Minimum = 0;
int rows = DoWork();
progress.Maximum = rows;
DataSet ds = myset(tablename);
string line = "";
for (int i = 0; i < rows; i++)
{
rowconut.Text = "行數:" + i + "/" + rows.ToString();
Application.DoEvents();
line = sr.ReadLine();
progress.Value++;
if (i >= n)
{
string[] srvalue = line.Split(',');
DataRow row = ds.Tables[tablename].NewRow();
for (int j = 0; j < ds.Tables[tablename].Columns.Count; j++)
{
row[j] = srvalue[j];
}
ds.Tables[tablename].Rows.Add(row);
}
}
sr.Close();
//if (list.Count == 0)
//{
// MessageBox.Show("文檔中沒有數據行!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
// return null;
//}
//if (list.Count < n - 1)
//{
// MessageBox.Show("開始數據行超過範圍!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
// return null;
//}
return ds;
}
catch (Exception err) { throw err; }讀取出來後插入數據庫!~~
想用多線程來讀!~~
那個大哥給個實例```
現在衹能每次讀取30個逗號長度的字條做為一條數據來插入數據庫(txt中數據間的分隔符是逗號)
Jet 4.0的驱动支持文本文件的,其中的数据项及字段也是逗号分割的。