问题描述
textBox1.text==openFileDialog1.Filename;StreamReadersreader=newStreamReader(textBox1.Text,Encoding.Default);textBox2.Text=sreader.ReadLine();//这段代码是不是就是只读我打开的文本文件的第一行字符串????$aaa,444,000.1,xxx.x,12345678,111111111$aaa,444,000.3,xxx.x,12345678,111111111$aaa,444,000.5,xxx.x,12345678,111111111现在这个文本里这样的字符串有很多行,我只取红色的字符,怎么取?(最好substring的方法,我是新手,用正则真的不太顺手)
解决方案
解决方案二:
("$aaa,444,000.1,xxx.x,12345678,111111111").Split(',')[2]
解决方案三:
ReadLine是当你textBox1.Text中有n或r时只返回换行符前面的部分,起到了读取单行的这样一个意思,但你最好换其他控件,如richtextbox,就可以通过他的richtextbox.Lines[0]取第一行,你遍历也可以了,很方便。textBox2.Text=sreader.Split(',')[2];你这儿不适合用substring,因为前面的字符串长度在实际使用时可能会发生变化。
解决方案四:
substring更麻烦,不如转成数组处理方便。
解决方案五:
sreader.ReadLine();就是只读一行,如果要继续一行行读下去,就要用while循环,当读到的值是null时,就表示所有行都读完了然后就如1L所说的,用逗号分割然后按索引获取对应的值吧,用Substring太麻烦了,而且之前也已经给到你过了
解决方案六:
读进来一个串,用split拆成一个数组,也可处理的。另外,有==可能出错,是手误?
解决方案七:
2楼大神,您这个split分割的方法我看书是大概能懂意思的我要取这个值是不是得先定义一个变量,把你("$aaa,444,000.1,xxx.x,12345678,111111111").Split(',')[2]分割后取到的000.1赋给他?然后再写出来我以前用的是bcb,用C#刚学的,bcb以前处理字符串,都是先检索判断字符串长度(我这个要打开的所有文本文档的每行字符串长度是固定的)然后再substring分别提取出来的。。。。麻烦大家了,我再看看书,找找材料
解决方案八:
前面看错了,不好对StreamReader对象Split你不需要用StreamReader,你已经在文本框了,可以直接通过下面方法遍历行:string[]arr=textBox1.Text.Split("n".ToCharArray());//arr[0];这是第一行for(inti=0;i<arr.Length;i++){//arr[i]遍历//arr[i].Split(',')[2];取红色的那部分字符}