Ir para conteúdo
Fórum Script Brasil

cameraman

Membros
  • Total de itens

    23
  • Registro em

  • Última visita

Posts postados por cameraman

  1. Se eu entendi sua questão direito acredito que seja algo assim:

    @echo off
    
    for /f "delims=" %%a in ('dir /b /a-d /s /o-d "C:\Users\we\Desktop\Ler nok na 30\*"') do (
                                                                                              set Arquivo=%%a
                                                                                              goto :Next
                                                                                             )
    :Next
    
    SetLocal EnableDelayedExpansion
    
    :: Informe a quantidade de linhas que você quer:
    set Linhas=2
    
    :: Informe um termo D pesquisado:
    set Termo=N
    
    ::Informe o arquivo onde vai ser armazenado o resultado
    set Resultado=Ocorrência de NOK.txt
    
    ::Informe Informe o Limite da quantidade do termo pesquisado para receber uma mensagem
    set LimiteTermo=1
    
    for /f %%a in ('type "%Arquivo%" ^|find /i /v /c ""') do set LinhasTotal=%%a
    
    set /a LinhasSubtraidas=%LinhasTotal% - %Linhas%
    
    more +%LinhasSubtraidas% "%Arquivo%">"%Resultado%"
    
    for /f "usebackq delims=" %%a in ("%Resultado%") do (
    set Entrada=%%a
    call :ProcuraTermo
    )
    chcp 1252 > nul
    IF %QuantidadeTermo% GTR %LimiteTermo%  MSG * Atenção^^! VERIFICAR SE ALGUMA ESTAÇÃO ESTÁ DESATIVADA"
    echo.
     
    
    :ProcuraTermo
    set "Tempo=!Entrada:~%Contador%,1!"
    IF "%Tempo%"=="%Termo%" set /a QuantidadeTermo+=1
    IF /i not Defined Tempo (
                             set Contador=0
                             goto :EOF
                            ) Else (
                                    set /a Contador+=1& goto :ProcuraTermo)
    
    :EOF

     

  2. Tá no exemplo "Indicador de Presença (374-374)" se ele estiver vazio " " (só com espaço) isso não deveria gerar um erro sendo que ele deveria ser 1,2,3,4 ou 9?

    Porque minha lógica para detectar erro é a seguinte:
     

    Para campos de texto [AAA] = Se tiver apenas espaços = Erro
    
    Para campos de número [###] = Se tiver algo que não  seja número como Letras ou Espaço = Erro
    
    Para compos de número + Ponto [#.##] = Se tiver algo alem de números ou pontos e se o ponto tiver no local errado = Erro

     

  3. Entendi mais o que eu queria saber e se tem um limite de comprimento mínimo para disparar um erro. Por exemplo se descrição do cliente tiver apenas uma letra e o restante for tudo espaço: "W                                  " deve ser disparado algum erro caso esse campo não tiver no mínimo 5 letras que não forem espaço....ou algo assim.

  4. Na verdade ele só verifica  "Número de Pré-Venda", "Código do Cliente", "Data de Emissão", "Hora de Emissão", "Código de Funcionário" e "Valor da Pré-Venda/Pedido" para Bloco 01 e "Tipo de Registro" para todos os blocos....."Protótipo"..

    O campo "Campo Reservado" no bloco 01 Posição 118 - 132 precisa ser verificado ou não da nenhum problema se ele não for 000000000000.00

  5. Veja se minha lógica está certa:

    Bloco 01: 463 Characteres
    Bloco 02: 608 Characteres
    Bloco 03: 93  Characteres

    Bloco 01: [Falha porque tem 375 characteres e não 463]
    012013001970000646753434491305202015170001000000000142.80Pré-venda 201300197 da Sede-Aluno 57-135156 000000000341.97 000000000000000MARCONE ANCHIETA DA NOBREGA CANDEIA     rua cinquenta e sete casa vinte e cinco altosLuciano CavalcaFortaleza           CE000021Complemento end0000010201300197ALBERTO MOREIRA088989451303F000000000000698850280105823044006074377011111111100000
    
    Bloco 02: [Falha porque tem 602 characteres e não 608]
    0204000001900000000000001VENT. 40CM MESA FD40/VE40 ARNO               VENT.40CM MESA FD40 00000000001.000000000000142.80000000000000.00T17ARNO     S0040000019                                                                                                                                                                                                                                                                                                                     0000000000                       00000000 0000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000        
    
    Bloco 03: [Ok 93 Characteres]
    03003040000019000000000000.00000000000142.8004000000000000000000000000142.800000120040000019
    
    Bloco 02: [Falha porque tem 139 characteres e não 608]
    0204000001900000000000001VENT. 40CM MESA FD40/VE40 ARNO               VENT.40CM MESA FD40 00000000001.000000000000142.80000000000000.00T17

     

  6. Acredito que seja possível sim amigo, poderia providenciar mais registros desses que você postou ai para testar? Essa parte "ver se as informações estão no lugar correto seria somar todos os campos e se a linha tiver o número certo de caracteres assumir que os campos estão posicionados de forma certa?

    2 + 9 + 14 + 45 + 20 + 15 + 15 + 15 + 3 = 138

  7. Olá amigo, vi que seu post é de 2019. Já resolveu o problema? Ainda precisa de ajuda?

    Para redirecionar informações para um arquivo de text basta usar sinal de maior do que após o comando:

    echo Tamanho total da memoria Fisica:>>"%userprofile%\desktop\systeminfo.txt"
    echo.>>"%userprofile%\desktop\systeminfo.txt"
    wmic memphysical get Maxcapacity>>"%userprofile%\desktop\systeminfo.txt"

     

  8. Ola Isa para criar uma pasta na área de trabalho chamada Isa:

    md "%userprofile%\desktop\Isa"

    Para criar um arquivo txt com nome de "nome.txt" dentro da pasta Isa com o texto "Meu nome e Isa":

    echo Meu nome e Isa>"%userprofile%\desktop\Isa\nome.txt"

     

×
×
  • Criar Novo...