string str = srd.ReadLine();
string[] Array1 = Regex.Split(str, ":以价格 ");
string str2 = Array1[1];str读出来是="2010/1/27 8:30:00:以价格 1.404500 执行 SK"
如上Array1[0]读出来是 "2010/1/27 8:30:00"
但是执行到string str2 = Array1[1];的时候总是说超出索引范围的异常
在调试中看到str2是="1.404500 执行 SK"
也就是说已经赋值了的 就是超出范围异常求教了 解决+分···
string[] Array1 = Regex.Split(str, ":以价格 ");
string str2 = Array1[1];str读出来是="2010/1/27 8:30:00:以价格 1.404500 执行 SK"
如上Array1[0]读出来是 "2010/1/27 8:30:00"
但是执行到string str2 = Array1[1];的时候总是说超出索引范围的异常
在调试中看到str2是="1.404500 执行 SK"
也就是说已经赋值了的 就是超出范围异常求教了 解决+分···
解决方案 »
- C#中怎么获得xml节点的值?
- 数据库问题
- C#中如何调用另一个线程中实例化的COM对象?
- TreeView的节点双击就展开或者收缩,要重写哪个事件可以避免这种情况
- 朋友们帮帮忙,我应该怎么去选择呢
- 新手请教关于listbox的问题
- 如何将文件夹(含子文件夹)变为一个文件或一个流
- 为什么运行没反应???高手指点。。。。。。多谢!!!
- 请各位帮个小忙,谢谢。
- 多线程下载在 dataGridView显示的问题?
- 在DataGridViewColumn中添加一个Combox,Combox不在行中
- 组合模式 中 为什么 调用顶层的root.Display(1); 能展开全部 是不是这个函数被多次的执行?
{
//日志}
string[] Array1 = Regex.Split(str1, ":以价格 ");
string str2 = Array1[1];
这段代码运行下没错的吧!!
就抛出超出索引范围的异常
Array[0]就是OK了的或者大家帮忙想下“2010/1/27 8:30:00:以价格 1.404500 执行 SK“
我需要取出 2010/1/27 8:30:00 datetime
1.404500 double
SK string这几个字段注意 时间有时候会2010/12/5 2010/1/1 这样 也就是长度不一样·····大家帮帮忙了 小弟不胜感激
string str3=":以价格 ";
char[] ch=str3.ToCharArray();
string[] Array1 =str1.Split(ch,StringSplitOptions.RemoveEmptyEntries);
string str2 = Array1[1]; 执行结果如下:
Array1[0]="2010/1/27"
Array1[1]="8:30:00"
Array1[2]="1.404500"
Array1[3]="执行"
Array1[4]="SK"
BTW
swich([string])是可以的吧 就是条件是STRING
string str = "2010/1/27 8:30:00:以价格 1.404500 执行 SK";
string[] result = str.Split(new string[] { "以价格", "执行" }, StringSplitOptions.RemoveEmptyEntries);
DateTime dt = DateTime.Parse(result[0].TrimEnd(':'));
double d = double.Parse(result[1]);
string s = result[2];
Console.WriteLine(dt);
Console.WriteLine(d);
Console.WriteLine(s);
switch case。注意还可以直接使用字符串变量
string[] Array1 = Regex.Split(str, ":以价格 ");
string str2 = Array1[1]; 这部分代码没有问题。str读出来是="2010/1/27 8:30:00:以价格 1.404500 执行 SK"
如上Array1[0]读出来是 "2010/1/27 8:30:00"
但是执行到string str2 = Array1[1];的时候总是说超出索引范围的异常
在调试中看到str2是="1.404500 执行 SK"
也就是说已经赋值了的 就是超出范围异常 那么一定是输入的str有问题了!请仔细检查每次的输入。
或者把“:以价格”写成“***”测试一下。因为中文,尤其是标点很容易错误。
好像
srd = File.OpenText("1.txt");
while (srd.Peek() != -1)
{
string str =srd.ReadLine();
str.Trim();
string str3 = "以价格执行";
char[] ch = str3.ToCharArray();
string[] Array1 = str.Split(ch,StringSplitOptions.RemoveEmptyEntries);
//foreach(string i in Array1)
listBox1.Items.Add(Array1[2]);
运行到最后一句就抛出超出范围异常如果我这样 string str ="2010/1/27 8:30:00:以价格 1.404500 执行 SK";
处理下来就是OK的 费解了 大家帮忙TXT里面的文字是这样的2010/1/27 8:30:00:以价格 1.404500 执行 SK
2010/1/27 9:00:00:以价格 1.404900 执行 BP
2010/1/27 20:00:00:以价格 1.397800 执行 SK
2010/1/27 20:10:00:以价格 1.396500 执行 BP
2010/1/27 20:20:00:以价格 1.397200 执行 SK
2010/1/27 21:00:00:以价格 1.399900 执行 BP
2010/1/28 5:30:00:以价格 1.399700 执行 SK
2010/1/28 5:40:00:以价格 1.399600 执行 BP
2010/1/28 5:50:00:以价格 1.399600 执行 SK
2010/1/28 6:00:00:以价格 1.399500 执行 BP
2010/2/3 8:20:00:以价格 1.395000 执行 SK
string str =srd.ReadLine();string str1 ="2010/1/27 8:30:00:以价格 1.404500 执行 SK";
你比较一下从文件将"2010/1/27 8:30:00:以价格 1.404500 执行 SK"这行的内容读到str后,比较str和str1的长度是否相等,如果不等,那你将文件全部读到byte(),对照ASCII表,看有什么不可显示的字符在里面,你将这些不可显示的字符过滤掉后,再想上面那样处理就可以了。