小编fla*_*mey的帖子

C#:循环多行字符串

在不使用更多内存的情况下循环遍历多行字符串的每一行的好方法是什么(例如,不将其拆分为数组)?

c# loops multilinestring

87
推荐指数
4
解决办法
10万
查看次数

从单个目录中删除具有重复内容的文件[Perl或算法]

我有一个包含大量文件的文件夹,其中一些文件具有完全相同的内容.我想删除包含重复内容的文件,这意味着如果找到两个或多个重复内容的文件,我想留下其中一个文件,并删除其他文件.

以下是我想出来的,但我不知道它是否有效:),还没试过.

你会怎么做?Perl或一般算法.

use strict;
use warnings;

my @files = <"./files/*.txt">;

my $current = 0;

while( $current <= $#files ) {

    # read contents of $files[$current] into $contents1 scalar

    my $compareTo = $current + 1;
    while( $compareTo <= $#files ) {

        # read contents of $files[compareTo] into $contents2 scalar

        if( $contents1 eq $contents2 ) {
            splice(@files, $compareTo, 1);
            # delete $files[compareTo] here
        }
        else {
            $compareTo++;
        }
    }

    $current++;
}
Run Code Online (Sandbox Code Playgroud)

perl

8
推荐指数
3
解决办法
2425
查看次数

C#Anchor属性似乎不起作用

我在表单中添加了一些控件并更改了Anchor属性我希望它如何工作,但是当我在运行时调整表单大小时,控件保持在同一个位置.

例如,我在表单的右下角有两个按钮 - 它们在表单上,​​没有容器或类似的东西.Anchor = Bottom,Right.FormBorderStyle =大小.但是当我在运行时拖动调整窗体大小时,按钮不会移动.

我错过了什么吗?

c#2005

c# forms anchor winforms formborderstyle

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

重新排序C#中BindingList中的项目?

如何在C#中的BindingList中移动项目?比如说,将最后添加的项目移到前面,或者与之前的项目交换?

c# bindinglist

6
推荐指数
2
解决办法
6010
查看次数

C#:如何从表单及其控件中拖出一个?

我使用以下代码拖动无边框表单,方法是单击并拖动表单本身.它可以工作,但它不适用于单击并拖动窗体上的控件.我需要能够在单击某些控件时拖动它而不是其他控件 - 按标签拖动,但不要通过按钮和文本框拖动.我该怎么做?

protected override void WndProc(ref Message m)
{
    base.WndProc(ref m);

    const int WM_NCHITTEST = 0x84;
    const int HTCLIENT = 0x1;
    const int HTCAPTION = 0x2;

    if (m.Msg == WM_NCHITTEST && (int)m.Result == HTCLIENT)
        m.Result = (IntPtr)HTCAPTION;
}
Run Code Online (Sandbox Code Playgroud)

c# forms wndproc drag

6
推荐指数
1
解决办法
3130
查看次数

覆盖ListBox的DrawItem - 未重绘未选择的项目

这是一个C#桌面应用程序.DrawStyle我的属性ListBox设置为OwnerDrawFixed.

问题:我重写DrawItem以不同的字体绘制文本,它的工作原理.但是当我在运行时开始调整表单大小时,正确绘制了所选项目,但其余部分未重绘,导致文本看起来已损坏未选中的项目.

这是我的代码:

private void listDevices_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();

    string textDevice = ((ListBox)sender).Items[e.Index].ToString();

    e.Graphics.DrawString(textDevice,
        new Font("Ariel", 15, FontStyle.Bold), new SolidBrush(Color.Black), 
        e.Bounds, StringFormat.GenericDefault);


    // Figure out where to draw IP
    StringFormat copy = new StringFormat(
        StringFormatFlags.NoWrap |
        StringFormatFlags.MeasureTrailingSpaces
    );
    copy.SetMeasurableCharacterRanges(new CharacterRange[] {new CharacterRange(0, textDevice.Length)});

    Region[] regions = e.Graphics.MeasureCharacterRanges(
        textDevice, new Font("Ariel", 15, FontStyle.Bold), e.Bounds, copy);

    int width = (int)(regions[0].GetBounds(e.Graphics).Width);
    Rectangle rect = e.Bounds;
    rect.X += width;
    rect.Width -= width;

    // draw IP …
Run Code Online (Sandbox Code Playgroud)

c# listbox winforms ondrawitem

4
推荐指数
2
解决办法
8554
查看次数

从我的脚本下载文件时,前8个字节总是错误的

我有一个Mojolicious Lite脚本,"发出"一个可执行文件(用户可以从脚本的URL下载该文件).我将编码数据保存在DATA部分的内联模板中,然后对其进行编码和render_data.

get '/download' => sub {
    my $self = shift;

    my $hex_data = $self->render_partial( 'TestEXE' );
    my $bin_data;
    while( $hex_data =~ /([^\n]+)\n?/g ) {
        $bin_data .= pack "H".(length $1), $1;
    }

    my $headers = Mojo::Headers->new; 
    $headers->add( 'Content-Type', 'application/x-download;name=Test.exe' );
    $headers->add( 'Content-Disposition', 'attachment;filename=Test.exe' );
    $headers->add( 'Content-Description', 'File Transfer');

    $self->res->content->headers($headers);
    $self->render_data( $bin_data ); 
};

__DATA__

@@ TestEXE.html.ep
4d5a90000300000004000000ffff0000b8000000000000004000000000000000
00000000000000000000000000000000000000000000000000000000b0000000
0e1fba0e00b409cd21b8014ccd21546836362070726f6772616d2063616e6e6f
....
Run Code Online (Sandbox Code Playgroud)

当我在本地运行时(通过内置的Web服务器http://127.0.0.1:3000/,Win7),我得到了正确的文件(大小和内容).但是当我在共享主机(Linux)上以CGI模式运行它时,它返回正确的大小,但文件的前8个字节总是不正确(并且总是不同).文件的其余部分是正确的.

如果在我的sub中我指定$hex_data而不是$bin_data我得到的东西在那里.

我迷路了.

perl mojolicious

4
推荐指数
1
解决办法
302
查看次数

使用LWP :: UserAgent时不会保存Cookie

我正在尝试使用cookie,LWP::UserAgent但它们没有保存在文本文件中.我究竟做错了什么?

use v5.16;
use strict;
use warnings;
use Data::Dumper;

use LWP::UserAgent;
use HTTP::Cookies;
use Net::SSL ();

my $cookie_jar = HTTP::Cookies->new( 
    file => 'lwp_cookies.txt',
    autosave => 1,
);

my $ua = LWP::UserAgent->new(
    ssl_opts   => { verify_hostname => 0 },
    cookie_jar => $cookie_jar,
);

my $auth_url = 'https://my.site.url/path/authenticate';
use HTTP::Request::Common qw(GET);
my $req = HTTP::Request->new(GET => $auth_url);
$req->authorization_basic('username', 'password');

$ua->request($req);
say Dumper( \$cookie_jar );
Run Code Online (Sandbox Code Playgroud)

转储的数据如下所示:

$VAR1 = \bless( {
   'autosave' => 1,
   'COOKIES' => {
          'my.site.url' => {
                '/' => …
Run Code Online (Sandbox Code Playgroud)

cookies perl lwp-useragent

2
推荐指数
1
解决办法
4033
查看次数

Docker 提交 - 不保存数据库更改

我安装了最新的 Docker CS,从 Docker Hub获得了一个LAMP 镜像。我正在尝试在其中创建一个数据库并使用保存在其中的数据库制作新图像。

  1. 启动容器:docker run --name mycontainer fauria/lamp 这将启动基于 Ubuntu 的容器并启动 Apache 服务器。MySQL 服务器也在容器中运行。
  2. 访问容器外壳: docker exec -i -t mycontainer bash
  3. 创建一个数据库并在其上运行一些 MySQL 命令: mysql -u root CREATE DATABASE mydbname; USE mydbname; CREATE FUNCTION ... ...
  4. 停止容器: docker stop mycontainer
  5. 创建镜像:docker commitdocker ps -l -qmynickname/appname:v1
  6. 取出容器 docker container rm mycontainer

现在我预计如果我基于新图像运行容器,我已经在那里有了数据库。但它不在那里。 docker run --name mycontainer --rm -p 80:80 -e LOG_STDOUT=true -e LOG_STDERR=true -e LOG_LEVEL=debug -v /home/username/dev/appname/www:/var/www/html mynickname/appname:v1

我错过了什么?

lamp docker

2
推荐指数
1
解决办法
3621
查看次数

从不知道要多少期待的流中读取[c#]

当我事先不知道会有多少数据进入时,如何从流中读取?现在我只选了一个偏高的数字(如下面的代码所示),但不能保证我不会得到更多.

所以我在循环中一次读取一个字节,每次调整数组大小?听起来太大了调整: - /

TcpClient tcpclnt = new TcpClient();
tcpclnt.Connect(ip, port);

Stream stm = tcpclnt.GetStream();

stm.Write(cmdBuffer, 0, cmdBuffer.Length);

byte[] response = new Byte[2048];
int read = stm.Read(response, 0, 2048);

tcpclnt.Close();
Run Code Online (Sandbox Code Playgroud)

c# arrays stream

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