小编Ren*_*ger的帖子

如何使用VB脚本主机确定路径是相对路径还是绝对路径

如何在Visual Basic脚本中确定路径是相对路径还是绝对路径.

在VBA中,我将调用Win32 Api函数PathIsRelative

Private Declare Function PathIsRelative Lib "shlwapi" _
    Alias "PathIsRelativeA" _
   (ByVal pszPath As String) As Long
Run Code Online (Sandbox Code Playgroud)

但是,无法从VBS调用DLL,因此我无法使用Win32 Api.

勒内

vbscript winapi

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

是否有可能显示ä 作为Vim的ä?

是否有可能在Vim窗口(即屏幕上)中显示与缓冲区中的基础字符不同的字符?

例如,如果filetype设置为html,我(有时)喜欢看到html-entities被人类可读的字符替换(例如ä代替ä).当然,这将导致实体之后的其余部分必须"移位"到左侧.如果这可能以某种方式,我会欣赏任何正确方向的暗示.

vim html-entities

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

为什么VIM会忽略我的文件BOM?

我需要一个文件,我想确保用utf8编码.

所以,我创建了该文件

c:\> gvim umlaute.txt
Run Code Online (Sandbox Code Playgroud)

在VIM我键入Umlaute:

äöü
Run Code Online (Sandbox Code Playgroud)

我检查编码...

:set enc
Run Code Online (Sandbox Code Playgroud)

(VIM回声encoding=latin1)

然后我检查文件编码...

:set fenc
Run Code Online (Sandbox Code Playgroud)

(VIM回声fileencoding=)

然后我写了文件

:w
Run Code Online (Sandbox Code Playgroud)

并检查硬盘上文件的大小:

!dir umlaute.txt
Run Code Online (Sandbox Code Playgroud)

(大小为5个字节)当然可以预期,文本为3个字节,\ x0a\x0d为2个字节.

好的,我现在将编码设置为

:set enc=utf8
Run Code Online (Sandbox Code Playgroud)

缓冲区很奇怪

<e4><f6><fc>
Run Code Online (Sandbox Code Playgroud)

我想这是我之前输入的ascii字符的十六进制表示.所以我重写了它们

äöü
Run Code Online (Sandbox Code Playgroud)

写作,检查大小:

:w
:$ dir umlaute.txt
Run Code Online (Sandbox Code Playgroud)

这一次,它是8个字节.我想这对于每个字符加上\ x0d\x0a是有意义的2个字节.

好的,所以我想确保下次打开文件时它会用encodiung = utf8打开.

:setb
:w

:$ dir umlaute.txt
Run Code Online (Sandbox Code Playgroud)

11个字节.这当然是BOM(ef bb bf)的8(先前)字节+ 3字节.

所以我

:quit
Run Code Online (Sandbox Code Playgroud)

vim并再次打开文件

并检查,如果设置了编码:

:set enc
Run Code Online (Sandbox Code Playgroud)

但VIM坚持认为encoding=latin1.

那么,为什么呢.我原以为BOM会告诉VIM这是一个UTF8文件.

vim byte-order-mark utf-8

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

在graphviz中:是否可以仅在群集中具有唯一的节点ID?

我了解,节点ID在graphviz(此处为点)文件中应该是唯一的。

但是,我希望我只能让它们在它们的集群中唯一,也就是说,我希望以下文件产生4个节点:

digraph G {


  subgraph cluster_clust_one {
     node [shape=record];

     a [label = "A / 1"];
     b [label = "B / 1"];

     a -> b;
  }


  subgraph cluster_clust_two {
     node [shape=record];

     a [label = "A / 2"];
     b [label = "B / 2"];

     a -> b;
  }

}
Run Code Online (Sandbox Code Playgroud)

但是,它不是,因为节点ID不是唯一的。显然,我可以通过分配唯一的ID(例如,通过更改cluster_clust_two

  subgraph cluster_clust_two {
     node [shape=record];

     c [label = "A / 2"];
     d [label = "B / 2"];

     c -> d;
  }
Run Code Online (Sandbox Code Playgroud)

不幸的是,这将需要更改生成点文件的脚本,如果不是绝对必要的话,我将不希望这样做。因此,如果有标志或可以设置的东西,我更喜欢这条路线。

dot graphviz

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

为什么宽度为1px的边框会将div增加20像素?

下面的html文档有两个div,一个带border(id='with'),另一个没有(id='without).带边框的div(至少在firefox和chrome上)显着高于带边框的div.

我原alert以为它们的高度最多只有2个像素,但是,告诉我它们的高度是19像素不同.

我无法弄清楚为什么会这样.

<!DOCTYPE HTML>
<html>
<head>
  <title>Height of divs with/without a border</title>
  <script type="text/javascript" src='jquery-1.8.3.js'></script>

  <script type='text/javascript'>

    $(document).ready(function() {

           alert($('#with'   ).height() + ' / ' + 
                 $('#without').height());

    });

  </script>

</head>
<body>

  <div style='width:300px;border:black 1px solid;background-color:yellow' id='with'>
    <h1>With a border</h1>
    bla<br>
    bla<br>
    bla<br>
  </div>

  <div style='width:300px;background-color:green' id='without'>
    <h1>Without a border</h1>
    bla<br>
    bla<br>
    bla<br>
  </div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css

5
推荐指数
2
解决办法
275
查看次数

我应该使用"使用5.12.0;使用警告;" 在perl模块中?

如果启动一个perl模块,我不确定它是否以及它有什么不同

package MYPACKAGE;
use 5.12.0;
use warnings;

# functions are here

1;
Run Code Online (Sandbox Code Playgroud)

要么

use 5.12.0;
use warnings;
package MYPACKAGE;

#  functions are here

1;
Run Code Online (Sandbox Code Playgroud)

或者如果这些use ...都不被认为因为它们use ...是从调用perl脚本继承而来的.

这个问题可能归结为:是否值得use ...在模块中指定它们,或者如果我在perl脚本中指定它们就足够了.

perl module

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

为什么Perl的"系统('某些命令')"与c:\>某些命令的行为有所不同?

在我的(cmd.exe)中,当前工作目录是名为libre-office-document.odt的文件.我可以使用start命令打开此文档而不会出现问题:

c:\path\to\> start libre-office-document.odt
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用以下简单的Perl脚本

use warnings;
use strict;

print system("start libre-office-document.odt")
Run Code Online (Sandbox Code Playgroud)

并在同一目录中执行它,我得到以下消息框:

LibreOffice 4.4 - 致命错误

该应用程序无法启动.
用户安装无法完成.

显然,使用Perl system命令时某些行为会有所不同.我无法确定这是什么以及如何使用该system命令打开文档.

perl cmd spawn

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

为什么 DBD::SQLite 对 SQL 语句有不同的查询计划

我有一个INSERT INTO... SELECT ... FROMSQL 语句,从命令行 shell 执行时运行速度可以接受SQLite's

但是,如果我使用 Perl 执行相同的语句(复制/粘贴)DBI::SQLite,则该语句会变慢。

原因一定是执行计划:当我让语句从 shell 和内部解释时DBI::SQLite,它们是不同的:快速版本使用最佳索引和表顺序,慢速版本选择以小于最佳方式。

所以,我有两个问题。

  1. 为什么计划不同?
  2. 如何才能使Perl环境中使用的计划与shell中使用的计划相同?

sql sqlite perl dbi sql-execution-plan

5
推荐指数
0
解决办法
124
查看次数

如果通过 COM 而不是通过“开始”菜单启动,为什么 Word 打开时会显示不同的 normal.dot?

当我在“开始”菜单上启动 Microsoft Word,然后查询文件Application.NormalTemplate.Path的位置时normal.dotm,如预期的那样,我得到了C:\Users\USERNAME\AppData\Roaming\Microsoft\Templates.

但是,当我在 PowerShell 中使用 COM 自动化启动 Word 时:

$wrd = new-object -com word.application
$wrd.visible = $true
Run Code Online (Sandbox Code Playgroud)

查询相同的表达式时,我得到不同的路径:C:\Users\USERNAME\AppData\Local\Packages\Microsoft.Office.Desktop_8wekyb3d8bbwe\LocalCache\Roaming\Microsoft\Templates

为什么会这样?我该怎么做才能让 COM 调用打开同一个 normal.dotm 文件?

com powershell vba ms-word com-interop

5
推荐指数
0
解决办法
588
查看次数

@media print {color#999999;}在Fire Fox中无法识别

在我看来,Firefox没有正确处理CSS文件中的指令.我可能错了,我想在此纠正我.

这是我的CSS的相关部分:

@media print {
  div.entry a:link {
    text-decoration:none;
    color:#999;
  }
}
Run Code Online (Sandbox Code Playgroud)

当我打印页面时,如果颜色以十六进制表示给出,则无论color:指令后的值如何,链接都以黑色打印.

有趣的是,如果我将线条更改为类似的东西,color:yellow;则链接将以黄色打印.此外,Internet Explorer以灰色显示链接(#999).因此,我得出结论,这必定是Firefox的一个错误.如果不是,请告诉我.

我是FF 3.6

css firefox

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