小编qua*_*oft的帖子

Python - 删除文件中的最后一个字符

在浏览了整个互联网之后,我来到了这里.

假设我已经创建了一个文本文件: Hello World

好吧,我想d从这个文本文件中删除最后一个字符(在本例中).

所以现在文本文件应该如下所示: Hello Worl

但我不知道该怎么做.

我想要的或多或少都是我硬盘上文本文件的单一退格功能.

这需要在Linux上工作,就像我正在使用的那样.

python text file

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

在Python中用空格分隔key = value字符串创建字典

我有如下字符串:

s = 'key1=1234 key2="string with space" key3="SrtingWithoutSpace"'
Run Code Online (Sandbox Code Playgroud)

我想转换成字典如下:

key  | value
-----|--------  
key1 | 1234
key2 | string with space
key3 | SrtingWithoutSpace

我如何在Python中执行此操作?

python dictionary

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

哪里可以找到Delphi的"Turbo"或"Lite"版本?

我有一个拥有Ruby背景的同事,有兴趣开始使用Delphi和本地开发.但是,据我所知,Turbo Delphi(基于Delphi 2006)已不再可供下载.

那么......他离开了哪里?在某处合法提供Delphi的低成本或介绍版本吗?或者Embarcadero有没有提供的产品?

注意:请不要建议任何合法可疑版本,因为这不是我们会考虑的选项.

更新:总结所有答案,您可以立即下载和安装的唯一合法和免费版Delphi(除非您已经拥有Delphi 7 Personal或Turbo Delphi的个人许可)是Delphi Community Edition.

接下来最接近的是Lazarus IDE和Free-Pascal编译器.

delphi freepascal lazarus

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

Lockbox3 encryptstring:相同的字符串给出不同的加密结果

我用Delphi XE10尝试使用lockbox3.我想加密用户的输入字符串,并将其与验证值进行比较.但每次相同的输入字符串给出不同的加密结果.请问我的错是什么?

这里是给出此错误的示例代码

<UNIT CODE START>
unit Unit21;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, TPLB3.Codec, TPLB3.BaseNonVisualComponent, TPLB3.CryptographicLibrary,
  Vcl.StdCtrls;

type
  TForm21 = class(TForm)
    Button1: TButton;
    CryptographicLibrary1: TCryptographicLibrary;
    Codec1: TCodec;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form21: TForm21;

implementation

{$R *.dfm}

procedure TForm21.Button1Click(Sender: TObject);
var s0,s1 : string;
begin
    codec1.Password := 'ou[asdl[kn';
    s0 := 'asdfghjkl';
    codec1.EncryptString(s0,s1);
    label1.caption := s1;
end;

end.
<UNIT CODE END>

<FORM CODE …
Run Code Online (Sandbox Code Playgroud)

delphi cryptography aes lockbox-3

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

使用TIdMessageBuilderHtml设置电子邮件附件名称

我正在尝试使用Delphi(D10S)将PDF文档附加到电子邮件中,并且我想将名称设置为文件系统上文件名以外的名称.

我找到了以下主题(来自2011年)Remy Lebeau声明您可以通过使用以下Name方法将TIdMessageBuilderAttachment对象附加到电子邮件时设置对象的属性来实现此目的TIdMessageBuilderHtml:

如何命名由TIdMessageBuilderHtml构造的附件文件

然而,听起来很简单,它似乎对我不起作用.电子邮件通过,但附件是原始文件名,而不是我指定的文件名.

以下是我希望按照我的描述进行的代码片段,但无论出于何种原因,它都没有.在这种情况下,我希望文件名通过desired_filename.pdf,但它来自as undesired_filename.pdf.我已删除邮件服务器凭据,原因很明显:

procedure TForm4.Button1Click(Sender: TObject);
var
  FMessageBuilder : TIdMessageBuilderHtml;
  FSMTP : TIdSMTP;
  FMessage : TIdMessage;
  FAttachment : TIdMessageBuilderAttachment;
begin
  FMessage := TIdMessage.Create();
  FMessageBuilder := TIdMessageBuilderHtml.Create;
  FSMTP := TIdSMTP.Create;

  FAttachment := FMessageBuilder.Attachments.Add('c:\undesired_filename.pdf');
  FAttachment.Name := 'desired_filename.pdf';
  FMessageBuilder.FillMessage(FMessage);

  FMessage.Sender.Address := '<Insert Sender Address>';
  FMessage.Sender.Name := '<Insert Sender Name>';
  FMessage.From.Address := '<Insert From Address>';
  FMessage.From.Name := '<Insert From Name>';
  FMessage.Recipients.EMailAddresses := '<Insert Recepient Address>';
  FMessage.Subject := 'Attachment Test';

  FSMTP.Host := …
Run Code Online (Sandbox Code Playgroud)

delphi smtp indy

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

如何设置gulp将多个文件捆绑成一个?

这似乎是一个非常简单的问题,但花了最后3个小时来研究它,发现如果不使用watchify,每次保存新文件都会很慢.

这是我的目录树:

gulpfile.js
package.json

www/
  default.htm
     <script src="toBundleJsHere/file123.js"></script>

  toBundletheseJs/
    componentX/
       file1.js
    componentY/
       file2.js
    componentZ/
      file3.js

  toPutBundledJsHere/
      file123.js
Run Code Online (Sandbox Code Playgroud)

要求.在文件夹中每次创建或保存文件时,toBundleTheseJs/我希望将此文件重新分组toBundleJsHere/

我需要在package.json文件中包含哪些内容?

什么是我需要写入我的gulp文件的最小值?

这应该尽可能快,所以认为我应该使用browserify并观察.我想了解最小步骤,所以使用像jspm这样的包管理器这一点太过分了.

谢谢

javascript browserify bundling-and-minification gulp watchify

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

如何将两个不同长度的向量相乘

假设我有两个向量:

A = [1 2 3];

B = [1 2];
Run Code Online (Sandbox Code Playgroud)

而且我需要一个类似于乘法的函数A*B来产生以下输出:

[
  1 2 3
  2 4 6
]
Run Code Online (Sandbox Code Playgroud)

看起来像是A*B,A*B'或者A.*B不允许的元素数量是不一样的.

我设法做到这一点的唯一方法(我在MATLAB上很新)是用ndgrid两个矩阵来生成具有相同数量的元素,如下所示:

[B1,A1] = ndgrid(B, A);
B1.*A1

ans =
 1     2     3
 2     4     6
Run Code Online (Sandbox Code Playgroud)

如果元素数量很大,这会有很好的表现吗?在MATLAB中有更好的方法吗?

其实我试图用MATLAB解决以下问题:

t = [1 2 3]

y(t) = sigma(i=1;n=2;expression=pi*t*i)
Run Code Online (Sandbox Code Playgroud)

尽管如此,即使有更好的方法来解决实际问题,知道我的第一个问题的答案也会很有趣.

matlab vector matrix

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

如何更改我的代码以获取正确的枚举名称值?

我正在尝试使用RTTI获取枚举名称值.

我的目标是使用字符串值从Enum2(迭代器)中选定的枚举名称值中获取Enum1(Tsex)中的相应枚举名称值.

这是我实现的代码.我使用的是Delphi 7.

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs,typinfo;

type

 Tsex = (homme,femme);
 iterator = (H,F);

TForm1 = class(TForm)
  procedure FormShow(Sender: TObject);
private
 { Déclarations privées }
 public
 { Déclarations publiques }
end;

var
  Form1: TForm1;

implementation

 {$R *.dfm}


 procedure TForm1.FormShow(Sender: TObject);
  var
    i : integer;
    OT: Tsex;
    FT: iterator;
 begin
   i:=0;
   OT := Low(Tsex);
   for FT := Low(iterator) to High(iterator) do
     if GetEnumName(TypeInfo(iterator), Ord(FT)) = 'F' then
     begin
       showmessage(GetEnumName(TypeInfo(Tsex), Ord(OT)));
     end;
     i:=i+1;
     OT:=Succ(OT);
   end;
Run Code Online (Sandbox Code Playgroud)

当我 …

delphi enums rtti delphi-7

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

Python有什么区别这两行?

谁能告诉我之间的差异lineterminator='\n',并newline=''在下面的2个实例?

1:

data=[person,age]
with open(document.csv, 'a') as file:
    writing = csv.writer(file, lineterminator='\n')
    wr.writerow(data)
Run Code Online (Sandbox Code Playgroud)

2:

data=[person,age]
with open(document.csv, 'a', newline='') as file:
    writing = csv.writer(file)
    wr.writerow(data)
Run Code Online (Sandbox Code Playgroud)

查看csv文件时,两者都会产生相同的输出...

python csv newline

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