AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
Paolo Lorenzini
Asked: 2025-04-11 21:42:20 +0800 CST

aplicar uma função com dois argumentos, linha por linha, em um quadro de dados

  • 8

Tenho uma referência e sequências de consulta:

ref_seq <- "ATTT"
df <- data.frame(V1=c("AATT", "TTTT", "GGTT"))

Gostaria de retornar as posições incompatíveis na sequência para cada consulta em comparação com a referência:

seqdiff <- function(seq1, seq2) {
  seq <- strsplit(c(seq1, seq2), split= '')
  mismatches <- which(seq[[1]] != seq[[2]])
  return(mismatches)
}
    
apply(X=df, MARGIN=2, function(x) seqdiff(x, ref_seq))

#      V1
# [1,]  1
# [2,]  2

Resultado esperado:

#      V1
# [1,]  2
# [2,]  1
# [3,]  1 2
  • 5 respostas
  • 80 Views
Martin Hope
ALICEZzz
Asked: 2025-04-11 13:13:51 +0800 CST

Como chamamos isso de "int * nome[4]" usando esta frase "lista de tipos de declaradores derivados de T"

  • 8

No C17 temos isto (6.7.6.2 #3):

Se, na declaração “ T D1”, D1tiver uma das formas:

 D [ lista de qualificadores de tipo opt expressão de atribuição opt ]
 D [ lista de qualificadores de tipo opt expressão de atribuição ]
 D [ lista de qualificadores de tipo static expressão de atribuição ]
 D [ lista de qualificadores de tipo opt ]

e o tipo especificado para ident na declaração “ T D” é “ derived-declarator-type-list T ”, então o tipo especificado para ident é “ derived-declarator-type-list array of T ”. 144) (Veja 6.7.6.3 para o significado dos qualificadores de tipo opcionais e da palavra-chave static.)

Derivado não é float, ou int, ou char, é "matriz de", ou "ponteiro para".

Por exemplo, temos int name [2][3], aqui Testá int, e D1é A[2][3], com a forma D[3]onde Dé A[2], então T Dé int A[2], ou "matriz de 2 int". Então o tipo declarado de Aé "matriz de 2 matriz de 3 int".

Mas e quanto a int * name[4]?

Aqui, a " lista de tipos de declaradores derivados T " será int * name. E, ao que parece, o " array de lista de tipos de declaradores derivados de T " será um ponteiro para um array de 4 elementos?

No fim das contas, isso está errado, porque int *name[4]é um array de 4 ponteiros. Por favor, me explique.

arrays
  • 2 respostas
  • 130 Views
Martin Hope
AshBoomstick1
Asked: 2025-04-11 09:57:52 +0800 CST

Por que minha animação JS não está sendo detectada como iniciada pelo meu ouvinte de evento 'animationstart'?

  • 8

Tenho uma animação que estou declarando e reproduzindo usando JS, mas quando a animação é reproduzida, meu ouvinte de eventos não dispara.

Aqui está o arquivo HTML:

let anim = document.getElementById("anim");

const animkeyFrames = new KeyframeEffect(
  anim,
  [{
      transform: `translate3d(0px, 0px, 0px)`
    }, // keyframe
    {
      transform: `translate3d(0px, ${200}px, 0px)`
    },
  ], {
    // keyframe options
    duration: 1000,
    iterations: "1",
  },
);
let animation = new Animation(animkeyFrames, document.timeline);

anim.addEventListener('animationstart', () => {
  console.log("STARTED");
})

animation.play();
#anim {
  top: 10px;
  left: 10px;
  width: 100px;
  height: 100px;
  background-color: black;
  position: absolute;
}
<div id="anim"></div>

Quero que "STARTED" seja registrado quando a animação for reproduzida, mas nada acontecer.

javascript
  • 1 respostas
  • 45 Views
Martin Hope
Thom McGrath
Asked: 2025-04-11 00:49:17 +0800 CST

Dividindo UInt64 em 2 valores UInt32

  • 8

Tenho um UInt64 armazenado em uma string. Para fins de argumentação, vamos usar o valor máximo, 18446744073709551615. Como o PHP não suporta UInt64, não posso converter isso em um número, caso contrário, bits serão perdidos.

Então minha abordagem inicial foi fazer as malas:

$number = "18446744073709551615";
$packed = pack('J', $number);
$value1 = unpack('N', substr($packed, 0, 4))[1];
$value2 = unpack('N', substr($packed, 4, 4))[1];
var_dump($packed); // 7fffffffffffffff

Então isso não está totalmente certo. Internamente, ele ainda foi convertido para um Int64.

Posso compactar com N para obter metade do valor, mas não consigo descobrir como obter a outra metade:

$number = "18446744073709551615";
$packed = pack('N', $number);
$value1 = ??;
$value2 = unpack('N', $packed)[1];

Pedir repetições com N* ou NN não ajuda. Meu cérebro quer deslocar o valor para a direita, mas, novamente, não consigo converter para um inteiro, então nada de operações bit a bit.

Sinto que estou esquecendo algo muito simples. Como obtenho a outra UInt32?

  • 1 respostas
  • 43 Views
Martin Hope
Thomas
Asked: 2025-04-10 21:19:18 +0800 CST

Como convencer o compilador de que meu `FnMut` assíncrono não é invocado em paralelo?

  • 8

Em uma caixa, tenho um wrapper de uso geral para arquivos temporários:

pub struct TempFile {
    // ...
}

Em outra caixa, tenho um wrapper de repetição assíncrona de uso geral:

pub async fn retry<F, R>(mut func: F) -> Result<(), String>
where
    F: FnMut() -> R,
    R: Future<Output = Result<(), String>>
{
    for _ in 0..5 {
        if func().await.is_ok() {
            return Ok(());
        }
    }
    Err("failed".to_owned())
}

Na terceira caixa, tenho uma função de download de uso geral que baixa para um arquivo temporário:

async fn download(output: &mut TempFile) -> Result<(), String> {
    // ...
}

Agora quero adicionar uma função de nova tentativa de download como esta:

async fn download_with_retry(output: &mut TempFile) -> Result<(), String> {
    retry(|| { download(output) }).await
}

Entretanto, isso não compila:

error: captured variable cannot escape `FnMut` closure body
  --> src/lib.rs:16:20
   |
15 |     async fn download_with_retry(output: &mut TempFile) -> Result<(), String> {
   |                                  ------ variable defined here
16 |         retry(|| { download(output) }).await
   |                -   ^^^^^^^^^------^
   |                |   |        |
   |                |   |        variable captured here
   |                |   returns an `async` block that contains a reference to a captured variable, which then escapes the closure body
   |                inferred to be a `FnMut` closure
   |
   = note: `FnMut` closures only have access to their captured variables while they are executing...
   = note: ...therefore, they cannot allow references to captured variables to escape

Entendo por que isso está acontecendo: embora a retryfunção sempre espere functerminar antes de invocá-la novamente, o compilador não consegue ver isso e tem que assumir que múltiplas invocações paralelas são possíveis, levando a múltiplos empréstimos mutáveis ​​simultâneos de output.

Sei que posso contornar isso passando Rc<RefCell<TempFile>>para download_with_retry, mas isso significa que ele vaza para a API pública dessa função sem nenhum bom motivo.

Existe outra solução? Idealmente, modificando apenas a implementação de retrye/ou download_with_retry, mantendo as assinaturas?

Link do playground

rust
  • 1 respostas
  • 55 Views
Martin Hope
vamsiampolu
Asked: 2025-04-10 20:04:14 +0800 CST

Decodifique uma string base64 e codifique-a como hexadecimal usando xxd

  • 8

Primeiro, pego uma string codificada em base64 e a decodifico:

local base64_str="OQbb8rXnj/DwvglW018uP/1tqldwiJMbjxBhX7ZqwTw="
echo "${base64_str}" | base64 --decode > foo.txt

O tamanho do arquivo binário é 32 bytes com base em:wc -c < foo.txt

Eu costumo xxdcodificar o valor no arquivo para o formato hexadecimal:

xxd -p ./foo.txt ./foo.hex.txt

O valor hexadecimal no arquivo foo.hex.txt é:

3906dbf2b5e78ff0f0be0956d35f2e3ffd6daa577088931b8f10615fb66a
c13c

O tamanho do arquivo hash codificado é de 66 bytes usandowc -c < foo.hex.txt

Gostaria de pegar a string base64 e convertê-la para hexadecimal de modo que ela permaneça uma string de 32 bytes que eu possa usar com o openssl para criptografar e descriptografar usando cifras aes-256.

local iv_hex=$(base64_to_hex "${iv}")
local key_hex=$(base64_to_hex "${key}")

openssl enc -aes-256-ctr -K "${key_hex}" -iv "${iv_hex}" -in "${input_file}" -out "${output_file}"
bash
  • 2 respostas
  • 111 Views
Martin Hope
Yat Fung
Asked: 2025-04-10 18:30:20 +0800 CST

Saída inconsistente com std::any_of

  • 8

Tenho duas versões da mesma função usando std::any_ofe std::find_ifpara verificar se intexiste em um vetor (retornado de g.getEdges()).

Entretanto, quando executo repetidamente o std::any_ofvalor de retorno é inconsistente, enquanto std::find_ifé.

Ambas as versões são as seguintes ( g.getEdges()retorna um intvetor, enquanto this->sé um int):

bool Search::marked(const int &v) {
    return std::any_of(begin(g.getEdges(v)), end(g.getEdges(v)), [this](const int &w) { return w == this->s; });
}
bool Search::marked(const int &v) {
    auto it = std::find_if(begin(g.getEdges(v)), end(g.getEdges(v)), [this](const auto &w) { return w == this->s; });
    return it != end(g.getEdges(v));
}

Em ambas as classes, adjo vetor está sendo iterado:

class Graph {
  public:
    Graph() : vertex(0), edges(0) {
      adj = std::make_unique<std::vector<std::vector<int>>>(0);
    }
    const std::vector<int> getEdges(int v) { return (*adj)[v]; }
  // ... rest of public
  private:
    std::shared_ptr<std::vector<std::vector<int>>> adj; // Shared for Search class
}

class Search {
  public:
    Search(Graph &g_, int s_) : g(g_), s(s_) {}
    int count();
    bool marked(const int &v);

  private:
    Graph &g;
    int s;
};

A função gtest que usei para verificar o código:

TEST(searchClassTest, HandlesPositiveInput) {
    // ... init myGraph ...
    Search mySearch(myGraph, 2);  // 2 is s!
    EXPECT_EQ(mySearch.count(), 2);
    EXPECT_EQ(mySearch.marked(1), true);
    EXPECT_EQ(mySearch.marked(3), true);
}

Por que estou obtendo resultados inconsistentes?

Link para o exemplo mínimo reproduzível: https://godbolt.org/z/9TnGq3Wbs

c++
  • 1 respostas
  • 125 Views
Martin Hope
arker
Asked: 2025-04-10 13:33:52 +0800 CST

Como posso modificar este C# (dentro do PowerShell) para que ele aguarde o término do processo filho que ele gera?

  • 8

Essa pessoa brilhante Jborean93 criou um script do PowerShell que por sua vez gera um .exe chamado "noGui.exe" aqui

Vou citar o código para que você não precise procurá-lo:

Add-Type -OutputType WindowsApplication -OutputAssembly NoGui.exe -TypeDefinition @'
using System;
using System.Runtime.InteropServices;
using System.Text;

namespace NoGui
{
    class Program
    {
        [StructLayout(LayoutKind.Sequential)]
        public struct PROCESS_INFORMATION
        {
            public IntPtr hProcess;
            public IntPtr hThread;
            public int dwProcessId;
            public int dwThreadId;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct STARTUPINFOW
        {
            public Int32 cb;
            public IntPtr lpReserved;
            public IntPtr lpDesktop;
            public IntPtr lpTitle;
            public Int32 dwX;
            public Int32 dwY;
            public Int32 dwXSize;
            public Int32 dwYSize;
            public Int32 dwXCountChars;
            public Int32 dwYCountChars;
            public Int32 dwFillAttribute;
            public Int32 dwFlags;
            public Int16 wShowWindow;
            public Int16 cbReserved2;
            public IntPtr lpReserved2;
            public IntPtr hStdInput;
            public IntPtr hStdOutput;
            public IntPtr hStdError;
        }

        [DllImport("Kernel32.dll", SetLastError = true)]
        public static extern bool CloseHandle(
            IntPtr hObject);

        [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern bool CreateProcessW(
            [MarshalAs(UnmanagedType.LPWStr)] string lpApplicationName,
            StringBuilder lpCommandLine,
            IntPtr lpProcessAttributes,
            IntPtr lpThreadAttributes,
            bool bInheritHandles,
            int dwCreationFlags,
            IntPtr lpEnvironment,
            [MarshalAs(UnmanagedType.LPWStr)] string lpCurrentDirectory,
            ref STARTUPINFOW lpStartupInfo,
            out PROCESS_INFORMATION lpProcessInformation);

        [DllImport("Kernel32.dll")]
        public static extern IntPtr GetCommandLineW();

        static void Main()
        {
            IntPtr cmdLinePtr = GetCommandLineW();
            string cmdLine = Marshal.PtrToStringUni(cmdLinePtr);
            int cmdLineArgsIdx = cmdLine.IndexOf(" -- ");
            StringBuilder newCmdLine = new StringBuilder(cmdLine.Substring(cmdLineArgsIdx + 4));

            STARTUPINFOW si = new STARTUPINFOW()
            {
                cb = Marshal.SizeOf<STARTUPINFOW>(),
                dwFlags = 0x00000001, // STARTF_USESHOWWINDOW
                wShowWindow = 0, // SW_HIDE
            };
            PROCESS_INFORMATION pi;
            bool res = CreateProcessW(
                null,
                newCmdLine,
                IntPtr.Zero,
                IntPtr.Zero,
                true,
                0x00000410,  // CREATE_NEW_CONSOLE | CREATE_UNICODE_ENVIRONMENT
                IntPtr.Zero,
                null,
                ref si,
                out pi
            );

            if (res)
            {
                CloseHandle(pi.hProcess);
                CloseHandle(pi.hThread);
            }
        }
    }
}
'@

Quando o NoGui.exe é executado, ele permite que (no meu caso, o PowerShell, mas pode ser qualquer processo) seja executado sem nenhuma janela/shell/prompts/qualquer coisa aparecendo na tela (e funciona).

É quase exatamente o que eu preciso. Mas, pelo que posso perceber, ele não espera que o processo que você solicitou seja encerrado antes de ser encerrado.

Preciso disso porque se eu for usar isso no Microsoft Intune para executar um script do PowerShell, não sei se o Intune detectaria o processo filho do PowerShell e esperaria sua conclusão.

Imagine por um momento que o script do PowerShell gerado pelo NoGui.exe pode levar muito tempo para ser concluído, mas o Intune pensa "ah, bem, o noGui.exe foi concluído, então a instalação deve ser feita". Mas não é o caso.

Então como podemos modificá-lo para:

  1. ele espera que o processo filho termine antes de terminar a si mesmo.

  2. Pontos adicionais, eu acho, se conseguirmos obter o código de saída para retornar ao processo pai e gerar a saída lá. O script do PowerShell explodiu por algum motivo? Tudo bem, o Intune recebeu o código de saída do Nogui.exe, então sabemos o que aconteceu.

Estou ciente de que existem wrappers do VBScript que ocultam a execução do PowerShell, mas não quero usá-los, pois o VBScript será desativado em algum momento no futuro.

c#
  • 2 respostas
  • 168 Views
Martin Hope
B Reed
Asked: 2025-04-10 03:04:56 +0800 CST

Envelope DocuSign distinguindo entre tipos numéricos e numéricos no modelo

  • 8

Tenho um modelo que estou passando com sucesso TextTabs e CheckboxTabs; no entanto, meus NumberTabs não estão sendo exibidos. Estou lendo sobre Tabulações Numéricas vs. Tabulações Numéricas. Verifiquei novamente e parece que o modelo está configurado com Number. Consigo ver o valor antes de enviar para o DocuSign. Mas quando o envelope é aberto, ele não está lá.

Devo usar Numérico? Alguma outra ideia do que está faltando?

Atualização: Testei Numérico e funcionou. Nova pergunta: Como posso saber se era Numérico no modelo?

   Number n = new Number
   {
        TabLabel = kvp.Key,// name of DS field, e.g. amount
        Value = kvp.Value //e.g. 25.53
   };

   List<Number>? numTabs = [];
   numTabs.Add(n);

   tabs ??= new Tabs();
   tabs.NumberTabs = numTabs ;

   //continue to populate envelope/signer information in envelope definition

Esta é a definição do meu campo de modelo DocuSign, por exemplo, valor:

captura de tela

docusignapi
  • 1 respostas
  • 21 Views
Martin Hope
aSteve
Asked: 2025-04-10 02:30:58 +0800 CST

Chamando um comando legado com valores de uma matriz

  • 8

Tenho um comando legado fooque aceita arbitrariamente muitos parâmetros de entrada (com nomes idênticos), cada um prefixado por --input. A partir de cmd.exe, posso executar:

C:\> foo --input "first" --input "second" --input "third" file.dat

e três valores de entrada são usados ​​para processar file.dat.

Estou tentando chamar fooum script do Powershell no qual posso calcular uma matriz que tem valores/tipos que podem ser equivalentes a esses valores constantes.

$my_args = @(
  "first",
  "second",
  "third"
)

Quero poder chamar foo para que os argumentos --include <value>sejam repetidos para cada item em $my_args. Eu poderia usar:

foo --input $my_args[0] --input $my_args[1] --input $my_args[2] filename.dat

Mas isso não funcionaria se $my_argsnão contivesse exatamente 3 itens. Qual seria uma expressão do PowerShell interessante para fazer isso?

powershell
  • 1 respostas
  • 41 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve