让自己成为密码管理器,我遇到了一段代码问题.应该发生的是应用程序打开一个xml文件,然后使用该xml文档中包含的项目(帐户)填充listview.右键单击列表视图可以为各种选项提供上下文菜单,所有选项都可以单独使用.但是,打开xml文档,然后从列表视图中删除其中一个帐户,然后尝试添加另一个帐户,它会抛出以下内容:
ArgumentOutOfRangeException unhandled.
InvalidArgument=Value of '4' is not valid for 'index'.
Parameter name: index
Run Code Online (Sandbox Code Playgroud)
我假设什么是错误的是当我从列表视图中删除帐户时,我搞乱了索引变量的计数,该变量在应用程序启动时为xml文档中的每个项目递增.不确定在不破坏其他代码部分的情况下解决问题的最佳方法.我想通过计算listView中现在有多少项目来删除帐户后重新设置'index'的值,但不确定这是否最佳.这是打开xml时代码的样子.
private void openPasswordFileToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Xml.XmlDocument loadDoc = new System.Xml.XmlDocument();
try
{
loadDoc.Load(Application.StartupPath + "\\database.xml");
}
catch (System.IO.FileNotFoundException)
{
MessageBox.Show("Password Database does not exist!");
}
foreach (System.Xml.XmlNode node in loadDoc.SelectNodes("/Database/Account"))
{
lvItem = listView1.Items.Insert(index, node.Attributes["Description"].InnerText); ;
lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, node.Attributes["Username"].InnerText)); ;
lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, node.Attributes["Password"].InnerText)); ;
index += 1;
}
}
Run Code Online (Sandbox Code Playgroud)
最后删除帐户的细分:
private void removeSelectedAccountToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.Items.Remove(listView1.SelectedItems[0]);
}
Run Code Online (Sandbox Code Playgroud)
在执行以下序列之前,一切都正常工作:帐户文件已打开 - >帐户已删除 - …
我尝试了下面这段代码.我不明白为什么我继续得到一个"争论超出界限"的例外.
private void Easy_Click(object sender, EventArgs e)
{
string fileData =readFile();
if (fileData.Contains(name))
{
int i = fileData.IndexOf(name);
int easyScore = i + name.Length +1;
MessageBox.Show(fileData+" "+i);
string newString = fileData.Substring(45, 48);
Easy.Text=newString;
}
}
Run Code Online (Sandbox Code Playgroud) 这可能非常简单,但我真的无法在谷歌上正确说出来.我有一个ArrayList来保存每个线程的信息.每个线程都有自己的ID.所以,在开始时:
myList.add(theIdOfTheThread, new InfoForTheThread()); //Add new thread info at index theIdOfTheThread
Run Code Online (Sandbox Code Playgroud)
当我想要信息时:
myList.get(myId); //The info for the thread
Run Code Online (Sandbox Code Playgroud)
但是,每当较低的线程完成并删除它的条目等时,我总是得到OutOfRangeExceptions.所以,我确信必须有一个更好的类来使用它,我可以把条目放在我想要的任何索引,并拉它们在我想要的任何指数,他们留下来.
我在Matlab中注意到以下内容.
>> a = [1, 3];
>> a(3, 4) = 1
a =
1 2 0 0
0 0 0 0
0 0 0 1
>> a(5, 4)
??? Attempted to access a(5,4); index out of bounds because size(a)=[3,4].
Run Code Online (Sandbox Code Playgroud)
a最初的尺寸不是1比2?当我写信时,为什么它不会抱怨,a(3, 4)但只有在我读书时a(5, 4)?
谁能帮我理解?
提前致谢.
我对python很新.我有一个我需要理解的错误.
代码:
config.py:
# Vou definir os feeds
feeds_updates = [{"feedurl": "http://aaa1.com/rss/punch.rss", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa2.com/rss.xml", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa3.com/Heaven", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa4.com/feed.php", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa5.com/index.php?format=feed&type=rss", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa6.com/rss.xml", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa7.com/?format=xml", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa8/site/component/rsssyndicator/?feed_id=1", "linktoourpage": "http://www.ha.com/fun.htm"}]
Run Code Online (Sandbox Code Playgroud)
twitterC.py
# -*- coding: utf-8 -*-
import config # Ficheiro de configuracao
import twitter
import random
import sqlite3
import time
import bitly_api #https://github.com/bitly/bitly-api-python
import feedparser
...
# Vou escolher um feed ao acaso
feed_a_enviar = random.choice(config.feeds_updates)
# Vou …Run Code Online (Sandbox Code Playgroud) 当我尝试将下面插入我的MySQL时
INSERT INTO `rooms` (`id`, `ip`) VALUES ('131213', '-259857341');
Run Code Online (Sandbox Code Playgroud)
我失败了以下错误:
Warning: #1264 Out of range value for column 'ip' at row 1
Run Code Online (Sandbox Code Playgroud)
我环顾四周,但还没有找到如何解决或解决它...
我的字段是unsigned int,它应该适用于该条目.
有什么问题,如何解决?
我使用unsigned int因为我想使用inet_ntoa/aton存储ips.
编辑:
我在MySQL网站上使用unsigned INT作为推荐:
要存储由INET_ATON()生成的值,请使用INT UNSIGNED列而不是INT(已签名).如果使用带符号列,则无法正确存储与第一个八位字节大于127的IP地址对应的值.请参见第10.6节"超出范围和溢出处理".
http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html
string Farfallino::decode(string buff) {
string stringa;
size_t pos;
while(1) {
while(pos = (buff.find("afa"))) {
buff.erase(pos, 3);
buff.insert(pos, "a");
}
while(pos = (buff.find("efe"))) {
buff.erase(pos, 3);
buff.insert(pos, "e");
}
while(pos = (buff.find("ifi"))) {
buff.erase(pos, 3);
buff.insert(pos, "i");
}
while(pos = (buff.find("ofo"))) {
buff.erase(pos, 3);
buff.insert(pos, "o");
}
while(pos = (buff.find("ufu"))) {
buff.erase(pos, 3);
buff.insert(pos, "u");
}
}
return stringa;
}
Run Code Online (Sandbox Code Playgroud)
我试图擦除传递给函数的字符串中的每个"afa""efe""ifi""ofo"和"ufu",但它给了我这个错误.我不知道我做错了什么..

你可以清楚地看到args []的最高索引是2,但迭代器不知何故得到3.
编辑:评论的Thread.Sleep神奇地修复了问题.
我试图在字符“:”上拆分一个字符串,然后查看索引 2 是否存在。我的分割字符串函数工作得很好,因为我已经使用它很长一段时间了,但是在尝试尝试{} catch()之后,它没有捕获执行,而是在我的屏幕上显示调试错误。
std::vector<std::string> index = split_string(random_stringgg);
std::cout << index[1] << std::endl;
try {
std::string test = index[2];
}
catch (...) {
std::cout << "error occured" << std::endl;
return false;
}
std::cout << "no error";
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该尝试找到向量“索引”的第二个索引,然后捕获执行(如果没有/无法找到它)。然而,这对我不起作用,即使在添加 try/catch 之后,它也会抛出“向量下标超出范围”。我的问题是为什么它没有捕获并仍然显示错误?
我是三个中等程度的程序员团队的一员,我们目前正在尝试用C++编写程序来体现我们的新加密算法.但是,我们遇到了一个错误,表明我们在某个时刻超过了字符串的长度.我自己试过调试这个,但我没有运气.它在jumble()函数中,但是......
无论如何,这是我们的源代码粘贴与临时main()函数:http: //pastebin.com/GvvYAsKg
它编译得很好,但在运行时,我们收到以下错误:
抛出'std :: out_of_range'的实例后调用terminate
():basic_string :: substr Aborted
我正在为学校做一个项目.该项目是用户需要猜测对象价格的游戏.价格是随机生成的.用户有5次机会猜测它.如果他没有,游戏就结束了,并被问到是否要重播.这个游戏的名称可以称为价格合适.我的问题是,当我运行项目时,它会在收到用户的答案之前崩溃,以确定他是否想要重播.
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at pkgthepriceisrightv1.ThePriceisRightV1.main(ThePriceisRightV1.java:102)
Java Result: 1
BUILD SUCCESSFUL (total time: 7 seconds)
Run Code Online (Sandbox Code Playgroud)
这是错误.我不知道是什么问题....
这里是我正在获取信息的代码行,来自用户的是或否,这是第102行,在错误代码中,我已经声明了我的所有变量.valeur_recommencer是一个char,而restart是一个字符串.我的所有代码都是用Java编写的.请原谅我的代码语言,全部是法语,是学校的要求.
recommencer = lire.nextLine();
valeur_recommencer = recommencer.charAt(0);
Run Code Online (Sandbox Code Playgroud) 我有下面的代码只运行正常,除非到达Combobox的最后一个索引,它给出标题中提到的错误.更多细节:无效参数='17'的值对'SelectedIndex'无效.参数名称:SelectedIndex
代码遍历组合框中可用的所有索引并提供所需的输出.但是当达到最后一个值时,我得到了这个错误.有人可以指导我吗?
Private Sub ExportButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExportButton.Click
Dim LastItem As Integer = 0
LastItem = TagComboBox1.Items.Count
For i As Integer = 0 To LastItem
TagComboBox1.SelectedIndex = i
'CODE to perform some operation..
If TagComboBox1.SelectedIndex = LastItem Then
Exit For
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud) 我尝试用左右范围为基础的for循环中,如果您使用范围为基础,通过矢量循环来运行到超出范围的错误有没有办法避免这种错误,如果您使用的是基于范围的for循环
int main()
{
vector<int> num{ 1,2,3,4,5 };
for (auto i : num)
{
cout << num[i] << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
它显示了这个错误
c++ for-loop outofrangeexception visual-c++ range-based-loop