小编men*_*raz的帖子

使用try/finally try/except而不是begin/end被认为是一种不好的做法或存在任何缺点?

在一些应用程序,我维护的地方很多,我发现它使用一个代码try/finallytry/except块一个for loopif句子避免使用开始/结束

考虑下一个代码(不是生产代码,只是一个样本)

{$APPTYPE CONSOLE}

{$R *.res}

uses
  Classes,
  SysUtils;

Procedure TestNoBeginEnd;
var
 i   : Integer;
 L1  : TStringList;
begin
    for i := 1 to 10 do
    try
      L1:=TStringList.Create;
      try
        L1.Add('Bar');
        L1.Add(IntToStr(i));
        L1.Add('Foo');
      finally
        Writeln(L1.Text);
        L1.Free;
      end;
    except
      on E: Exception do
        Writeln('Opps '+E.ClassName, ': ', E.Message);
    end;
end;

begin
  try
    TestNoBeginEnd;

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

问题,被认为是一种不好的做法,代码嗅觉或使用try/finally或try/except而不是delphi中的begin/end存在任何缺点?

UPDATE

对于愚蠢的示例代码我很抱歉,只是为了澄清try/finally并尝试/除了不假装替换开始/结束,只是为了避免使用它(开始/结束)当存在使用时的情况try/finally或try/except不需要开始/结束.

delphi try-finally try-except

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

在Windows上使用C++,Qt的GUI设计问题(Vista)

这涉及C++(MinGW),Qt,Windows Vista:

这一切都是在我用C++开发非GUI应用程序的时候.最近我决定尝试在Qt中使用GUI,并且遇到一些设计问题.

这是问题所在:

  • 步骤1:使用QMovie加载并显示背景gif动画...
  • 第2步:处理巨大的转储文件(超过2GB)....所以当我到达第2步时,我的GUI冻结了..

我正在使用while(getline(inputFileStream,stringLine)){...}所以我放置了QCoreApplication :: processEvents(); 在循环内.

应用程序变得非常慢.所以我放置了一个计数器,只有当它达到特定值时才会出现QCoreApplication :: processEvents(); 被执行.

现在,gif动画变得更像一系列帧,从一个帧到另一个可见的过渡.

任何更快的触发processEvents()都会降低应用程序的速度(无论如何,它都不能靠近非GUI执行时间).

正如我在Windows任务管理器中看到的那样,一个核心具有高利用率,而另一个核心在执

那我应该采取什么方法?我应该深入研究变异(我从未使用过它)吗?

剥离一切来解释程序看起来像这样的问题:

class Animation; 
class FileProcessing;

main(int argc,char** argv) {
        QApplication* app=new QApplication(argc,argv);
        QLabel* label1=new QLabel(...);
        QLabel* label2=new QLabel(...);
        Animation* objAnim=new Animation(...); //QMovie plays gif
        objAnim->show();

        //fileDialogs --> ask for files..this is modal so animation is fine till this point

        FileProcessing* objFileProcessing=new FileProcessing(...);

        objFileProcessing->processFiles(label1,label2); //process >2GB files
        //in this i repeatedly call processEvents() as written …
Run Code Online (Sandbox Code Playgroud)

c++ user-interface qt mingw windows-vista

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

如何在Qt中获取所有时区列表?

有没有办法获得所有时区的列表IST,ET等.

我必须在我的应用程序中使用它们.

timezone qt qt4.7

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

GotoXY实施

这个问题是我之前发表的题为" 如何修复此过程"将字符串写入控制台屏幕缓冲区的后续问题.

我想在写入任意字符串之前将光标设置为给定的(x,y)位置:

GotoXY(x,y)
SendLn('The harder they come...'); 
Run Code Online (Sandbox Code Playgroud)

如何procedure GotoXY(x, y: integer)实施?

delphi winapi windows-console delphi-xe

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

delphi 2006,自定义组件中的SynTaskDialog编译错误

我工作的组件,用于delphi 7delphi 2006,组件使用SynTaskDialog.passynopse,我已经成功地使用了SynTaskDialog.pasdelphi 7成分,但是当我试图在使用它delphi 2006来创建组件包.我收到一个错误

在此输入图像描述

我在synopse.info/forum上找到了相同的解决方案


引用:

我找到了两个解决方法:要么

  1. 用字符串数组替换指针数组
  TD_ICONS_IDENT: array[TTaskDialogIcon] of string =(
    '', SMsgDlgWarning, SMsgDlgConfirm, SMsgDlgError, SMsgDlgInformation,
    '', SMsgDlgInformation);
Run Code Online (Sandbox Code Playgroud)

并删除一些LoadResString调用或

2.使用类似函数替换指针数组

  GetIconIdent(TTaskDialogIcon): Pointer
Run Code Online (Sandbox Code Playgroud)

但即便如此,我无法编译组件的包.而这些错误来了

 [Pascal Error] E2201 Need imported data reference ($G) to access 'SMsgDlgOK' from unit 'SynTaskDialog'
 [Pascal Error] E2201 Need imported data reference ($G) to access 'SMsgDlgYes' from unit 'SynTaskDialog'
 [Pascal Error] E2201 Need imported data reference ($G) to access …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7 delphi-2006 custom-component

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

如何停止 Vibe.D 应用程序?

当库通过静态初始化程序运行时,Vibe.D 是否具有内置终止函数?我想在 vibe.d 抛出异常时终止应用程序,例如打开文件。

我有一个服务器正在使用该listenHTTP功能进行侦听。

exception-handling d terminate vibed

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

如何在Laravel 4中的控制器内部所有方法之前运行代码?

我有内容控制器与REST方法(index..create..store ..),我想在运行任何这些方法之前运行一些代码.

我想要做的是为我的布局设置var,其中一些数据与Content controller中的所有方法相关:

$this->layout->myvar = 'some-data';
Run Code Online (Sandbox Code Playgroud)

我试着这样做:

class ContentController extends BaseController {
    function __construct() {
        $this->layout->myvar= 'some-data';
    }
..
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用.我得到"尝试分配非对象的属性"错误.

php controller before-filter laravel laravel-4

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

Laravel子域路由和资源控制器

这是我的路线:

Route::group(array('domain'=>'{subdomain}.example.com'), function()  
{
    Route::group(array('before'=>array('authenticate')), function()
    {
        Route::resource('post', 'PostController');

        Route::resource('comments', 'CommentsController');

        Route::resource('forum', 'ForumController');

        Route::resource('users', 'UsersController');

    });
});
Run Code Online (Sandbox Code Playgroud)

似乎默认情况下我所有的资源控制器都将子域作为第一个参数,我找不到改变它的方法.

如果可能的话,我想完全忽略子域名.

用例示例:

admin.example.com/forum/1?domain=foo

foo.example.com/forum/1

bar.example.com/forum/2

该网站拥有2个论坛,但只有1个管理员管理所有这些论坛.要管理员访问论坛foo,管理员还必须提供domain = foo来查看它.

php subdomain routing laravel

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

使用 fastify 从 jwt-token 检索用户名

我能够创建一个 jwt 令牌:

fastify.post('/signup', (req, reply) => {
  const token = fastify.jwt.sign({
    payload,
  })
  reply.send({ token })
})
Run Code Online (Sandbox Code Playgroud)

可以返回如下内容:

{“令牌”:“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1MjM3MDgyMzF9.HZqiL7wwPaEQihUGoF7Y42Ia67HgKJ-1Ms38Nvcsmw”}

但如果我尝试从令牌中解码用户名

fastify.get('/decode', async (request, reply) => {
  const auth = request.headers.authorization;
  const token = auth.split(' ')[1]
  fastify.jwt.verify(token, (err, decoded) => {
    if (err) fastify.log.error(err)
    fastify.log.info('username : ' + decoded.username)
    reply.send({
      foo: decoded,
    })
  })
})
Run Code Online (Sandbox Code Playgroud)

回应是:

{“foo”:{“iat”:1523660987}}

fastify

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

要求社交网络分析(SNA)算法

我收到了制作社交图的任务,其中一个用户位于中心,它显示了他的连接.

但在我们达到目标之前,我们的重点是如何确定2个用户之间的最短路径.

我找到了一些算法来做,但似乎需要花费很多时间,而且因为它是关于社交链接的,我们正在寻找最快的,因为我们需要定期运行它以跟上朋友的更新.

那么,你知道哪个是确定两个用户之间最短路径的最快方法吗?

PS:如果你知道PHP和MySQL中的一个例子,我会给你一个虚拟啤酒(或可乐).:d

php algorithm graph social-networking

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