我正在从Excel中检索数据,并希望保持我的数组0基础,但Excel返回1个基数.是否有一种相当简单的方法可以将数组从1更改为0基数?或者我只需要创建一个循环?
这是一个示例代码:
dim oData(,) as object
dim rng as range
dim wks as worksheet = xlApp.Activeworkbook.sheets(Sheet1)
rng=wks.Range("A1:B2")
oData=rng.Value2
Run Code Online (Sandbox Code Playgroud) 我正在为写一个post-commit钩子git。我想知道最新提交是否更改了特定目录中的任何文件。如果有任何更改,我可以继续并调用一些昂贵的代码,否则我可以跳过它。
# get last commit hash prepended with @ (i.e. @8a323d0)
function parse_git_hash() {
git rev-parse --short HEAD 2> /dev/null | sed "s/\(.*\)/@\1/"
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要确定指定目录是否有任何更改。但是我不确定该怎么做。我已经看了,用打git-log和git-show,但没有成功为止。
所以,我需要做这样的事情。
if [directory-changed()] {
echo "start expensive operation"
}
Run Code Online (Sandbox Code Playgroud)
这实际上使我进入了其中:实际上,它捕获了最后一次提交而不是指定的提交。
git log -U a79851b -1 my/directory/path
Run Code Online (Sandbox Code Playgroud)
提前致谢。
是否可以遍历VBA RegEx匹配项并替换为ID值给出的特定数据?
例如,
<a id="a-UP:124" {REPLACEITEMHERE}
.../a>
Run Code Online (Sandbox Code Playgroud)
用我的模式是这样的:
<a id="a-([\w\d]+:[\w\d]+)" ({REPLACEITEMHERE})
Run Code Online (Sandbox Code Playgroud)
因此,我有多个“替换项”,每个项对于的值都是唯一的UP:124。
这可能VBA RegEx吗?我只是想知道,然后再经历一个比较麻烦的过程!谢谢!
更新(根据评论者的请求提供更多详细信息-希望这可以使我更清楚寻找的内容!我了解如何创建模式,使其更加遍历结果,然后对我拥有的每个发现执行替换麻烦。谢谢!):
这是我正在使用的RegEx模式:
<a id="a-([\w\d]+:[\w\d]+)"[^{]+({FILE})[^{]+({PERCENT})[^{]+({COLOR})
Run Code Online (Sandbox Code Playgroud)
设置为:
.Global = True
.IgnoreCase = True
.MultiLine = False
Run Code Online (Sandbox Code Playgroud)
替换模式,我想是检查什么第一个捕获组的值$1是,然后替换值{FILE} {PERCENT} {COLOR}(组$2,$3和$4)用适当的值,我存储在一个类中。
<path
style="fill:#d40000;fill-opacity:1;filter:url(#filter5248)"
d="m 168.04373,162.08375 c -4.7586,-5.00473 -8.65201,-9.35811 -8.65201,-9.67419 0,-0.81973 18.30811,-16.3921 25.16949,-21.40847 7.11903,-5.20474 16.462,-10.93031 17.83606,-10.93031 0.56369,0 3.81291,5.56174 7.22048,12.35942 l 6.19558,12.35941 -7.13301,3.9009 c -7.96536,4.3561 -21.53264,13.83148 -27.5305,19.22729 -2.16466,1.94738 -4.05237,3.47876 -4.19491,3.40307 -0.14254,-0.0757 -4.15257,-4.2324 -8.91118,-9.23712 z"
id="path5246"
inkscape:connector-curvature="0" …Run Code Online (Sandbox Code Playgroud) 我有一个iife我想编译的文件和import类型的声明。在 TypeScript 版本 3.* 中,它可以正确编译。但在 TypeScript 版本 4.* 中,它会附加一个export {}. 有办法防止这种情况吗?
这是打字稿文件test.ts:
import { Tester } from "./tester"
(async function test() : Promise<Tester> { return { hello: "export" } }())
Run Code Online (Sandbox Code Playgroud)
tester.d.ts
export interface Tester {
hello: string
}
Run Code Online (Sandbox Code Playgroud)
使用 TypeScript 4.* 生成的文件test.js
(async function test() { return { hello: "export" }; }());
export {};
Run Code Online (Sandbox Code Playgroud)
使用 TypeScript 3.9.* 生成的文件test.js
(async function test() { return { hello: "export" }; }());
Run Code Online (Sandbox Code Playgroud)
我的tsconfig.json …
我正在尝试使用nameofF# 5.0 预览版中的新功能。它适用于values但不适用于记录属性,例如:
type MyType { Id: int }
let name = nameof MyType.Id
Run Code Online (Sandbox Code Playgroud)
这会导致错误FS0728 Field 'Id' is not static
我尝试这样做:
let name = nameof<MyType.Id>
let name = nameof(MyType.Id)
let name = nameof Id
Run Code Online (Sandbox Code Playgroud)
也没有修复错误。有没有一种特殊的方法我应该这样做或者没有nameof完全实施?
我正在尝试延迟加载(带有yield返回的扩展)2D对象数组中的行.我收到以下错误:
c#无法将类型为"<> d__6"的对象强制转换为"System.Object []".
在该Parse方法中找到的此行上发生异常:
yield return (TSource) conversion(o);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么C#认为返回值<>d__6代替Object[].我通常编程,VB.NET所以我不认为我理解的细微差别C#.我究竟做错了什么?我看了其他类似的问题/答案,但仍然感到困惑.
public static IEnumerable<TSource> Parse<TSource>(this object[,] array
, Func<IEnumerable<object[]>, IEnumerable<TSource>> conversion
, int rowStart, int columnStart, int rowCount, int columnCount)
{
IEnumerable<object[]> o
= array.ForEachRow(rowStart, columnStart, rowCount, columnCount);
yield return (TSource) conversion(o);
}
Run Code Online (Sandbox Code Playgroud)
ForEachRow方法:
public static IEnumerable<object[]> ForEachRow(this object[,] array,
int rowStart, int columnStart, int rowCount, int columnCount)
{
object[] array1d=new object[columnCount];
for (int row = rowStart; row < …Run Code Online (Sandbox Code Playgroud) 我想创建一个调用两个文件的快捷方式,首先,它调用Excel.exe,然后调用我的加载项.
我测试了它做了以下事情:
Target:
"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" "C:\MyAddin.xll"
Run Code Online (Sandbox Code Playgroud)
它工作正常.现在我想在inno-setup中实现它.
我必须通过inno-setup中的一些自动化获取Excel.exe位置,我将其存储在全局变量中.
这就是我尝试过的:
Name: {commondesktop}\{#MyAppName}; Filename: ExcelExecutablePath;
Parameters: {app}\{#MyAppExeName}; Tasks: desktopicon;
Flags: CreateOnlyIfFileExists; IconFilename: {app}\Icons\TimeCard64.ico;
Run Code Online (Sandbox Code Playgroud)
我也尝试了其他的东西,但是我在这个方面有点亏.
提前致谢.让我知道我是否应该更清楚一些事情!
我正在尝试使用FSharp.Data第三方库,但The type 'XmlProvider' is not defined在XmlProvider类上遇到了错误。
namespace KMyMoney
open FSharp.Data
module Read =
let xml = File.ReadAllText("KMyMoneySampleFile.xml")
type KMyMoneySource = XmlProvider<xml>
Run Code Online (Sandbox Code Playgroud)
我正在使用NuGet来获取库。库为'FSharp.Data 1.1.8'
当我键入FSharp.Data.有四个选项中给出:Csv,FreebaseOperators,Json,和RuntimeImplementation。
我想念什么吗?我对F#比较陌生。因此,对这个简单的问题感到抱歉。我看过GitHub,但没有看到任何有关此问题的信息。我正在F#中创建一个库。
我可以在 HTML 中的标记JSDoc中使用script,但无法引用类型定义文件 ( .d.ts)。我在用着VS Code。这可能吗?如果可以我该怎么做?下面是一些示例代码:
该tsconfig.json文件(我不确定如何在我的测试中完全使用它,它似乎不需要。):
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"myLib": ["types/MyLib/index.d.ts"],
"myLib2": ["types/MyLib/index2.d.ts"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
在types/MyLib/index.d.ts:
declare namespace myLib {
function makeGreeting(s: string): string
let numberOfGreetings: number
}
Run Code Online (Sandbox Code Playgroud)
在 JS 文件中index.js,工作正常:
/// <reference path="./types/MyLib/index.d.ts" />
// @ts-check
var result = myLib.makeGreeting("Cheese")
console.log(result)
Run Code Online (Sandbox Code Playgroud)
在 HTML 文件中(这些都不起作用)index.html:
<script>
/// <reference path="./types/MyLib/index.d.ts" />
// @ts-check
var result = myLib.makeGreeting("Cheese")
</script>
<script> …Run Code Online (Sandbox Code Playgroud) 我从HTTP呼叫中获得了一些数据列表.然后我知道另一个HTTP电话会得到什么值.我希望一切都是异步的.但我需要使用这个数据Expecto的 testCaseAsync : string -> Async<unit> -> Test.所以,我的目标是获得这样的签名Async<Item>[]
所以,我想得到一份清单testCaseAsync.
所以,我基本上有这样的事情:
// Async<Async<Item>[]>
let getAsyncCalls =
async {
let! table = API.getTable ()
// Async<Item>[]
let items =
table.root
|> Array.map (fun x -> API.getItem x.id)
return item
}
Run Code Online (Sandbox Code Playgroud)
如果我并行运行它,我得到:
// Async<Item[]>
let getAsyncCalls =
async {
let! table = API.getTable ()
// Item[]
let! items =
table.root
|> Array.map (fun x -> API.getItem x.id)
return item
}
Run Code Online (Sandbox Code Playgroud)
所以,这不会让我这么做Async<Item>[].我不确定这是否可行.我想避免 …
我正在尝试将Exposed库添加到我的项目中.所以,它引导我到bintray页面,它说它要使用compile 'org.jetbrains.exposed:exposed:0.8.5'.我打开我的文件build.gradle并将该文件放入dependencies段中:
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
compile 'org.jetbrains.exposed:exposed:0.8.5'
}
Run Code Online (Sandbox Code Playgroud)
IntelliJ auto构建它,我收到以下错误
警告:根项目'DB-Table-To-Orm':无法构建Kotlin项目配置详细信息:java.lang.reflect.InvocationTargetException:null由以下原因引起:org.gradle.api.artifacts.ResolveException:无法解析所有依赖项配置':compileClasspath'.引起:org.gradle.internal.resolve.ModuleVersionNotFoundException:找不到org.jetbrains.exposed:expposed:0.8.5.在以下位置搜索:https : //repo1.maven.org/maven2/org/jetbrains/exposed/exposed/0.8.5/exposed-0.8.5.pom https://repo1.maven.org/maven2/org /jetbrains/exposed/exposed/0.8.5/exposed-0.8.5.jar 必需:project:
所以,我期待在回购并没有超出路径jetbrains与exposed目录.
如何使用Gradle安装Exposed库?他们的路径写得不正确吗?我应该在项目中添加错误报告吗?或者我只是把compile声明放在错误的位置?
很抱歉,如果这似乎是一个愚蠢的要求,我是新来的Javaland和Kotlin和IntelliJ.走向.NET世界.
更新
这是build.gradle完整的:
group 'com.awebsite.db-table-to-orm'
version '1.0-SNAPSHOT'
buildscript {
ext.kotlin_version = '1.1.4-2'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin'
repositories {
mavenCentral()
jcenter()
} …Run Code Online (Sandbox Code Playgroud)