Jump to content
Roni

Abrir arquivo com somente parte do nome

Recommended Posts

Bem provavel que exista uma forma fácil de ser feito isso, porém procurei no help do autoit e não consegui achar nada parecido.

 

Gostaria de abrir um arquivo pela função FileOpen, porém gostaria que para isso ele identificasse somente os 11 primeiros caracteres do nome do arquivo, ignorando o restante. Pode ser feito? Não achei nada.

Share this post


Link to post
Share on other sites

Sabendo onde ele está vc pode usar o _FileListToArray() para listar todos arquivos e depois o StringInStr() para procurar o que vc quer encontrar nestas 11 letras!

  • Like 1

Share this post


Link to post
Share on other sites

Certo Belini. O problema é que não consigo abrir o arquivo usando o FileOpen. Desculpe minha falta de conhecimento. To aprendendo ainda. :blush:

Share this post


Link to post
Share on other sites

Qual extensão do arquivo?

 

é um ".txt". Quando baixo o arquivo ele vem assim Extrato(2).txt, Extrato(3).txt... gostaria que ele levasse em consideração somente a palavra Extrato, para abrir o arquivo.

Share this post


Link to post
Share on other sites

@Roni, não entendi ao certo o que tu quer fazer.

 

- Tu quer abrir o arquivo "Extrato.txt" apenas? Pois, "Extrato.txt, Extrato(2).txt, Extrato(3).txt" ... são arquivos distintos.

- O nome do arquivo que tu quer abrir é fixo? No caso, exatamente assim "Extrato.txt" ?

 

Geralmente arquivos baixados no mesmo diretório com o mesmo nome são renomeados e recebem uma numeração (entre parênteses) no final do arquivo para evitar serem substituídos.

O arquivo mais antigo é o de menor numeração (ou sem ela) e o mais recente é o de maior numeração no final.

 

- Sendo assim, tu quer acessar a versão mais antiga ("Extrato.txt") ou a mais nova ("Extrato(3).txt") ?

Se tu retirar os números no final do arquivo, tu vai estar abrindo o mais antigo.

Edited by Frezan

Share this post


Link to post
Share on other sites

Bom, dia... tô sem cabeça para pensar em código, então vou escrever meia boca mesmo, kkkk....

 

Pelo que eu entendi vc quer algo mais ou menos assim

Local $aFiles = ListaArquivos(); Armazena em um array uma lista dos arquivos iniciando com a palavra extrato.

Local $hFiles[Ubound($aFiles) -1]

For $i = 0 to Ubound($aFiles) -1
  $hFiles[$i] = FileOpen($aFiles[$i])

  ;CÓDIGO.
  ;CÓDIGO.
  ;CÓDIGO.
 
  FileClose($hFiles[$i])
Next
Att,

Antony Gabarron

Edited by antony-ag

Share this post


Link to post
Share on other sites

@Roni, não entendi ao certo o que tu quer fazer.

 

- Tu quer abrir o arquivo "Extrato.txt" apenas? Pois, "Extrato.txt, Extrato(2).txt, Extrato(3).txt" ... são arquivos distintos.

- O nome do arquivo que tu quer abrir é fixo? No caso, exatamente assim "Extrato.txt" ?

 

Geralmente arquivos baixados no mesmo diretório com o mesmo nome são renomeados e recebem uma numeração (entre parênteses) no final do arquivo para evitar serem substituídos.

O arquivo mais antigo é o de menor numeração (ou sem ela) e o mais recente é o de maior numeração no final.

 

- Sendo assim, tu quer acessar a versão mais antiga ("Extrato.txt") ou a mais nova ("Extrato(3).txt") ?

Se tu retirar os números no final do arquivo, tu vai estar abrindo o mais antigo.

Na verdade eu quero que ele abra qualquer arquivo txt que comece com a palavra Extrato, tipo: Extrato***

Share this post


Link to post
Share on other sites

Usando o _FileListToArray() que o @Belini mencionou e baseando no código do @antony-ag, segue abaixo:

#include <File.au3>

; Declara variáveis para serem usadas posteriormente
Local $file, $texto

; Sequencia de caracteres a serem listados
; No caso, será listado todos os arquivos que tenham no inicio 'Extrato' e termine com '.txt'.
; O '*' significa que pode conter N caracteres entre 'Extrato' e '.txt'.
Local $nome = 'Extrato*.txt'

; Define qual a pasta que irá conter os arquivos
Local $pasta = @ScriptDir & '\'

; ($FLTA_FILES) determina que pastas não entram na listagem.
Local $lista = _FileListToArray($pasta, $nome, $FLTA_FILES)

; Percorre o Array
; A posição '$lista[0]' contém o número de arquivos encontrados
For $i=1 To $lista[0] Step 1

   ; Abre o arquivo no modo 'SOMENTE LEITURA' ($FO_READ)
   $file = FileOpen( $lista[$i] , $FO_READ)

   ; Lê o arquivo
   $texto = FileRead( $lista[$i] )

   ; Imprime o texto em uma caixa de diálogo
   MsgBox(0,'',$texto)

   ; Fecha o arquivo para que o próximo possa ser aberto
   FileClose($file)

Next

Exit


Share this post


Link to post
Share on other sites

Usando o _FileListToArray() que o @Belini mencionou e baseando no código do @antony-ag, segue abaixo:

#include <File.au3>

; Declara variáveis para serem usadas posteriormente
Local $file, $texto

; Sequencia de caracteres a serem listados
; No caso, será listado todos os arquivos que tenham no inicio 'Extrato' e termine com '.txt'.
; O '*' significa que pode conter N caracteres entre 'Extrato' e '.txt'.
Local $nome = 'Extrato*.txt'

; Define qual a pasta que irá conter os arquivos
Local $pasta = @ScriptDir & '\'

; ($FLTA_FILES) determina que pastas não entram na listagem.
Local $lista = _FileListToArray($pasta, $nome, $FLTA_FILES)

; Percorre o Array
; A posição '$lista[0]' contém o número de arquivos encontrados
For $i=1 To $lista[0] Step 1

   ; Abre o arquivo no modo 'SOMENTE LEITURA' ($FO_READ)
   $file = FileOpen( $lista[$i] , $FO_READ)

   ; Lê o arquivo
   $texto = FileRead( $lista[$i] )

   ; Imprime o texto em uma caixa de diálogo
   MsgBox(0,'',$texto)

   ; Fecha o arquivo para que o próximo possa ser aberto
   FileClose($file)

Next

Exit

 

 

Muito Obrigado! Perfeito.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×