Ir para conteúdo
Fórum Script Brasil
  • 0

Dirlistbox


juca

Pergunta

ola gostaria de saber se existe algum metodo usado num DirListBox para verificar se existe uns arquivos listados num string.

Exemplo:

Dim Arquivo As String

Arquivo = "Texto.txt" + "Texto2.txt" + "Texto3.txt"

If Dir.(o código que eu preciso) = Arquivo Then

FrmPrincipal.LstArquivos.AddItem "3 textos"

End If

antes que eu me esqueça, eu queria que o programa gravasse o diretorio escolhido ateh o usuario selecionar. valeu

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

ola gostaria de saber se existe algum metodo usado num DirListBox para verificar se existe uns arquivos listados num string.

Exemplo:

Dim Arquivo As String

Arquivo = "Texto.txt" + "Texto2.txt" + "Texto3.txt"

If Dir.(o código que eu preciso) = Arquivo Then

FrmPrincipal.LstArquivos.AddItem "3 textos"

End If

Não, mas você pode verificar se um determinado arquivo existe através da função Dir(). E, se você colocá-los em um array, ao invés de uma string, fica ainda melhor.

antes que eu me esqueça, eu queria que o programa gravasse o diretorio escolhido ateh o usuario selecionar.

Como assim?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

valeu cara você salvo minha vida!!! :)

Eu quis dizer como que faz pro programa gravar aquele diretorio na memoria para o usuario não ter que ir lá configurar o diretório toda vez que executar o programa. Entendeu??

E tem como a função Dir() verificar se existem mais de um arquivo? tipo o programa que eu to fazendo ele precisa de reconhecer alguns arquivos necessário para a execução de um programa, então se tiver os arquivos no diretorio selecionado num DirListBox, iria aparecer o nome do programa. E se puder mostre um exemplo de codigo, ainda to no comesso do Visual Basic só sei fazer programinha de locadora e farmacia :)

Link para o comentário
Compartilhar em outros sites

  • 0

valeu cara você salvo minha vida!!! :)

Eu quis dizer como que faz pro programa gravar aquele diretorio na memoria para o usuario não ter que ir lá configurar o diretório toda vez que executar o programa. Entendeu??

Você pode usar as funções SaveSetting() e GetSetting() para, respectivamente, salvar e resgatar quaisquer informações que lhe sejam convenientes. No caso, você guardaria o diretório com SaveSetting ao finalizar o programa e depois o resgataria com GetSetting() ao iniciá-lo.

E tem como a função Dir() verificar se existem mais de um arquivo? tipo o programa que eu to fazendo ele precisa de reconhecer alguns arquivos necessário para a execução de um programa, então se tiver os arquivos no diretorio selecionado num DirListBox, iria aparecer o nome do programa. E se puder mostre um exemplo de codigo, ainda to no comesso do Visual Basic só sei fazer programinha de locadora e farmacia :)

Sim, você pode listar os arquivos de uma pasta fazendo isso:

    pasta = "d:\temp\"
    arq = Dir(pasta)
    
    Do While arq <> ""
        Debug.Print arq
        arq = Dir
    Loop
Sendo que eu acredito que você queira fazer algo assim:
    pasta = "d:\temp\"
    arquivos = Array("arquivo1.txt", "arquivo2.jpg", "arquivo3.dll", "arquivo4.exe")
    For Each arquivo In arquivos
        If Dir(pasta & arquivo) = "" Then
            MsgBox "O arquivo " & pasta & arquivo & " não existe!"
        End If
    Next arquivo

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Sim é isso mesmo.

Porém ainda tem um problema

Veja o codigo do meu programa:

=======================

Private Sub CmdApplyGCFs_Click()

pasta = DirGCFsFolder.Path

arquivos = Array("\half-life.gcf", "\half-life engine.gcf")

For Each arquivo In arquivos

If Dir(pasta & arquivo) = "" Then

Else

FrmMain.LstGames.AddItem "Half-Life"

End If

Next arquivo

End Sub

=======================

Está acontecendo que na lista vem dois items com o mesmo nome e isso varia de acordo com o número de arquivos.

Tipo para cada arquivo, ele adiciona um item na lista.

Se eu tiro o For Each, o Vb dá um erro.

Eu queria saber se tem jeito de fazer os dois arquivos (\half-life.gcf e \half-life engine.gcf) corresponderem há um só item na lista (FrmMain.LstGames.AddItem "Half-Life")

valeu!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Está acontecendo que na lista vem dois items com o mesmo nome e isso varia de acordo com o número de arquivos.

Tipo para cada arquivo, ele adiciona um item na lista.

Mas, é *exatamente* isso que você está mandando ele fazer naquele código.

Eu queria saber se tem jeito de fazer os dois arquivos (\half-life.gcf e \half-life engine.gcf) corresponderem há um só item na lista (FrmMain.LstGames.AddItem "Half-Life")

Sim, você pode simplesmente usar uma variável booleana para dizer se todos os arquivos existem e daí decidir se inclui ou não o item.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Como assim do tipo booleana?

alguma coisa do tipo As Boolean? Se não me engano Boolean é uma variável lógica, não sei como usar um tipo de variavel desses nessa situação.

Sim, uma variável booleana comporta os valores Verdadeiro (True) e Falso (False). A idéia, no caso, é dar-lhe um valor (Verdadeiro) antes do loop e modificá-la dentro do mesmo, caso o arquivo não seja encontrado. Ao final do mesmo você vai ter como saber se todos existem ou não.

Me dê um exemplo com código por favor.

Ah, mas aí eu vou estar fazendo o código pra você, o que é um crime visto que estarei te impedindo de pensar e chegar ao extâse da descoberta sozinho... ;)

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Argh!, já tentei de tudo, mas não dá certo! Num tem como você quebra um galho aí não??!... Voce me ajudou muito quando me mostrou aquele exemplo lá em cima... por favor!!! :)

Será que ajudei mesmo? Tenho cá minhas dúvidas se você só copiou e colou (do mesmo jeito que você provavelmente vai fazer com o código abaixo):

achoutudo = True
arquivos = Array("\half-life.gcf", "\half-life engine.gcf")
For Each arquivo In arquivos
    achoutudo = achoutudo And Dir(pasta & arquivo) <> ""
Next arquivo

if achoutudo then
    FrmMain.LstGames.AddItem "Half-Life"
endif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Humn. Não duvide de mim. Estou realmente interessado em aprender programação, Porém não tem como alguém sair por aí adivinhando os códigos. Se eu pudesse, faria o programa sozinho... Mas como já citei no meu último post, "Já tentei de tudo"... Não estava dando certo de jeito nenhum... Te juro amigo, eu tentei. Você não estaria me ajudando agora se alguém não tivesse te ensinado apenas uma base... Não??. A mesma coisa acontece comigo. Quando eu vi o Visual Basic, eu tive interesse em aprender a criar programas novos e tudo mais que se pode fazer. Então era eu e o Google. E eu fui buscando informações para tentar mexer pelo menos um pouco... Agora pelo menos programinhas de locadora eu sei fazer... Coisa que quando eu comecei a mexer no Visual Basic, eu pensava que nunca seria capaz... Então eu vou calar a boca por aqui :). valeu por tudo!!!.

Link para o comentário
Compartilhar em outros sites

  • 0
Humn. Não duvide de mim. Estou realmente interessado em aprender programação,

Eu não duvidei do seu interesse em aprender programação, mas sim do seu esforço para tal.

Porém não tem como alguém sair por aí adivinhando os códigos. Se eu pudesse, faria o programa sozinho...

E você acha que eu "adivinho" os códigos? Creio que ninguém faça isso. Dificilmente existe "certo" e "errado" em relação a lógica de programação, portanto existem n maneiras de se fazer aquilo. Eu só te mostrei uma delas.

Mas como já citei no meu último post, "Já tentei de tudo"... Não estava dando certo de jeito nenhum... Te juro amigo, eu tentei.

E não chegou nem mesmo próximo do desejado? Se tivesse chegado, você poderia ter postado aqui o seu código e dito o que você não conseguiu fazer.

Você não estaria me ajudando agora se alguém não tivesse te ensinado apenas uma base... Não??. A mesma coisa acontece comigo.

Isso é extremamente relativo. E, no caso, o que eu fiz foi justamente te passar a *base* da coisa (a idéia). E o que você me pediu quando eu fiz isso? A coisa "pronta" (o código).

Quando eu vi o Visual Basic, eu tive interesse em aprender a criar programas novos e tudo mais que se pode fazer. Então era eu e o Google. E eu fui buscando informações para tentar mexer pelo menos um pouco... Agora pelo menos programinhas de locadora eu sei fazer... Coisa que quando eu comecei a mexer no Visual Basic, eu pensava que nunca seria capaz...

Ótima postura. Talvez eu é que tenha me enganado sobre você, mas é que a atitude de pedir códigos prontos é uma característica de membros preguiçosos. Neste caso, aceite as minhas apologias.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...