如何读回StringReader循环c#的行?
有没有办法在StringReader中连接回上一条(循环线)?因为我想在一个文本上循环找到一个特定的单词,然后在找到后与前一行连接回去 以下是我迄今为止所做的工作:如何读回StringReader循环c#的行?,c#,split,C#,Split,有没有办法在StringReader中连接回上一条(循环线)?因为我想在一个文本上循环找到一个特定的单词,然后在找到后与前一行连接回去 以下是我迄今为止所做的工作: using (StringReader reader = new StringReader(currentText)) { string line; var prevline = ""; var newline = ""; var des= "";
using (StringReader reader = new StringReader(currentText))
{
string line;
var prevline = "";
var newline = "";
var des= "";
while ((line = reader.ReadLine()) != null)
{
string[] splittedTxt = line.Split(new[] { " " },
StringSplitOptions.RemoveEmptyEntries);
if (line.Contains("Fee"))
{
for (int i = 0; i < splittedTxt.Length; i++)
{
des += splittedTxt[i] + " ";
newline = prevline +" " + des;
}
}
}
}
使用(StringReader=新StringReader(currentText))
{
弦线;
var prevline=“”;
var newline=“”;
var des=“”;
而((line=reader.ReadLine())!=null)
{
string[]splittedTxt=line.Split(新[]{”“},
StringSplitOptions.RemoveEmptyEntries);
如果(第行包含(“费用”))
{
for(int i=0;i
StringReader仅用于向前读取文件
字符串的问题在于,为了正确存储和显示字符串,在读取字符串时需要处理编码,并且编码的大小不同
这意味着您需要降低级别,处理流,向前和向后搜索,然后确定和处理字符串的编码差异
有关更多详细信息和代码示例,请参见:
在您的情况下,您似乎只需要上一行。所以我认为不需要反向阅读,您只需要在每次迭代中存储它,然后仅在需要时使用它。看起来你已经拥有了你所需要的大部分,你只需要像这样将行存储在prevline中:
while ((line = reader.ReadLine()) != null)
{
string[] splittedTxt = line.Split(new[] { " " },
StringSplitOptions.RemoveEmptyEntries);
if (line.Contains("Fee"))
{
for (int i = 0; i < splittedTxt.Length; i++)
{
des += splittedTxt[i] + " ";
newline = prevline +" " + des;
}
}
prevline = line;
}
while((line=reader.ReadLine())!=null)
{
string[]splittedTxt=line.Split(新[]{”“},
StringSplitOptions.RemoveEmptyEntries);
如果(第行包含(“费用”))
{
for(int i=0;i
StringReader仅用于向前读取文件
字符串的问题在于,为了正确存储和显示字符串,在读取字符串时需要处理编码,并且编码的大小不同
这意味着您需要降低级别,处理流,向前和向后搜索,然后确定和处理字符串的编码差异
有关更多详细信息和代码示例,请参见:
在您的情况下,您似乎只需要上一行。所以我认为不需要反向阅读,您只需要在每次迭代中存储它,然后仅在需要时使用它。看起来你已经拥有了你所需要的大部分,你只需要像这样将行存储在prevline中:
while ((line = reader.ReadLine()) != null)
{
string[] splittedTxt = line.Split(new[] { " " },
StringSplitOptions.RemoveEmptyEntries);
if (line.Contains("Fee"))
{
for (int i = 0; i < splittedTxt.Length; i++)
{
des += splittedTxt[i] + " ";
newline = prevline +" " + des;
}
}
prevline = line;
}
while((line=reader.ReadLine())!=null)
{
string[]splittedTxt=line.Split(新[]{”“},
StringSplitOptions.RemoveEmptyEntries);
如果(第行包含(“费用”))
{
for(int i=0;i
你想实现什么?举个例子,我实际上是从pdf创建了一个新的数据表,我想在excel中找到包含费用的文本,但在我使用pdfReader
后,这些行被拆分为文本和不同的行,因此,我想在找到单词后加入这一行代码中有pdfreader吗?那一行应该在itextSharp下我想共享pdf阅读器代码片段你想实现什么?通过一些示例详细说明我实际上从pdf创建了一个新的数据表,我想找到包含excel中的费用的文本,但是在我使用了pdfReader
之后,这些行被分割成了文本和不同的行,所以我想在找到单词后再把这行连接起来。代码中有pdfReader吗?那一行应该在itextSharp下,我想共享pdf阅读器代码段