Jump to content
Fórum Script Brasil
  • 0

Vbscript OpenTextFile - Split - Len


rgaspar

Question

Viva,

Necessitava de uma pequena ajuda para um pequeno problema que me tem dado umas pequenas dores de cabeça. Então é assim.

Estou a correr um script que me pesquisa todos os ficheiros mp3 que se encontram em C:\ e grava o log num txt. Até aqui tudo bem. O que necessito é de separar os files para uma váriavel e os bytes para outra.

O problema aqui é que o log que é gerado não tem os espaços correctos entre a informação. Passo a explicar. O espaçamento da esquerda até ao numero de ficheiros vai diminuindo quando o numero sobe. O numero de bytes se for de apenas 4gb o espaçamento entre a palavra File(s) até ao numero é de 2 se o numero de bytes aumentar para 14gb o espaçamento passa para 1.

Total Files Listed:

< 11 espaços >11305<1>File(s)<2>4.459.988.139<1>bytes

< 12 espaços >1305<1>File(s)<1>14.459.988.139<1>bytes

< 13 espaços >305<1>File(s)<1>114.459.988.139<1>bytes

Script para criar o log com a quantiadade de mp3 que tenho no meu pc:

Set objShell = CreateObject("Wscript.Shell")

objShell.Run "%comspec% /c c: & cd\ & dir /s /w *.mp3 >> C:\Dados\MusicPC.txt", 1, True

O script que estou a executar para retirar a informação que necessito é o seguinte:

Dim objFSO, objShell, objFile

Dim strFile, strLine, strTotalFiles, Flag

Const ForReading = 1

Const ForWriting = 2

Const ForAppending = 8

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objShell = CreateObject("Wscript.Shell")

Set objFile = objFSO.OpenTextFile("C:\Dados\MusicPc.txt", 1)

Do Until objFile.AtEndOfStream

strLine = objFile.ReadLine

If Instr(strLine, "Total Files Listed:") Then

Flag = True

End If

If Flag = True Then

strTotalFiles = Trim(strLine)

strTotalFiles = Trim(objFile.ReadLine)

wscript.echo strTotalFiles

Flag = False

End If

Loop

objFile.Close

Output: 11305 File(s) 4.459.988.139 bytes

Como é que faço para ter apenas numa variavel o numero de files e numa outra variavel o numero de bytes. Exemplo

strVarFiles = 11305

strVarBytes = 4.459.988.139 ou 14.459.988.139 ou 114.459.988.139

Obrigado pela colaboração

Ricardo Gaspar

:unsure:

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...