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
Ross
Asked: 2025-04-21 14:10:44 +0800 CST

Comparação rápida de strings ASCII Delphi ASM ignorando opcionalmente o primeiro caractere

  • 7

Espero que alguém com habilidades em assembler possa criar uma função Delphi para mim que ignore o primeiro caractere de qualquer string se ela começar com Chr(127). Isso é usado em uma comparação de classificação, que é extremamente lenta com 30.000 itens, quando é preciso copiar o texto do segundo caractere antes da comparação. Esta é a função original.

function CompareText(const S1, S2: string): Integer; assembler;
asm
        PUSH    ESI
        PUSH    EDI
        PUSH    EBX
        MOV     ESI,EAX
        MOV     EDI,EDX
        OR      EAX,EAX
        JE      @@0
        MOV     EAX,[EAX-4]
@@0:    OR      EDX,EDX
        JE      @@1
        MOV     EDX,[EDX-4]
@@1:    MOV     ECX,EAX
        CMP     ECX,EDX
        JBE     @@2
        MOV     ECX,EDX
@@2:    CMP     ECX,ECX
@@3:    REPE    CMPSB
        JE      @@6
        MOV     BL,BYTE PTR [ESI-1]
        CMP     BL,'a'
        JB      @@4
        CMP     BL,'z'
        JA      @@4
        SUB     BL,20H
@@4:    MOV     BH,BYTE PTR [EDI-1]
        CMP     BH,'a'
        JB      @@5
        CMP     BH,'z'
        JA      @@5
        SUB     BH,20H
@@5:    CMP     BL,BH
        JE      @@3
        MOVZX   EAX,BL
        MOVZX   EDX,BH
@@6:    SUB     EAX,EDX
        POP     EBX
        POP     EDI
        POP     ESI
end;

Muito obrigado se você puder ajudar.

delphi
  • 1 respostas
  • 174 Views
Martin Hope
Ret 2
Asked: 2025-04-21 13:58:53 +0800 CST

Controles deslizantes e contêineres para mover o primeiro contêiner para a esquerda e para a direita e o segundo contêiner será ajustado

  • 5

Como posso criar um layout dinâmico em que dois contêineres ajustam suas larguras com base no valor de um controle deslizante? A largura do primeiro contêiner deve ser personalizável, variando entre proporções como 20% e 50%, enquanto o segundo contêiner deve se ajustar dinamicamente para preencher o espaço restante, mas nunca deve ficar abaixo de 50%. Quero que essa configuração garanta ajustes suaves e proporcionais, mantendo as restrições de largura para ambos os contêineres. Como posso configurar os controles deslizantes e as propriedades do contêiner para obter essa funcionalidade?

Aplicativo > OnStart

Set(ratio1, 0.5); // Valor inicial para Container1 (largura de 50%)

Set(ratio2, 0.5); // Valor inicial para Container2 (largura de 50%)

Largura da propriedade do contêiner esquerdo (Container1) : Parent.Width * ratio1

Largura da propriedade do contêiner direito (Container2) : Parent.Width * ratio2

Propriedades do SliderRatio1 :

  • Mín: 0,3
  • Máx: 0,5
  • Padrão: 0,5

Propriedades do SliderRatio2 :

  • Mín: 0
  • Máx: 1
  • Padrão: 1 - SliderRatio1.Value

Em mudança:

Set(ratio1, SliderRatio1.Value); // Atualiza a largura do Container1

Set(ratio2, 1 - ratio1); // Atualiza a largura do Container2

insira a descrição da imagem aqui

powerapps-canvas
  • 1 respostas
  • 26 Views
Martin Hope
Sun Bear
Asked: 2025-04-21 13:15:22 +0800 CST

Aviso ao usuário: FigureCanvasAgg não é interativo e, portanto, não pode ser exibido

  • 6

Estou tentando mostrar uma figura matplotlib.pyplot no Python 3.10, mas não consigo. Estou ciente dessa questão e tentei as respostas, mas ainda não obtive sucesso. A distribuição padrão do sistema operacional é o Ubuntu 24.04, usando o Python 3.12 como padrão.

Veja como configurei o projeto Python 3.10 venve numpyinstalei matplotlib:

$ uv init test_py310 --python 3.10 
Initialized project `test-py310` at `/home/user/test_py310`
$ cd test_py310/
$ uv add numpy matplotlib
Using CPython 3.10.16
Creating virtual environment at: .venv
Resolved 12 packages in 136ms
Prepared 1 package in 1.96s
Installed 11 packages in 43ms
 + contourpy==1.3.2
 + cycler==0.12.1
 + fonttools==4.57.0
 + kiwisolver==1.4.8
 + matplotlib==3.10.1
 + numpy==2.2.5
 + packaging==25.0
 + pillow==11.2.1
 + pyparsing==3.2.3
 + python-dateutil==2.9.0.post0
 + six==1.17.0

test_matplotlib.py:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y, label='sin(x)', color='blue', linestyle='--')
plt.show()

Erro:

/home/user/Coding/test_py310/.venv/bin/python /home/user/test_py310/test_matplotlib,py 
/home/user/test_py310/test_matplotlib,py:7: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
  plt.show()

Em seguida, tentei instalar PyQt5conforme compartilhado nesta resposta , mas ainda encontrei erro.

$ uv add pyqt5
Resolved 15 packages in 89ms
Installed 3 packages in 45ms
 + pyqt5==5.15.11
 + pyqt5-qt5==5.15.16
 + pyqt5-sip==12.17.0

Executando o mesmo script python

$ /home/user/test_py310/.venv/bin/python /home/user/test_py310/test_matplotlib,py
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

Aborted (core dumped)

Mudando import matplotlib.pyplot as pltpara:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

Deu esse erro:

$ /home/user/test_py310/.venv/bin/python /home/user/test_py310/test_matplotlib,py
AttributeError: module '_tkinter' has no attribute '__file__'. Did you mean: '__name__'?

The above exception was the direct cause of the following exception:

ImportError: failed to load tkinter functions

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/test_py310/test_matplotlib,py", line 9, in <module>
    plt.plot(x, y, label='sin(x)', color='blue', linestyle='--')
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 3827, in plot
    return gca().plot(
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 2774, in gca
    return gcf().gca()
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 1108, in gcf
    return figure()
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 1042, in figure
    manager = new_figure_manager(
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 551, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 528, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 369, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 425, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/backends/registry.py", line 317, in load_backend_module
    return importlib.import_module(module_name)
  File "/home/user/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
    from . import _backend_tk
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/backends/_backend_tk.py", line 25, in <module>
    from . import _tkagg
ImportError: initialization failed

Usando

import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt

deu

$ /home/user/test_py310/.venv/bin/python /home/user/test_py310/test_matplotlib,py
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

Aborted (core dumped)

Também removi o pyqt5 e adicionei o pyqt6, e usei, matplotlib.use('Qt6Agg')mas recebi este erro:

$ /home/user/test_py310/.venv/bin/python /home/user/test_py310/test_matplotlib,py
Traceback (most recent call last):
  File "/home/user/test_py310/test_matplotlib,py", line 4, in <module>
    matplotlib.use('Qt6Agg')
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/__init__.py", line 1265, in use
    name = rcsetup.validate_backend(backend)
  File "/home/user/test_py310/.venv/lib/python3.10/site-packages/matplotlib/rcsetup.py", line 278, in validate_backend
    raise ValueError(msg)
ValueError: 'Qt6Agg' is not a valid value for backend; supported values are ['gtk3agg', 'gtk3cairo', 'gtk4agg', 'gtk4cairo', 'macosx', 'nbagg', 'notebook', 'qtagg', 'qtcairo', 'qt5agg', 'qt5cairo', 'tkagg', 'tkcairo', 'webagg', 'wx', 'wxagg', 'wxcairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template']

O que devo fazer para plotar uma figura matplotlib.pyplot em um ambiente virtual instalado com o Python 3.10? Só para acrescentar, consigo plotar uma figura matplotlib.pyplot em um ambiente virtual separado usando o Python 3.12.

python
  • 1 respostas
  • 78 Views
Martin Hope
OutstandingBill
Asked: 2025-04-21 12:13:05 +0800 CST

O que determina o nome da porta de upload?

  • 5

Por que estou vendo a designação da porta serial mudar? Isso importa? É esperado?

Clico em "Selecionar porta para usar" no rodapé do VS Code:

barra de ferramentas mostrando o seletor de porta serial

Isso abre um menu suspenso na parte superior da janela do VSCode. Às vezes, o menu suspenso se parece com isto:

lista suspensa mostrando USB1 - Silicon Labs

Em outras ocasiões (na verdade, na maioria das vezes), fica assim:

lista suspensa mostrando ESP32

Ele alterna entre os dois últimos simplesmente clicando em "Selecionar Porta para Usar", sem nenhuma alteração na configuração física. Então:

  • Clique: o menu suspenso abre mostrando "Silicon Labs"
  • Clique: o menu suspenso fecha
  • Clique: o menu suspenso abre novamente mostrando "ESP32"

Uma vez, usando um cabo USB diferente, vi isso:

lista suspensa mostrando USB0 - Silicon Labs

Aqui está o meu platformio.ini:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps = bodmer/TFT_eSPI@^2.5.33
lib_ldf_mode = chain
build_flags =
  -Os
  -DUSER_SETUP_LOADED=1
  -DST7789_DRIVER=1
  -DCGRAM_OFFSET
  -DTFT_CS=5
  -DTFT_DC=23
  -DTFT_RST=18
  -DTFT_MOSI=15
  -DTFT_SCLK=13
  -DTFT_BL=4
  -DTFT_BACKLIGHT_ON=HIGH
  -DLOAD_GLCD=1
  -DLOAD_FONT2=1
  -DLOAD_FONT4=1
  -DLOAD_FONT6=1
  -DLOAD_FONT7=1
  -DLOAD_FONT8=1
  -DLOAD_GFXFF=1
  -DSMOOTH_FONT=1
  -DSPI_FREQUENCY=40000000
linux
  • 1 respostas
  • 30 Views
Martin Hope
Maurício Schwartsman
Asked: 2025-04-21 12:05:13 +0800 CST

Como renderizar itens do slicer do Power BI com Python Selenium

  • 6

Gostaria de extrair dados da segunda página deste painel do Power BI . Para obter os dados de um mês específico, preciso definir a data em um segmentador:

Fatiador de tâmaras

No entanto, quando expando um elemento de ano para exibir os elementos do mês, alguns ficam fora de vista e, portanto, não são renderizados. Portanto, preciso rolar a tela para baixo no segmentador. No entanto, ainda não encontrei um método que funcione.

Antes de dar mais detalhes, é assim que chego à página desejada e expando o segmentador:

# Selenium  resources
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.common.by import By

# Driver service
driver_file = r"d:\dev\selenium\msedgedriver.exe" # or whatever driver is available

service = Service(driver_file)

# Browser options
options = Options()
options.add_experimental_option("detach", True)
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument("--inprivate")

# Open browser
driver = webdriver.Edge(service = service, options = options)

# Get URL
url = "https://app.powerbi.com/view?r=eyJrIjoiZWIzNDg3YzUtMGFlMC00MzdmLTgzOWQtZThkOWExNTU2NjBlIiwidCI6IjQ0OTlmNGZmLTI0YTYtNGI0Mi1iN2VmLTEyNGFmY2FkYzkxMyJ9"

driver.get(url)

# Proceed to next page
driver.find_element(By.XPATH, '//button[@aria-label="Próxima Página"]/i').click()

# Open date slicer
driver.find_element(By.XPATH, '//div[@class="slicer-dropdown-menu"]/i')

# Expand month options for a year, e.g. 2024
(driver \
.find_element(By.XPATH, '//div[@class="slicerItemContainer" and @title="2024"]/div[@class="expandButton"]') \
.click())

E assim:

Fatiador expandido

Mas, do jeito que está, não posso selecionar nenhum mês além de março.

O fatiador não se move quando executo um trecho de JavaScript:

slicer_container = driver.find_element(By.XPATH, '//div[@class="slicerContainer"]')
driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", slicer_container)

Tentar rolar para baixo com as teclas gera uma ElementNotInteractableException:

from selenium.webdriver.common.keys import Keys
scroll_container = driver.find_element(By.CLASS_NAME, "scroll-bar")
scroll_container.send_keys(Keys.DOWN)

ElementNotInteractableException: Mensagem: elemento não interativo (Informações da sessão: MicrosoftEdge=135.0.3179.85)

ActionChains produzem o mesmo erro:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

actions = ActionChains(driver)
actions.move_to_element(scroll_bar).click().send_keys(Keys.PAGE_DOWN).perform()

ElementNotInteractableException: Mensagem: elemento não interativo (Informações da sessão: MicrosoftEdge=135.0.3179.85)

E, por fim, tentei usar uma transformação de estilo, mas ela só consegue rolar o elemento visualmente e não aciona a renderização dos próximos itens do segmentador.

visible_group = driver.find_element(By.CLASS_NAME, 'visibleGroup')
driver.execute_script(f'arguments[0].style.transform = "translateY(-60px)";', visible_group)

insira a descrição da imagem aqui

No geral, não tenho a mínima ideia do que fazer. Alguma ideia? Sinta-se à vontade para pedir mais detalhes.

python
  • 1 respostas
  • 56 Views
Martin Hope
Alexander L. Belikoff
Asked: 2025-04-21 11:24:55 +0800 CST

Flutter UI: Texto + Ícone centralizado com gerenciamento de estouro

  • 6

Gostaria de ajuda com a implementação idiomática deste recurso de interface. Suponha que eu queira uma combinação de um IconButtone Text(por exemplo, um nome precedido por um asterisco). Gostaria de posicioná-lo em um Row(que, por sua vez, está em um contêiner, como Column). No entanto, quero garantir que os seguintes requisitos sejam atendidos (veja o esboço em anexo):

  • O ícone está bem na frente do texto (ou seja, sem espaçamento extra entre eles)
  • Quando o texto é curto o suficiente, esse par de widgets é centralizado na linha.
  • Se o texto for muito longo, ele será recortado corretamente (por exemplo, com reticências) sem transbordar.

insira a descrição da imagem aqui

Até agora, não tive muito sucesso em fazer isso funcionar. Se eu colocar dois Spacerwidgets nas laterais, o texto resultante é recortado de forma muito agressiva. Se eu o envolvo em Expanded, recebo exceções flexíveis. Considerando que é aparentemente uma forma bastante popular de apresentar texto, qual é a maneira do Flutter de organizá-lo?

flutter
  • 2 respostas
  • 36 Views
Martin Hope
Teoom07
Asked: 2025-04-21 10:38:14 +0800 CST

Como um elemento filho pode substituir o plano de fundo do seu elemento pai?

  • 6

Há letras brancas em um fundo preto. Pode haver espaços retangulares entre as palavras que exibem o vídeo. Como posso obter esse comportamento? Tentei usar o mix-blende-mode, mas o elemento retângulo sempre desaparece no fundo pai. Tentei com pseudoelementos e atribuindo diferentes índices z/posições aos elementos, mas não consegui.

Aqui está um exemplo de como deveria ser: https://msttestaddfiles.netlify.app/part_2.mp4

E o que eu fiz abaixo

* {
        box-sizing: border-box;
    }
    html, body {
        block-size: 100%;
    }


    body {
        margin: 0;
    }

    .content {
        position: relative;
        width: 100%;
        height: 100%;
    }


    .text {
        font-size: 10vi;

    }



    .text-block {
        position: relative;
        z-index: 2;
        background-color: black;
        color: white;
        padding: 30px;
        width: 100%;
        height: 100%;
    }



    .rect {
        display: inline-block;
        width: 150px;
        height: 5vi;
        margin: 0 10px;
        position: relative;
        z-index: 1;

    }




    .video {
        position: absolute;
        inset: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
<div class="content">
            <div class="text-block">
                <span class="text">We're here</span>
                <span class="rect"></span>
                <span class="text"> to make healthy </span>
                <span class="rect"></span>
                <span class="text">livin effortless,</span>
                <span class="text"> so you can</span>
                <span class="rect"></span>
                <span class="text">live longer</span>
                <span class="text">and happier</span>
                <span class="rect"></span>
            </div>
            <video class="video" autoplay loop muted playsinline>
                <source src="https://msttestaddfiles.netlify.app/video.mp4" type="video/mp4" />
            </video>
          
        </div>

html
  • 2 respostas
  • 100 Views
Martin Hope
user26777519
Asked: 2025-04-21 10:05:31 +0800 CST

Melhore um grande número de chamadas paralelas ao serviço blob devido ao Promise.all

  • 5

Tentei implementar o upload de imagens usando o recurso BlobStorage do Azure. Tenho um método no meu frontend Next.js que chama o backend para criar URLs de blob exclusivas para as imagens adicionadas pelo usuário após a edição do formulário. O problema é que usei Promise.all, que bombardeou meu backend com solicitações paralelas, resultando na execução destas duas linhas mais de 20 vezes:

var blobContainerClient = _blobServiceClient.GetBlobContainerClient(_imagesContainerName);
var blobClient = blobContainerClient.GetBlobClient(uniqueFileName); 

Cheguei à conclusão de que este é o problema principal. Depois de chamar este método, não só meu VS travou, como mesmo após reiniciá-lo, não consigo acessar algumas páginas do meu aplicativo devido a inúmeras solicitações pendentes.

Estou realmente confuso com o problema e como corrigi-lo. Tentei verificar o BlobStorage no Azure em busca de conexões abertas, pensando que, mesmo depois de reiniciar o aplicativo, elas ainda persistiam de alguma forma. Não encontrei nada aqui. Verifiquei as métricas do backend implantado e encontrei apenas um pico enorme no uso da CPU e mais de 200 solicitações (a maioria provavelmente sendo uploads de imagens). Tenho quase certeza de que esgotei meu pool de conexões, mas não entendo por que meu programa consome tantos recursos mesmo após a reinicialização, e metade das chamadas ao banco de dados demoram uma eternidade para serem concluídas.

const processedChapters = await Promise.all(
        chapters.map(async (chapter) => {
          const search_language = getSearchLanguage(diplomaSettings.languages);

          if (chapter.images && chapter.images.length > 0) {
            const uploadedImages = await Promise.all(
              chapter.images.map(async (imageDataUrl, index) => {

                if (
                  typeof imageDataUrl === "string" &&
                  imageDataUrl.startsWith("data:")
                ) {
                  const imageUrl = await uploadImageToBlobStorage(
                    imageDataUrl,
                    chapter.id,
                    index
                  );
                  return imageUrl;
                }

                return imageDataUrl;
              })
            );

            return {
              ...chapter,
              search_language,
              images: uploadedImages.filter((url) => url !== null),
            };
          }


          return {
            ...chapter,
            search_language,
          };
        })
      );

Aqui está o código de backend que é chamado do frontend:

    public string GetUploadUrl(string fileName)
    {
        var uniqueFileName = $"{Path.GetFileNameWithoutExtension(fileName)}-{Guid.NewGuid()}{Path.GetExtension(fileName)}";

        var blobContainerClient = _blobServiceClient.GetBlobContainerClient(_imagesContainerName);
        var blobClient = blobContainerClient.GetBlobClient(uniqueFileName);

        var sasBuilder = new BlobSasBuilder
        {
            BlobContainerName = _imagesContainerName,
            BlobName = uniqueFileName,
            Resource = "b",
            ExpiresOn = DateTime.UtcNow.AddMinutes(15)
        };

        sasBuilder.SetPermissions(BlobSasPermissions.Write | BlobSasPermissions.Create | BlobSasPermissions.Read);

        var storageSharedKeyCredential = new StorageSharedKeyCredential(_accountName, _accountKey);
        var sasQueryParameters = sasBuilder.ToSasQueryParameters(storageSharedKeyCredential);
        var sasUrl = $"{blobClient.Uri}?{sasQueryParameters}";

        return sasUrl;
    }
  • 1 respostas
  • 58 Views
Martin Hope
kuninox
Asked: 2025-04-21 10:04:30 +0800 CST

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

  • 14

Há muitas linhas em um arquivo, como as seguintes:

000100667 ===> 000102833
005843000 ===> 005844000
011248375 ===> 011251958

Gostaria de inserir separadores específicos nos números como este:

00:01:00,667 ===> 00:01:02,833
00:58:43,000 ===> 00:58:44,000
01:12:48,375 ===> 01:12:51,958

No momento estou tentando (sucesso apenas na primeira parte):

echo 000100667 | gawk '{printf "%s:%s:%s,%s\n", $1, $2, $3, $4}' FIELDWIDTHS="2 2 2 3"

unix
  • 6 respostas
  • 1195 Views
Martin Hope
p spectrum
Asked: 2025-04-21 08:59:54 +0800 CST

Como posso executar um comando automaticamente imediatamente após o git add?

  • 6

Estou trabalhando em um projeto paralelo para melhorar minha mensagem de commit do git e tornar o processo mais rápido, mas não consigo descobrir como acionar os scripts depois do git add sem fazer isso manualmente.

Este é o fluxo que eu quero:

  1. Eu executo o git add.
  2. Meu script entra em ação imediatamente. Ele busca o diff preparado.
  3. A IA gera uma mensagem de confirmação
  4. Ele pede confirmação
  5. Se confirmado, ele se compromete.

Tentei pesquisar ganchos como pre-commit, mas eles parecem rodar antes de git commit, não de git add. O ideal seria executar o gerador de mensagens logo depois de executar git add, possivelmente por meio de um alias do Git ou de uma CLI personalizada.

python
  • 1 respostas
  • 104 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