小编vex*_*exe的帖子

使用批处理文件以递归方式在目录中删除特定类型(扩展名)的所有文件

我需要删除dir1和dir2中的所有.jpg和.txt文件(例如).

我试过的是:

@echo off
FOR %%p IN (C:\testFolder D:\testFolder) DO FOR %%t IN (*.jpg *.txt) DO del /s %%p\%%t
Run Code Online (Sandbox Code Playgroud)

在一些目录中它起作用; 在其他人看来没有.

例如,这没有做任何事情:

@echo off
FOR %%p IN (C:\Users\vexe\Pictures\sample) DO FOR %%t IN (*.jpg) DO del /s %%p\%%t
Run Code Online (Sandbox Code Playgroud)

我在第二个片段中遗漏了什么?它为什么不起作用?

cmd batch-file

67
推荐指数
3
解决办法
12万
查看次数

在C#winform中,如何使用exe文件附加资源(例如图像)?

我不知道我是否正确,但基本上发生了什么是我创建了一个winform应用程序从资源文件夹加载其图像..问题是,当我构建项目并获得exe并将其提供给朋友,他不会像我那样拥有那个资源文件夹,所以他会收到一个错误说丢失文件.

我怎么能以某种方式混合,组合或附加图像与我的应用程序?

c# winforms

19
推荐指数
2
解决办法
3万
查看次数

行主要与列主要混淆

我一直在阅读很多关于这一点,我读的越多,我就越困惑.

我的理解:在行主要行连续存储在内存中,列主要列连续存储在内存中.因此,如果我们有一系列数字[1, ..., 9]并且我们想将它们存储在行主矩阵中,我们得到:

|1, 2, 3|
|4, 5, 6|
|7, 8, 9|
Run Code Online (Sandbox Code Playgroud)

而专栏(如果我错了,纠正我)是:

|1, 4, 7|
|2, 5, 8|
|3, 6, 9|
Run Code Online (Sandbox Code Playgroud)

这实际上是前一个矩阵的转置.

我的困惑:嗯,我没有看到任何区别.如果我们迭代两个矩阵(按第一个中的行和第二个中的列),我们将以相同的顺序覆盖相同的值:1, 2, 3, ..., 9

即使矩阵乘法是相同的,我们采用第一个连续元素并将它们与第二个矩阵列相乘.所以说我们有矩阵M:

|1, 0, 4| 
|5, 2, 7| 
|6, 0, 0|
Run Code Online (Sandbox Code Playgroud)

如果我们乘上一列,主要基质RM,那就是R x M我们会得到:

|1*1 + 2*0 + 3*4, 1*5 + 2*2 + 3*7, etc|
|etc.. |
|etc.. |
Run Code Online (Sandbox Code Playgroud)

如果我们乘列矩阵主要CM,那就是C x M采取的列C,而不是其行,我们得到完全来自相同的结果R …

c opengl matrix linear-algebra

16
推荐指数
3
解决办法
3万
查看次数

复杂的树数据结构

我正在制作一个游戏的物品系统,我们正在制作类似于古老的古典居民邪恶游戏.目前,我正在实施项目组合,您可以将不同的项目相互组合以获得新的内容.并发症来自这样的事实:存在具有多个转换级别的项目,并且每个级别具有多个配合.请允许我澄清一下,我们假设我们有绿色,红色和蓝色草药.你不能组合红色+蓝色,但你可以结合G + B你会得到像GreenBlueHerb或G + R来获得GreenRedHerb,现在如果你将这些结果中的任何一个结合到一个蓝色草本,你会得到一个GreyHerb.正如你从这个例子中看到的那样,对于绿色草本有2级转换,因为它达到第一级,有两个可能的配偶,(红色|蓝色),从那一点到第二级,只有一个配偶(蓝色).

所以我提出了一个有趣的树,涵盖了nLevels所有可能性,而不仅仅是2,层越多,树越复杂,看看这个3级的例子,你在中间看到的三角形形状代表一个item,以及它周围的其他颜色形状代表了它达到下一个级别的可能配合:

在此输入图像描述

有很多不同的组合,我可以首先将我的项目与蓝色组合,然后是红色,然后是绿色,或绿色,然后是红色,然后是蓝色等.达到我的最终水平.我想出了代表所有可能组合的树:

在此输入图像描述

(右边的数字是#levels,左边是每个级别的#nodes)但是正如你所看到的,它是多余的.如果你看一下端节点,它们都应该是一个节点,因为它们都会导致相同的最终结果,即G + R + B. 对于这种情况,总共有7种可能的状态,这是正确的树:

在此输入图像描述

这很有意义,注意节点数量的巨大差异.

现在我的问题是,这是什么样的数据结构? - 我很确定没有内置的,所以我必须制作我自己的定制,我实际上做了,并设法让它工作,但有问题.(有一点值得一提的是,我从XML文件中获取节点信息,通过信息我的意思是itemRequired到达节点/级别,那个节点上的项目名称是什么,例如:绿色草本为了达到RedGreenHerb状态,它'需要'一个RedHerb,当这种组合发生时,名称" GreenHerb "将变为" RedGreenHerb ",如果你想知道RedHerb会发生什么,它就会消失,我不需要它了,这是我的数据结构:

public struct TransData
{
    public TransData(string transItemName, string itemRequired)
    {
        this.transItemName = transItemName;
        this.itemRequired = itemRequired;
    }
    public string transItemName;
    public string itemRequired;
}

public class TransNode
{
    public List<TransNode> nodes = new List<TransNode>();
    public TransData data;
    public TransNode(TransNode node): this(node.data.transItemName, node.data.itemRequired) { …
Run Code Online (Sandbox Code Playgroud)

c# algorithm tree data-structures

15
推荐指数
1
解决办法
2662
查看次数

在C#winform中,我得到:"只支持truetype字体.这不是TrueType字体"

我有C#winform,我安装了几个ttf字体,但是当我将文本框字体设置为我下载的任何一个时,我得到这个错误即使我100%确定我安装的字体是ttf ..为什么?以及如何解决这个问题?

c# fonts truetype

14
推荐指数
2
解决办法
3万
查看次数

是否可以使用派生参数而不是基础参数覆盖方法?

我陷入了这种情况:

  1. 我有一个抽象的类Ammo,有AmmoBoxClip作为孩子.
  2. 我有一个抽象的类Weapon,有FirearmMelee作为孩子.
  3. Firearm是抽象的,ClipWeaponShellWeapon孩子一样.
  4. 在里面Firearm,有一个void Reload(Ammo ammo);

问题是,a ClipWeapon可以使用a Clip和an AmmoBox来重新加载:

public override void Reload(Ammo ammo)
{
    if (ammo is Clip)
    {
        SwapClips(ammo as Clip);
    }
    else if (ammo is AmmoBox)
    {
        var ammoBox = ammo as AmmoBox;
        // AddBullets returns how many bullets has left from its parameter
        ammoBox.Set(clip.AddBullets(ammoBox.nBullets));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,a ShellWeapon,只能用一个AmmoBox来重装.我能做到这一点: …

c# inheritance abstract-class overriding

13
推荐指数
1
解决办法
8572
查看次数

在C#中,为什么我在声明它时会看到存储在我的i​​nt变量中的零,但是仍然会收到错误,说我应该初始化它?

在C#中,如果我这样做:

int x;
Run Code Online (Sandbox Code Playgroud)

然后点击F10,我看到存储在x中的零.

但是当我尝试使用x时,它告诉我应该初始化它..为什么会这样?那里应该是零,对吧?

关于数组也是如此,所以:

int[]a = new int[5];
Run Code Online (Sandbox Code Playgroud)

如果我们F10那么,我们会看到那里的所有整数都是零.

这是怎么回事 ?为什么我必须在C#中初始化一个变量而不像C++?

c# variables

8
推荐指数
1
解决办法
1294
查看次数

通过匿名类型的帮助缩短此LINQ查询?

我正在查询MethodInfo[]我正在尝试查找返回类型为的所有方法void,并且只有一个特定类型的参数.我想以最简约和最短的方式做到这一点.

一种方法是:

var validMethods = methods.Where(m => m.ReturnType == typeof(void) && m.GetParameters().Length == 1 && m.GetParameters()[0].ParameterType == wantedType);
Run Code Online (Sandbox Code Playgroud)

要么

var validMethods = methods
      .Where(m => m.ReturnType == typeof(void))
      .Where(m.GetParameters().Length == 1 && m.GetParameters()[0].ParameterType == wantedType);
Run Code Online (Sandbox Code Playgroud)

但是有一个多余的GetParameters电话 - 一个电话就足够了.所以我认为我可以将其缓存为匿名类型,如下所示:

var validMethods = methods
    .Where(m => m.ReturnType == typeof(void))
    .Select(m => new { Params = m.GetParameters() })
    .Where(p => p.Length == 1 && p[0].ParameterType == transition.eventType);
Run Code Online (Sandbox Code Playgroud)

但它没有工作,我得到了错误说没有Length,也不是一个索引的匿名类型p是类型ParameterInfo[] …

.net c# linq anonymous-types where

8
推荐指数
1
解决办法
248
查看次数

阻止用户调整ListView中列宽的大小?

我有一个ListView在我的Winform中有4列,名称,金钱,ID和级别.

问题是当我运行我的应用程序时,我仍然有能力弄乱列宽并更改它们.

我搜索并发现我应该这样做:

private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
{
  e.Cancel = true;
  e.NewWidth = listView1.Columns[e.ColumnIndex].Width;
}
Run Code Online (Sandbox Code Playgroud)

但问题是,当我调试和Ccanged列宽度时,这个事件甚至没有发射!

它为什么不开火?

我怎样才能使列宽固定?

我创建了一个新的winform应用程序以防万一我的旧版本出现问题,它被解雇了,但只是第一次运行应用程序..这里是代码:

namespace CsharpWinformTestingStuff
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      listView1.ColumnWidthChanging += new ColumnWidthChangingEventHandler(listView1_ColumnWidthChanging);
    }

    void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
    {

      e.Cancel = true;
      e.NewWidth = listView1.Columns[e.ColumnIndex].Width;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这里是初始化组件,以防您可能想知道:

private void InitializeComponent()
{
  this.listView1 = new System.Windows.Forms.ListView();
  this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
  this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
  this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
  this.SuspendLayout();
  // 
  // listView1 …
Run Code Online (Sandbox Code Playgroud)

c# listview winforms

7
推荐指数
3
解决办法
2万
查看次数

这种除法近似算法如何工作?

我正在使用软件渲染器开发游戏,以获得最准确的PS1外观.当我正在研究PS1图形/渲染系统如何工作,摇摆顶点等的原因时,我偶然发现了一些关于它们划分方式的文档.以下是它的链接:http://problemkaputt.de/psx-spx.htm#gteoverview(参见"GTE Division Inaccuracy"部分)

相关代码:

  if (H < SZ3*2) then                            ;check if overflow
    z = count_leading_zeroes(SZ3)                ;z=0..0Fh (for 16bit SZ3)
    n = (H SHL z)                                ;n=0..7FFF8000h
    d = (SZ3 SHL z)                              ;d=8000h..FFFFh
    u = unr_table[(d-7FC0h) SHR 7] + 101h        ;u=200h..101h
    d = ((2000080h - (d * u)) SHR 8)             ;d=10000h..0FF01h
    d = ((0000080h + (d * u)) SHR 8)             ;d=20000h..10000h
    n = min(1FFFFh, (((n*d) + 8000h) SHR 16))    ;n=0..1FFFFh
  else n = 1FFFFh, FLAG.Bit17=1, FLAG.Bit31=1    ;n=1FFFFh plus …
Run Code Online (Sandbox Code Playgroud)

c bit-shift division approximation

7
推荐指数
1
解决办法
585
查看次数