小编Nic*_*ges的帖子

代码高尔夫:电话号码到单词

SO上的代码 - 高尔夫指南

我们都看到过单词的电话号码:1-800-BUY-MORE等.

您可以编写的最短代码是什么,它将为7位美国电话号码生成所有可能的单词组合.

输入将是一个七位整数(或字符串,如果这更简单),并假设输入正确形成.

输出将是七个字符的字符串列表

例如,数字428-5246将产生

GATJAGM
GATJAGN
GATJAGO
GATJAHM
GATJAHN
GATJAGO
GATJAIM
GATJAIN
GATJAIO等.....

获胜标准将是来自任何语言的代码,其中最少的字符产生每个可能的字母组合.

补充说明:

  • 为了使它更有趣,只能使用北美经典键盘手机上的字母形成单词,这里定义了每个数字三个字母.这意味着Z和Q被排除在外.
  • 对于数字'1',放一个空格.
  • 对于数字'0',加一个连字符' - '

将输出识别为真实英语单词的奖励积分.好的,不是真的.;-)

补充:好的,让我们一起使用"Nick's Modified North American Classic Key Pad",它在6键上有一个'O'(哦,不是零).

language-agnostic code-golf rosetta-stone

22
推荐指数
5
解决办法
2632
查看次数

为什么我在尝试与 mongoose 连接时收到“mongoose.connect is not a function”?

我是 Node.js 的新手,正在尝试使用 TypeScript 构建一个 node/express/mongoose 服务器应用程序。

这是我的 app.ts 文件:

// lib/app.ts
import express from 'express';
import * as bodyParser from 'body-parser';
import { Routes } from './routes/crmRoutes';
import * as mongoose from "mongoose";

class App {
  public app: express.Application;
  public routePrv: Routes = new Routes();
  public mongoUrl: string = 'mongodb://localhost/TodosDB';

  constructor() {
    this.app = express();
    this.config();
    this.routePrv.routes(this.app);
    this.mongoSetup();
  }

  private mongoSetup(): void {
    mongoose.connect(this.mongoUrl, {
      useNewUrlParser: true,
      useUnifiedTopology: true
    });
  }

  private config(): void {
    // support application/json type …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js express typescript

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

为什么TFormatSettings没有按预期运行?

我希望以下代码可以工作:

program Project3;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

var
  FS: TFormatSettings;

const
  DF = 'yyyymmdd';

begin
  try
   WriteLn(FormatDateTime(DF, Now));

   FS := TFormatSettings.Create;
   FS.ShortDateFormat := DF;
   WriteLn(StrToDate('20121219', FS));

   ReadLn;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Run Code Online (Sandbox Code Playgroud)

为什么会抛出异常,说"20121219"不是有效日期?这不正是通过TFormatSettings应该做的事情吗?

delphi str-to-date

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

如何将一些格式化文本放入剪贴板?

我正在为"Text Scrubber"实用程序编写单元测试,该实用程序将从剪贴板上的文本中删除任何格式等.

例如,如果您从Word文档或具有大量格式的网页复制某些文本,您可能希望将其粘贴到另一个Word DOC中作为普通的普通旧文本.

要为此编写单元测试,我当然需要编写实际将一些格式化文本放入剪贴板的代码.

所以我的问题是 - 我如何在Delphi代码中做到这一点?

delphi clipboard text

11
推荐指数
2
解决办法
9574
查看次数

有哪些工具或技术可用于"数据化"我的mercurial存储库?

我们在Mercurial中有2,000,000行代码应用程序.显然,这个存储库中有很多有价值的信息.

是否有任何工具或技术可以挖掘出一些信息?

例如,在项目的历史中,五个文件发生了哪些变化?五个档案与一年前最不同的是什么?任何特定的代码行看到了很多流失?

我对这类事情感兴趣.

有没有办法从我们的存储库中提取这种信息?

mercurial code-statistics

11
推荐指数
2
解决办法
1008
查看次数

如何在TVirtualStringTree中填写滚动条上方的区域?

我需要填写(黑色)我在下面的图片中突出显示的小白方块.

我试过添加额外的列.我试过扩展PaintInfo.PaintRectangle.我已经尝试了我能想到的Amount列上的每个设置.我没有想法.

任何人对如何做到这一点都有任何想法?

以下是执行自定义标题绘制的代码.(原谅with声明,不是我原来的代码....)

procedure TWinPOSReceiptPluginForm.ReceiptDisplayTreeAdvancedHeaderDraw(Sender: TVTHeader; var PaintInfo: THeaderPaintInfo;
  const Elements: THeaderPaintElements);
var
    TempText: string;
begin
    with PaintInfo do
    begin
      // First check the column member. If it is NoColumn then it's about the header background.

        if (hpeBackground in Elements) and (Column <> nil) then begin
          TempText := Column.Text;
          TargetCanvas.Brush.Color := $444444;
          TargetCanvas.FillRect(PaintRectangle);
          TargetCanvas.Font.Color := clWhite;
          TargetCanvas.Font.Style := [];
          TargetCanvas.TextOut (PaintRectangle.Left + 3, PaintRectangle.Top + 3, TempText);
          end;
    end;
end;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

delphi virtualtreeview tvirtualstringtree

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

为什么Jenkins在使用MSBuild时会忽略%PATH%变量?

我正在尝试使用Jenkins来编译使用Delphi创建的MSBuild项目.我有安装到Jenkins并配置的MSBuild插件.我正在为我的构建作业选择特定的配置.

我已经在Jenkins编译器所需的Jenkins中设置了所有环境变量(对于Delphi类型,来自rsvars.bat).

该项目在命令行上编译得很好.如果我在命令行上执行此操作,MSBuild将报告一个很好的大胖PATH(正确的)作为它用于调用Delphi编译器的命令行的一部分.

但是,当我尝试将它与Jenkins一起使用时,结果却截然不同:

C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\dcc32.exe -$D- -$L- -$Y- --no-config -B -Q -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DRELEASE -K00400000   HTMLWriterTestApp.dpr   
  Embarcadero Delphi for Win32 compiler version 22.0
  Copyright (c) 1983,2010 Embarcadero Technologies, Inc.
Run Code Online (Sandbox Code Playgroud)

Noet完全没有路径,或者任何其他信息都是为​​了找到编译器需要的东西.当我从命令行运行时,此信息就在那里.

任何人都可以想到为什么Jenkins无法获得正确的PATH信息?

delphi msbuild hudson environment-variables jenkins

9
推荐指数
2
解决办法
9738
查看次数

是否可以使用新的/不同版本的Indy在Delphi XE中重新编译DataSnap包?

好的 - 我们有一个有趣的问题.

一些背景:

  1. 我们的主要应用程序使用Indy 10.但是,我们使用Indy 10源代码并修复其中的错误,重新编译并安装我们自己的Indy组件集.

  2. 我们正在迁移到Delphi XE并希望开始使用DataSnap.

  3. DataSnap需要Indy的"官方发货"版本,这与我们定制的Indy版本不兼容.

  4. 我们的DataSnap服务器将是独立的应用程序,但由于我们在IDE中安装了自己的Indy,因此我们无法"跨越流".

好的,因为这个兼容性问题,我们无法开箱即用Delphi XE的DataSnap.

所以我的问题是:

是否可以使用新的/不同版本的Indy在Delphi XE中重新编译DataSnap包?

感谢你的想法.

delphi packages indy datasnap

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

“只能使用‘esModuleInterop’标志默认导入”是什么意思?

我收到以下错误:

lib/app.ts:1:8 - error TS1259: Module '"mongoose-sequence"' can only be default-imported using the 'esModuleInterop' flag
Run Code Online (Sandbox Code Playgroud)

在以下代码行中:

import _ from 'mongoose-sequence';
Run Code Online (Sandbox Code Playgroud)

现在,我很高兴地承认我遗漏了整个“下划线作为函数名称”的内容,但该错误没有任何意义,因为该esModuleInterop标志true在我的 ts.config 文件中绝对肯定地设置为。

我正在尝试导入:

declare module 'mongoose-sequence' {
  import mongoose = require('mongoose');
  var _: (schema: mongoose.Schema, options?: Object) => void;
  export = _;
Run Code Online (Sandbox Code Playgroud)

来自猫鼬序列绝对类型定义。

我错过了什么?

typescript mongoose-sequence

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

如何判断Delphi变量是否为空字符串?

变种总是很有趣,是吗?

我正在研究D2007中最后一个将其迁移到Delphi XE的遗留应用程序.

在过渡期间,变体已经发生了很大的变化.

这行代码:

if (VarType(Value) = varString) and (Value = '') then 
  Exit;
Run Code Online (Sandbox Code Playgroud)

在D2007中返回True并退出,但在Delphi XE中没有.

我把它改成了这个:

if VarIsStr(Value) and (VarToStr(Value) = '') then
    Exit;
Run Code Online (Sandbox Code Playgroud)

我不相信这是"最好的"方式.Variants单元没有特定的调用来执行此操作,我当然记得这对于过去的人来说是一个问题.但是,搜索显示没有库函数或任何其他可接受的方式.

有"正确"或更好的方式吗?

delphi string delphi-xe variants

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