AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

全部问题(coding)

Martin Hope
js4032
Asked: 2025-04-29 03:28:53 +0800 CST

使用 R 中的 officer 超链接到 Word 文档中的标题

  • 7

我希望生成包含指向同一文档中其他位置的链接的Word文档,例如,如果某个图表在其他地方的文本中被引用。以下是我希望实现的一个简单示例:

library(officer)
library(dplyr)

doc <- read_docx() %>%
  body_add_par('1. Introduction', style = 'heading 1') %>%
  # hyperlink_ftext() %>% # I want to link this to Figure 1
  body_add_par('Figure 1', style = 'heading 2')

print(doc, target = 'test.docx')

href我可以在参数中传递一些东西hyperlink_ftext来实现这一点吗?如果没有,还有其他方法可以实现吗?

注意:这篇文章似乎讨论的是同一件事,但一直没有得到任何回复。我在 Github 软件包页面上也没有看到任何相关的帖子。PowerPointph_slidelink中有内部链接的例子,但我找到的所有 Word 示例都是 URL 的例子。

  • 1 个回答
  • 56 Views
Martin Hope
LppEdd
Asked: 2025-04-29 03:07:06 +0800 CST

JDK 生成的字符集类中存在冗余的非往返字节映射

  • 5

我目前正在研究 SBCS/DBCS 解码在 JDK 中的工作方式,并且我偶然发现了字符集实现中的一段奇怪的代码IBM930(尽管它不是唯一的)。

首先,据我了解,JDK 实现者使用映射文件来生成大多数字符集类。例如:

IBM930.map
IBM930.nr    non-roundtrip bytes override
IBM930.c2b   non-roundtrip codepoints override

是DBCS实用程序解释生成的文件IBM930.java。

如果我们仔细研究IBM930.nr,就会发现:

25  000a

这意味着字节0x25 必须映射到\u000a。

如果我们现在看一下IBM930.map,我们会看到:

...
24  0084
25  000A  <---
26  0017
...

因此,非往返覆盖已在主 .map 文件中指定。
如果我们打开IBM930.java,可以在最底部看到:

static class EncodeHolder {
    static final char[] c2b = new char[0x7400];
    static final char[] c2bIndex = new char[0x100];

    static {
        String b2cNR = "\u0025\n";
        String c2bNR = ...
        DoubleByte.Encoder.initC2B(DecodeHolder.b2cStr, DecodeHolder.b2cSBStr,
                                   b2cNR, c2bNR,
                                   0x40, 0xfe,
                                   c2b, c2bIndex);
    }
}

具体来说,我指的是String b2cNR = "\u0025\n"。

鉴于主 .map 文件已经包含 NR 覆盖,为什么生成过程仍然会生成非空值b2cNR?

是不是因为并非所有 .map 文件都调整为包含 .nr 条目?
还是我忽略了该initC2B方法的某个特定行为?

java
  • 1 个回答
  • 47 Views
Martin Hope
The Dog on the Log
Asked: 2025-04-29 02:55:09 +0800 CST

如何在 Java 中将 char 数组转换为 long 并转换回来(不是 Long.parseLong() 或 String.valueOf())

  • 6

我正在尝试使用 RSA 编写一个加密程序,需要能够将明文转换为long。显然,明文中必须包含不仅仅是数字的内容,所以使用Long.parseLong()不是一个解决方案。我找到了这个,它解释了如何用这种方法将char数组转换为long,但我不确定如何将其转换回char数组(或String)。我从上述网站获得的代码如下:

public long charArrayToLong(char[] bi){
    long len = bi.length;
    long sum = 0;
    long tmp, max = len - 1;
    for (int i = 0; i < len; ++i) {
        tmp = bi[i] - '0';
        sum += tmp * Math.pow(2, max--);
    return sum;
}

此代码用于将char数组转换为长整型,而不依赖于数组中仅有的数值char,但我还需要一种将其转换回来的方法。

具体来说,我要寻找的是:我需要根据其 ASCII 值将char中的每个 转换为一个数字,根据其在 中的位置的幂乘以该数字,将这些数字相加以获得纯文本变量,然后反转操作以将其转换为另一种方式。StringStringlong

我的预期输入是String纯文本(例如“敏捷的棕色狐狸跳过了懒狗”)。我的预期输出是长整型,其中包含String嵌入数字中的每个字符的值。

我之所以需要这样做,是因为我需要String用公式来指数化一个数字,而不是c = m ^ e % n。由于m是明文消息,我需要将其转换为数字,这样我就可以将其取 的幂e,即公钥。

java
  • 2 个回答
  • 84 Views
Martin Hope
sudoExclamationExclamation
Asked: 2025-04-29 02:53:20 +0800 CST

如何让iOS移动渐变边框永远向一个方向移动而不重置到原始位置?

  • 5

我的以下代码显示了该问题:

import UIKit
import SnapKit

class ViewController: UIViewController {

    let animatedBorderView = AnimatedGradientBorderView()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        animatedBorderView.layer.cornerRadius = 20
        animatedBorderView.clipsToBounds = true
        view.addSubview(animatedBorderView)
        animatedBorderView.snp.makeConstraints { make in
            make.center.equalToSuperview()
            make.size.equalTo(400)
        }
    }
}

class AnimatedGradientBorderView: UIView {
    
    private let gradientLayer = CAGradientLayer()
    private let shapeLayer = CAShapeLayer()
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setupLayers()
    }
    
    required init?(coder: NSCoder) {
        super.init(coder: coder)
        setupLayers()
    }
    
    private func setupLayers() {
        gradientLayer.startPoint = CGPoint(x: 0, y: 0)
        gradientLayer.endPoint = CGPoint(x: 1, y: 1)
        gradientLayer.colors = [
            UIColor.systemRed.cgColor,
            UIColor.systemYellow.cgColor,
            UIColor.systemGreen.cgColor,
        ]
        gradientLayer.locations = [0, 0.3, 0.6, 1]
        layer.addSublayer(gradientLayer)
        
        shapeLayer.lineWidth = 5
        shapeLayer.fillColor = nil
        shapeLayer.strokeColor = UIColor.black.cgColor
        gradientLayer.mask = shapeLayer
        
        startAnimating()
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        gradientLayer.frame = bounds
        let path = UIBezierPath(roundedRect: bounds.insetBy(dx: shapeLayer.lineWidth / 2, dy: shapeLayer.lineWidth / 2), cornerRadius: layer.cornerRadius)
        shapeLayer.path = path.cgPath
    }
    
    private func startAnimating() {
        let animation = CABasicAnimation(keyPath: "locations")
        animation.fromValue = [0, 0.2, 0.4, 0.6]
        animation.toValue = [0.4, 0.6, 0.8, 1]
        animation.duration = 2.0
        animation.repeatCount = .infinity
        animation.autoreverses = false
        gradientLayer.add(animation, forKey: "animateLocations")
    }
}

这将产生以下动画:

在此处输入图片描述

请注意,我将其设置autoreverses为 false,因为我不想让它在重复到 时反转回来infinity。然而,这样做的结果是,在 之后duration,它会从原来的 重新开始location。这会导致移动渐变边框突然跳动。

我怎样才能让它一直朝一个方向移动而不重置?

  • 1 个回答
  • 50 Views
Martin Hope
bleh bleh
Asked: 2025-04-29 02:52:40 +0800 CST

Ublock Origin 替换节点文本

  • 7

我访问的一个网站有一个过于敏感的脏话过滤器,它会在诸如 doc.u.ments 或 as.sas.sin 之类的单词中间添加句号。没有关闭脏话过滤器的选项。我想用类似 Ublock Origin 之类的工具来去除单词中间的句号。我不知道最好的方法是什么。

我首先尝试了这个:##+js(replace-node-text, #text, ".", "")

它不仅清理了单词中间的句号,还删除了所有常规的句子结尾句号。

于是我尝试了这个:##+js(replace-node-text, #text, /[.][az]+/, "")

但这只会把 doc.u.ments 变成:doc.ments,这不是我想要的。我想知道有没有人有什么想法。

javascript
  • 1 个回答
  • 27 Views
Martin Hope
Isaac Honeyman
Asked: 2025-04-29 02:44:23 +0800 CST

C# 最少的资源/处理器密集型,可在短时间内准确阻止线程

  • 3

我正在开发一个控制台应用程序,它会定期执行两个线程:一个用于 tickEvent 函数,另一个用于更新控制台显示。目前,每个线程只是在条件检查时阻塞,直到下一个周期到来。

这种方法有效,但对处理器的要求很高,而且对于我在后台运行的应用程序来说,会导致风扇发出很大的噪音。

当前方法:

static void HandleTickBehaviour()
{
    Stopwatch tickDuration = new(); //time tick starts

    while (true)
    {
        tickDuration.Restart();

        Tick.Invoke(ElapsedTicks); // invoke all tick event watchers
        Profiler.CalcTime.Add(tickDuration.ElapsedMilliseconds); // how long it took for all tick event to run

        long targetThreadDelay = (int)(Math.Max(25 - Math.Max(_deltaTime - 25, 0), 0) / 1000d * Stopwatch.Frequency); // how long to wait for next tick (25ms - delta time)
        while (true) if (tickDuration.ElapsedTicks >= targetThreadDelay) break;

        _deltaTime = tickDuration.ElapsedMilliseconds;
        Profiler.TickTime.Add(_deltaTime);
        ElapsedTicks++;
    }
}

internal static void HandleConsoleRender()
{
    Stopwatch frameDuration = new();

    while (true)
    {
        frameDuration.Restart();
        RenderConsole();

        while (true) if (frameDuration.ElapsedTicks >= displayWindowsTickInterval) break;

        Profiler.RenderTime.Add(frameDuration.ElapsedTicks);
    }
}

线程阻塞结果: 结果

我尝试实现的另一种方法是使用thread.sleep(),但是由于这些函数每隔几毫秒就会被调用一次,因此重新唤醒线程的延迟实在太多,甚至尝试解释它也会导致更新无法预测地发生。

Thread.Sleep() 结果: 结果

c#
  • 2 个回答
  • 106 Views
Martin Hope
Ninety9Balloons
Asked: 2025-04-29 02:27:33 +0800 CST

如何更新已过滤数组内的对象?

  • 7

我正在做这个前端导师挑战,大部分功能都已实现。我可以根据数据的isActive属性进行过滤,根据它们是否处于活动状态来显示正确的项目。但我搞不清楚如何更新单个项目的isActive状态,以及如何在切换时重新渲染应用,以便将项目移动到正确的过滤器中。

以下是代码App.jsx:

function App() {
  const [data, setData] = useState([]);
  const [filteredData, setFilteredData] = useState(data);
  const [activeFilter, setActiveFilter] = useState("All");

  // Fetch and set the data.
  useEffect(() => {
    fetch("../data.json")
      .then((response) => response.json())
      .then((data) => setData(data))
      .catch((error) => console.error("error", error));
  }, []);

  // Filter the data
  useEffect(() => {
    if (activeFilter === "All") {
      setFilteredData(data);
    } else if (activeFilter === "Active") {
      setFilteredData(data.filter((item) => item.isActive === true));
    } else {
      setFilteredData(data.filter((item) => item.isActive === false));
    }
  }, [activeFilter, data]);

  return (
    <div className="w-full h-full bg-linear-to-b from-[#040918] to-[#091540] py-6 px-3 flex flex-col text-white">
      {/* Header */}
      <Header />

      {/* Options */}
      <Options activeFilter={activeFilter} setActiveFilter={setActiveFilter} />

      {/* Cards */}
      {filteredData &&
        filteredData.map((item) => (
          <Card
            logo={item.logo}
            name={item.name}
            description={item.description}
            isActive={item.isActive}
            key={item.name}
            setFilteredData={setFilteredData}
            filteredData={filteredData}
          />
        ))}
    </div>
  );
}

这是Card.jsx带有拨动开关的:

const Card = ({
  logo,
  name,
  description,
  isActive,
  filteredData,
  setFilteredData,
}) => {
  const [activeState, setActiveState] = useState(isActive);

  function handleClick() {
    setActiveState(!activeState);
  }

  return (
    <div className="bg-neutral-700 p-4 rounded-xl border border-neutral-600 mt-4">
      <div className="flex items-start gap-4">
        {/* Logo */}
        <img src={logo} alt="Extension Image" />

        {/* Name and Description */}
        <div className="flex flex-col gap-2 mb-8">
          <h2 className="font-semibold text-xl">{name}</h2>
          <p className="text-sm font-light">{description}</p>
        </div>
      </div>

      {/* Remove Button */}
      <div className="flex justify-between items-center">
        <div className="border border-neutral-600 rounded-full px-3 py-1 flex items-center justify-center">
          <button>Remove</button>
        </div>

        {/* Is Active Toggle */}
        <div className="flex items-center justify-center">
          <label
            htmlFor={`${name}Toggle`}
            className="flex items-center cursor-pointer "
          >
            <div className="relative">
              <input
                id={`${name}Toggle`}
                type="checkbox"
                className="sr-only"
                onClick={handleClick}
              />
              <div
                className={`flex items-center ${
                  activeState ? "bg-red-400 " : "bg-gray-600 "
                } w-11 h-6 rounded-full transition-all px-[2px]`}
              >
                <div
                  className={`bg-white w-5 h-5 rounded-full ${
                    activeState ? "translate-x-5" : "translate-x-0"
                  } transition-all`}
                ></div>
              </div>
            </div>
          </label>
        </div>
      </div>
    </div>
  );
};

我试图在卡片handleclick函数里找到同样的方法,将特定卡片的名称与物品的名称匹配,filteredData然后……翻转它的isActive状态?我不知道该怎么做,我甚至不确定这是不是最好的方法。

javascript
  • 2 个回答
  • 63 Views
Martin Hope
Johnny Bones
Asked: 2025-04-29 02:03:03 +0800 CST

在 SQL 查询中高效比较 DATE 和 DATETIME 列

  • 5

我有包含数百万(可能数十亿)行的表,所以我确实需要高效地进行查询。

在这个查询中,我连接了多个表。所涉及的段是:

LEFT JOIN 
    dbo.GCSOCTPS dbo_GCSOCTPS ON (GC_TBMED.MED_CLASS_NUM = dbo_GCSOCTPS.CLASS_NUM) 
                              AND (GC_TBMED.MED_SOC_NUM = dbo_GCSOCTPS.SOC_NUM)
                              AND (GC_TBMED.MED_EFF_DATE = dbo_GCSOCTPS.EFF_DATE)
                              AND (GC_TBMED.MED_CANC_DATE = dbo_GCSOCTPS.CANC_DATE)) 

GC_TBMED格式为日期DATE,格式dbo_GCSOCTPS为日期DATETIME。遗憾的是,由于我们公司使用数据的方式,我无法更改这一点。

比较这些列最有效的方法是什么???CAST我 CONVERT见过有人转换成文本格式再比较。我希望有人能根据他们处理海量数据集的经验来指导我。

如果我运行此代码块,我会得到 HDHPQ 的值:

SELECT TOP 200 
    HDHPQ,
    SOC_NUM, 
    EFF_DATE,
    CLASS_NUM,
    CANC_DATE
FROM
    dbo.GCSOCTPS
WHERE
    SOC_NUM = '25521'
    AND CLASS_NUM = '37'
    AND CANC_DATE IS NULL;

返回结果如下:

HDHPQ    SOC_NUM    EFF_DATE                  CLASS_NUM    CANC_DATE 
N         25521    2025-01-01 00:00:00.000      37         NULL

如果我运行此代码块,我也会得到返回的数据:

SELECT TOP 200 
    MED_SOC_NUM,
    MED_EFF_DATE,
    MED_CLASS_NUM,
    MED_CANC_DATE
FROM
    [dbo].[AS_tblTBMED] GC_TBMED
WHERE 
    GC_TBMED.MED_SOC_NUM = '25521'
    AND GC_TBMED.MED_CLASS_NUM = '37'
    AND GC_TBMED.MED_CANC_DATE IS NULL;

返回结果如下:

MED_SOC_NUM    MED_EFF_DATE    MED_CLASS_NUM    MED_CANC_DATE
25521        2025-01-01        37                NULL

每个查询都返回一行。我需要将它们连接起来,以便获取第二个查询中的所有数据以及第一个查询中的 HDHPQ 值。

所以我运行这个查询:

SELECT DISTINCT TOP 200 
    dbo_GCSOCTPS.HDHPQ,
    dbo_GCSOCTPS.SOC_NUM, 
    dbo_GCSOCTPS.EFF_DATE,
    dbo_GCSOCTPS.CLASS_NUM,
    dbo_GCSOCTPS.CANC_DATE,
    GC_TBMED.MED_SOC_NUM,
    GC_TBMED.MED_EFF_DATE,
    GC_TBMED.MED_CLASS_NUM,
    GC_TBMED.MED_CANC_DATE
FROM
    [dbo].[AS_tblTBMED] GC_TBMED
LEFT JOIN 
    dbo.GCSOCTPS dbo_GCSOCTPS ON (GC_TBMED.MED_CLASS_NUM = dbo_GCSOCTPS.CLASS_NUM) 
                              AND (GC_TBMED.MED_SOC_NUM = dbo_GCSOCTPS.SOC_NUM)
                              AND (GC_TBMED.MED_EFF_DATE = CAST(dbo_GCSOCTPS.EFF_DATE as DATE))
                              AND (GC_TBMED.MED_CANC_DATE = CAST(dbo_GCSOCTPS.CANC_DATE as DATE)) 
WHERE
    GC_TBMED.MED_SOC_NUM = '25521'
    AND GC_TBMED.MED_CLASS_NUM = '37'
    AND GC_TBMED.MED_CANC_DATE IS NULL
    AND dbo_GCSOCTPS.EFF_DATE >= '2025-01-01';

返回的是一个空的记录集。如果我注释掉连接语句中的两个日期,就能得到数据。所以,我的假设是日期字段没有完全相等,因为它们是相等的,所以如果查询中包含它们,我应该能得到数据。

sql
  • 4 个回答
  • 178 Views
Martin Hope
tassones
Asked: 2025-04-29 01:34:56 +0800 CST

如何格式化 facet_wrap 图的标题以匹配面条样式?

  • 8

我正在尝试将绘图标题的格式设置facet_wrap为与构面条带的样式一致。在下面的绘图中,我添加了标题“len”,但它的格式看起来与右侧构面条带(例如 0.5、1、2)的格式不同。如何使标题看起来像构面条带(例如,灰色矩形框、黑色轮廓、文本沿绘图宽度居中等)?

library(tidyverse)

ToothGrowth |> 
  ggplot(aes(x = dose, y = len)) + 
  geom_boxplot(aes(fill = supp)) +
  labs(title = 'len',
       y = NULL) +
  theme_bw() +
  facet_wrap(~dose, ncol = 1, strip.position = "right")

创建于 2025-04-28,使用reprex v2.1.1

  • 2 个回答
  • 36 Views
Martin Hope
Badr Bujbara
Asked: 2025-04-29 01:24:45 +0800 CST

如何解决 Xcode 中的 UIViewControllerRepresentable 错误?

  • 5

我正在尝试创建一个UIViewControllerRepresentable结构体,但 Xcode 一直抱怨实现存根

struct PassVC: UIViewControllerRepresentable {
    typealias UIViewControllerType = UIViewController
    
    func makeUIViewController(context: Context) -> UIViewController {
        let vc = UIViewController()
        vc.view.backgroundColor = .yellow
        return vc
    }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
        
    }
}

我先添加了 typealias,然后手动输入,最后让 Xcode 实现存根,也手动输入,但所有尝试都以 Xcode 报错,说没有实现存根。如果我点击“修复”,它会报错说存根方法需要重新声明。有人在 Xcode 中遇到过同样的问题吗?我的 Xcode 版本是 16.0。 在此处输入图片描述

xcode
  • 2 个回答
  • 43 Views
上一页
下一页

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve