我有一堆存儲在數組中的存儲過程腳本。每個數組都包含一個過程(即正常的創建過程......)。無論如何,當傳遞給數組時,文本中的空格將被替換爲數組中的\ t和\ r,並且下一行將被替換爲\ n。我現在想要將每個過程文本分解爲單詞並存儲在一個數組中。然而分割功能c#中的string.Replace()和string.Split()#
for (int i = 0; i < text.Length; i++)
{
string[] words = new string[text[i].Split('\t', '\n').Length];
}
上面的數組單詞但是當我檢查,保存空值的字符串。它不會返回它假定的單詞。我想可能是我必須在拆分之前更換\ n \ r \ t,如下所示... \
text[i].Replace("\n", string.Empty)
以上依然不起作用。請任何幫助,將不勝感激。我想將文本分成字符串。以下是整個方法快照。該方法接收值的過程名稱數組,我想方法來提取每個給定名稱的過程文本,然後將每個存儲的過程文本分割成我將來使用的單詞。我想循環播放,通過確定接下來接着發生的單詞來進行簡單的搜索。
更新
private void text(string[] array)
{
DataSet ds = new DataSet();
string sql = "";
progressBar1.Value = progressBar1.Minimum;
using (SqlCommand command = new SqlCommand())
{
string[] text = new string[array.Length];
string[] name = new string[array.Length];
for (int i = 0; i < array.Length; i++)
{
command.Parameters.Clear();
sql = @"SELECT DISTINCT so.name, so.type,text FROM sys.sysobjects so with (nolock) INNER JOIN sys.syscomments sc with (nolock)
ON so.id=sc.id WHERE [email protected]";
command.Connection = getconnection();
command.CommandText = sql;
command.CommandType = CommandType.Text;
command.Parameters.AddWithValue("@name", array[i].ToString());
using (SqlDataAdapter adp = new SqlDataAdapter(command))
{
ds = new DataSet();
adp.Fill(ds);
}
if (ds.Tables[0].Rows.Count > 0)
{
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
{
text[i] = ds.Tables[0].Rows[0]["text"].ToString();
name[i] = ds.Tables[0].Rows[0]["name"].ToString();
}
}
double e = (Convert.ToDouble(i)/Convert.ToDouble(array.Length));
progressBar1.Value = Convert.ToInt16(e * 100);
}
int count = 0 ;
for (int i = 0; i < text.Length; i++)
{
text[i].Replace("\n", string.Empty);
string[] words = new string[text[i].Split(new string[] { "\t", "\n" }, StringSplitOptions.RemoveEmptyEntries).Length];
for(int j = 0; j < words.Length ; j++)
{
// words[j] = text[i].Split(new string { " " }, StringSplitOptions.None);// = words[j].;
words[j] = words[j];
}
}
}
}
它返回空數組值...它分割文本並返回空字符串。數組單詞[]假設保存拆分詞。 –
你能提供一個更大的代碼快照以更好地理解你在找什麼嗎? – gpmurthy
請參閱上面的更新 –