我正在创建一个程序,我将用它来帮助我的客户恢复放在办公文档上的密码,如word和excel.该程序工作得很好,但它比你可以免费下载的类似产品慢很多.我想使用我自己的程序,因为我觉得你免费下载的很多都不是完全安全的,并且缺少我想要的一些控件.
更重要的是......我需要帮助弄清楚为什么我的程序如此慢.我用一个简单的3个字母的密码"TFX"创建了一个excel文档.我下载的程序找到密码的速度几乎和我点击"go"后放开鼠标按钮一样快.我的节目需要10分钟.这是3个字符的循环:
private string ThreeCharPass(string file, Microsoft.Office.Interop.Excel.Application exApp, char[] combarr)
{
for (int three = 0; three < combarr.Length; three++)
{
for (int two = 0; two < combarr.Length; two++)
{
for (int one = 0; one < combarr.Length; one++)
{
try
{
string pass = combarr[three].ToString() + combarr[two].ToString() + combarr[one].ToString();
exApp.Workbooks.Open(file, false, true, Type.Missing, pass, Type.Missing, true, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
return pass;
}
catch
{
}
}
}
}
return string.Empty;
}
Run Code Online (Sandbox Code Playgroud)
数组'combarr'是一个包含密码中所有可能字符的字符数组.它是在程序的早期基于用户选择的选项生成的.我认为问题必须在于我循环遍历数组以创建密码组合的方式,因为只有在这个3字符密码方法中,它花费超过5分钟,其他"专业"程序花费几秒钟.任何反馈将不胜感激!!
我得到一个包含运算符+, - ,*,/和括号的算术公式(可能会也可能不会改变运算符的自然优先级).一个例子如下:a/b + f - (c + d)*e - a*c.并且我被要求使用堆栈(实现为链接列表)以跟踪操作数和运算符:我的程序应该如何工作的示例如下:
我难以理解的问题是如何区分操作数的优先级!
这是我写的代码的不完整版本:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
typedef struct btnode Btree;
typedef struct node s_Node;
struct btnode {
char info;
Btree *left;
Btree *right;
};
struct node {
char element;
s_Node*next;
};
typedef struct{
s_Node *top_stack;
} stack_t;
int IsOperator(char c);
main () {
FILE* fp;
stack_t …Run Code Online (Sandbox Code Playgroud) 你认为什么是最img.Group.Contents简洁的方法来循环并写出galleryImage的值.??? 对象?
galleryImage.TinyImage = new myModel.Image._Img();
galleryImage.TinyImage.Url = img.Group.Contents[0].Url;
galleryImage.TinyImage.FileSize = img.Group.Contents[0].FileSize;
galleryImage.TinyImage.Type = img.Group.Contents[0].Type;
galleryImage.TinyImage.Medium = img.Group.Contents[0].Medium;
galleryImage.TinyImage.Width = img.Group.Contents[0].Width;
galleryImage.TinyImage.Height = img.Group.Contents[0].Height;
galleryImage.TinyImage.Hash = img.Group.Contents[0].Hash;
galleryImage.Thumbnail.Url = img.Group.Contents[1].Url;
galleryImage.Thumbnail.FileSize = img.Group.Contents[1].FileSize;
galleryImage.Thumbnail.Type = img.Group.Contents[1].Type;
galleryImage.Thumbnail.Medium = img.Group.Contents[1].Medium;
galleryImage.Thumbnail.Width = img.Group.Contents[1].Width;
galleryImage.Thumbnail.Height = img.Group.Contents[1].Height;
galleryImage.Thumbnail.Hash = img.Group.Contents[1].Hash;
galleryImage.SmallImage.Url = img.Group.Contents[2].Url;
galleryImage.SmallImage.FileSize = img.Group.Contents[2].FileSize;
galleryImage.SmallImage.Type = img.Group.Contents[2].Type;
galleryImage.SmallImage.Medium = img.Group.Contents[2].Medium;
galleryImage.SmallImage.Width = img.Group.Contents[2].Width;
galleryImage.SmallImage.Height = img.Group.Contents[2].Height;
galleryImage.SmallImage.Hash = img.Group.Contents[2].Hash;
galleryImage.MediumImage.Url = img.Group.Contents[3].Url;
galleryImage.MediumImage.FileSize = img.Group.Contents[3].FileSize;
galleryImage.MediumImage.Type = img.Group.Contents[3].Type; …Run Code Online (Sandbox Code Playgroud) 我目前正在为一个涉及构建"tamagotchi"程序的uni项目开发一个程序,但是我很早就遇到了与我用于存储与每个宠物相关的值的类构造相关的错误.记录的一部分.但是,当我跟踪程序时,变量似乎没有初始化,并且NullReferenceException一旦程序第一次调用变量就会抛出变量.有什么想法吗?
static class GlobalVars // Static class used to store pet values as 'global' variables.
{
public static TTamagotchiPet Pet1 { get; set; }
public static TTamagotchiPet Pet2 { get; set; }
public static TTamagotchiPet Pet3 { get; set; }
public static TTamagotchiPet Pet4 { get; set; }
}
public void frmTamagotchi_Load(object sender, EventArgs e) // On Load event; initialises Pet 1.
{
tmrUpdate.Enabled = true;
GlobalVars.Pet1.Active = true;
//GlobalVars.Pet1.Dead = false;
//GlobalVars.Pet1.FunValue = 0;
//GlobalVars.Pet1.FoodValue = 0; …Run Code Online (Sandbox Code Playgroud) 在我的数据库中,我有用户名,密码,地址,城市等.使用此代码,它从数据库中删除整行:
SqlCommand cmd = new SqlCommand("Delete from customer_registration where username='"+ Session["username"] +"'",del);
Run Code Online (Sandbox Code Playgroud)
我的数据库有数据: Db
如何删除某些列数据,或将其设置回NULL? D b
我是async/await的新手.但我创建了POC,但我仍然感到困惑.
方法的结果
public async void WriteLineFunc(string str)
{
await Task.Factory.StartNew(() => WaitFor2Secs());
//WaitFor2Secs();
Console.WriteLine(str);
}
Run Code Online (Sandbox Code Playgroud)
和
public async void WriteLineFunc(string str)
{
//await Task.Factory.StartNew(() => WaitFor2Secs());
WaitFor2Secs();
Console.WriteLine(str);
}
Run Code Online (Sandbox Code Playgroud)
是一样的.制作等待方法的重点是什么?只是在其他线程上运行一个函数并等待它完成?
我有一个.txt文件,看起来像:
(0.781860352, -11.6927013, 7.20992613)
(0.364501476, -9.41256046, 6.87873077)
(0.394773483, -7.85253429, 6.90275288)
Run Code Online (Sandbox Code Playgroud)
我需要一个代码来分别从每一行访问每个double.我遇到了解决这个问题的麻烦.有任何想法吗?
谢谢!
更新:
所以,就像我说的那样,我使用Kerrek SB的建议从每一行访问每个双,然后我将这些值存储到向量的组件中,然后我访问每个组件并执行操作(比如将它们相乘),以及将结果存储到数组中; 最后我添加了数组的内容.无论如何,这是代码:
int main() {
//=============================
//Initial Declarations
//=============================
Vector3 r(0,0,0);
int num = 0 , i;
string line;
char c, d1, d2, d3, d4;
double v1, v2, v3 , b[num];
//=============================
//Counting Lines in File
//=============================
ifstream is;
is.open ("data.txt");
while (is.good())
{
c = is.get();
if (c=='\n')num++;
}
is.close();
cout<<"Number of lines in file is "<<num<<endl;
//=============================
//Getting Data
//=============================
ifstream infile("data.txt");
for (line …Run Code Online (Sandbox Code Playgroud) 我有一个关于WaitHandle.WaitAll工作的问题,并希望得到任何帮助.
让我们假设我有这样的情况:父线程正在打开几个子线程,并且必须等待"做其他事情",直到子线程完成他们的工作.
我使用WaitHandle.WaitAll并希望继续使用此方法.(没有Thread.Join等,请:))
ManualResetEvent[] events = new ManualResetEvent[list.Count];
foreach (string row in list)
{
events[i] = new ManualResetEvent(false);
Thread thread = new Thread(new ParameterizedThreadStart(DoSomething));
thread.Start(events[i]); // start child thread
System.Threading.Thread.Sleep(1000000);
i++;
}
WaitHandle.WaitAll(events); // wait for child threads finish their work
...
...
private DoSomething(object sth)
{
// some stuff that executes only 1 second
ManualResetEvent.Set()
}
Run Code Online (Sandbox Code Playgroud)
因此,第一个新启动的子线程的情况是调用ManualResetEvent.Set()是在父线程中调用WaitHandle.WaitAll(事件)之前.因为打开新子线程的循环有一些长时间超时.
所以我的问题,不是这样的时间问题吗?不应该在调用ManualResetEvent.Set()之前调用WaitHandle.WaitAll吗?
我是Java的新手,实际上是编程.我知道模数运算符(%)返回两个数的余数,但是,我不明白为什么17%40 = 17.
据我所知,40%17 = 6,17%5 = 2,40%5 = 0.我得到了剩下的返回值的要点.但是17%40 = 17让我难过.
我可以设计的唯一合理化是,由于余数小于1,所以返回总值17,为什么不是0?请帮我解释这个谜.
我是lambda表达的新手,所以我试着解决一个问题.但我不能.所以有人可以建议解决这个问题.
我有一个班级客户.在里面我创建了另外3个类并为3个类创建了可观察的集合.我为这个客户创建了一个可观察的集合
ObservableCollection<Customer> customer2;
public class Customer
{
public string CusName { get; set; }
public int CusAge { get; set; }
public ObservableCollection<Bankdetails> bankdetails;
public ObservableCollection<order> orderlist;
public ObservableCollection<orderdetails> orderdetailslist;
public class Bankdetails
{
public string Bankaccno { get; set; }
public string bankname { get; set; }
public int bankid { get; set; }
}
public class order
{
public string ordername { get; set; }
public string orderid { get; set; }
}
public class orderdetails
{ …Run Code Online (Sandbox Code Playgroud)