索引超出数组界限,求助!!

cw6666666 2018-01-02 08:08:04
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication26
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string cw; string wc;
public void button1_Click(object sender, EventArgs e)
{
readtextfromfile();
}
void readtextfromfile()
{
OpenFileDialog o = new OpenFileDialog();
if (o.ShowDialog() == DialogResult.OK)
{
string file = o.FileName;
string ext = file.Substring(file.LastIndexOf("."));
if (ext.ToLower() != ".txt")
{
MessageBox.Show("bushiwenjian");
return;
}
else
{
richTextBox1.Text = File.ReadAllText(o.FileName, Encoding.Default);
}
}
this.cw = richTextBox1.Text;


}

private void richTextBox2_TextChanged(object sender, EventArgs e)
{
int start = richTextBox2.SelectionStart;
int m = richTextBox1.TextLength > richTextBox2.TextLength ? richTextBox2.TextLength : richTextBox1.TextLength;
for (int i = 0; i < m; i++)
{
if (richTextBox1.Text[i] != richTextBox2.Text[i])
{
richTextBox2.Select(i, 1);
richTextBox2.SelectionColor = Color.Red;
}
}
if (richTextBox2.TextLength > richTextBox1.TextLength)
{
richTextBox2.Select(richTextBox1.TextLength, richTextBox2.TextLength - richTextBox1.TextLength);
richTextBox2.SelectionColor = Color.Red;
}
richTextBox2.SelectionStart = start;
richTextBox2.SelectionColor = richTextBox1.ForeColor;


}



private void button2_Click(object sender, EventArgs e)
{
richTextBox2.SelectAll();

this.wc = richTextBox2.Text;
string[] cc; string[] ww;
cc = cw.Split(' ', '.', ',');
ww = wc.Split(' ', '.', ',');
int j = 0; double t;
for (int i = 0; i < 10; i++)
{
bool result;result = Equals(cc[i], ww[i]);
if (result==true)
{
j++;
}
}

t = (double)j / 10;
string tText = t.ToString("0.0%");

label1.Text = tText;
}

}
}



红色部分运行出现索引超出数组界限
...全文
726 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
E次奥 2018-01-03
  • 打赏
  • 举报
回复
cw都没有赋值!
秋的红果实 2018-01-03
  • 打赏
  • 举报
回复
for (int i = 0; i < (cc.Length>ww.Length?ww.Length:cc.Length); i++)                 {                 bool result;result = Equals(cc[i], ww[i]);
cw6666666 2018-01-02
  • 打赏
  • 举报
回复
引用 2 楼 From_TaiWan 的回复:
for (int i = 0; i < 10; i++)                 {                 bool result;result = Equals(cc[i], ww[i]); ==> 为什么要小于10?怎么提前确定的 一般是i < min{cc.length,ww.length}
哦哦哦哦
Jason_Mao1 2018-01-02
  • 打赏
  • 举报
回复
老乡我觉得你应该先做一个数值的判断,再做处理。取扩展名有相应的方法 System.IO.Path.GetExtension 。 希望能帮助到你。
秋的红果实 2018-01-02
  • 打赏
  • 举报
回复
for (int i = 0; i < 10; i++)                 {                 bool result;result = Equals(cc[i], ww[i]); ==> 为什么要小于10?怎么提前确定的 一般是i < min{cc.length,ww.length}
xuzuning 2018-01-02
  • 打赏
  • 举报
回复
你怎么知道 cc 和 ww 有 10 个元素?

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧