Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

T@ty

List Box

Recommended Posts

Boa tarde Pessoal,

 

Faz um tempo que não programo nada em vb então estou com algumas duvidas bestas mas com a falta de prática se torna complicado.....

 

tenho 02 textbox (data inicial e data final) onde quando eu colocar a data final apareça todos os arquivos num listbox com a data 7 dias menor do que a informada.

 

Porém existe um text onde será informado o caminho do arquivo (por enquanto será padrão)

 

 

Vou precisar também apagar alguns arquivos da lista, através de um botão que já está semi criado.

 

 

Poderiam me ajudar?

 

 

Obrigada pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me ajude a entender.

 

Você terá um intervalor de datas. Ai você quer pegar arquivos com sete dias menores que a data final? Então para que a data inicial?

 

Que arquivos são esses? Arquivos quaisquer que se encontram em seu computador?

 

Eles estão seguindo um nome padrão que facilite a procura deles ou você quer pegar pela data de criação?

 

Apagar um item de uma list não é algo tão simples, mas com um pouco de lógico dá para fazer.

 

Faça o seguinte:

CODE

'No evente DbCLick do list:

 

'armazene em uma variavel qual item quer excluir

variavel = list1.text

 

'Crie um array com string

dim arrLista() as string

 

'diga para esse array de quanto a quanto ele deverá ir de acordo com a quantidade de itens em sua list

redim arrLista(0 to list1.listcount) as string

 

'Ai utilize de um for para que cada item de seu array armazene um item de seu list

for i = 0 to arrLista.listcount - 1

arrLista(i) = arrLista.list(i)

next

 

'Zere todo seu list

list1.clear

 

'Depois com seu array recheado de informações, adicione todos novamente no list, menos aquele que você pretendia deletar.

 

for i = 0 to ubound(arrLista()) - 1

if arrLista(i) <> variavel then

list1.additem arrLista(i)

end if

next

 

Bom, fiz de cabeça, se der algo errado no meio do caminho me avise que procuro a forma correta, mas essa é idéia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os arquivos são de um servidor de cameras....

 

A data inicial será necessária pq o usuário pode pegar o inicio de um determinado mês e a final de outro.

exemplo: 01/07/2008 a 12/08/2008

 

porém o sistema deverá retornar as datas do dia 01/07/2008 a 05/08/2008

 

Esta parte de data no momento não me preocupa tanto (o fato de ser 7 dias a menos)

 

Tentei fazer o sistema com um if e um for mas está com alguns probleminhas, vou postar o cód.

 

j = 1

arq = ""

qtde_arq = 0

qtde = 0

For i = 1 To Len(arquivos)

 

DoEvents

 

aux = Mid$(arquivos, i, 1)

 

If (aux = vbCr) Then

qtde_arq = qtde_arq + 1

arq = Mid(arquivos, j, (qtde))

 

If (qtde_arq > 1) Then arq = Mid(arq, 2, Len(arq))

 

m_UserFile = arq

Call UpdateInfo(m_UserFile)

 

txtMSG.Text = lst.Text & ": " & arq_path & "\" & arq_nome

Status_Bar

 

If F_CANCEL Then GoTo FIM

 

If (CDate(data_criacao) >= CDate(txtDataInicial.Text)) And (CDate(data_criacao) >= CDate(txtDataFinal.Text)) Then

'

' ADICIONA NA LISTA

'

lst.AddItem arq '& " - " & data_criacao

lst.ListIndex = lst.ListCount - 1

 

j = i

qtde = 0

 

Else

MsgBox "Não foi possível encontrar arquivos.", vbCritical, "Gerar"

End If

 

End If

qtde = qtde + 1

 

Next

 

FIM:

Screen.MousePointer = vbDefault

 

If qtde = 0 Then

MsgBox "Não foi possível encontrar arquivos.", vbCritical, "Gerar"

Else

txtMSG.Text = ""

End If

 

 

 

Obrigada Claudio pelas informações , vou testar.....

 

 

ps: não entendi a parte que você coloca pra apagar a lista , pois o que preciso é que o usuário selecione o arquivo e clique no botão apagar, pois não quero apagar a lista toda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vamos lá

 

If (aux = vbCr) Then

qtde_arq = qtde_arq + 1

arq = Mid(arquivos, j, (qtde)) 'repare que na primeira passada qtde é 0, ou seja, o retorno será vazio, isso mesmo que você quer?

 

If (qtde_arq > 1) Then arq = Mid(arq, 2, Len(arq)) 'e aqui fez a mesma coisa.

 

PS. Tenta copiar o código do jeito que passei, ele deverá apagar somente um registro. Você pode colocá-lo no evento do botão sem problemas da mesma forma que escrevi.

 

Ah, e você não respondeu se você irá pegar os arquivos através do nome ou da data de criação.

 

Do jeito que está esse código, o que ele retorna? E o que você está fazendo para procurar os arquivos na pasta?

Pode colocar o código do UpdateInfo(m_UserFile) para eu testar seu código todo?

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Claudio,

 

Desculpa por não ter respondido antes mas tivemos alguns probleminhas aki e acabei nem vendo diteito os códigos....

 

 

Vamos lá....

 

Estou puxando os arquivos pela data de criação e será através dela que irei apagar.

 

exemplo:

 

data inicial 01/07/2008

data final 14/07/2008

 

quero deixar somente os arquivos do dia 12/07 até o dia 14/07 entendi...

 

na verdade são gerados muitos arquivos por dia e isso está deixando meu servidor muito cheio e não preciso de dados muito antigos.

 

então quero puxar os arquivos e ir apagando o que não me interessa, mas ao mesmo tempo preciso selecionar na lista o que devo apagar, para não ter problemas depois.

 

 

 

obrigada pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claudio,

 

o sistema já está puxando os arquivos pela data de criação certinho....

 

e decidi que irei apagar todos os arquivos da lista e estive verificando que posso fazer isso atraves de um comando chamado kill, mas não estou sabendo colocar no meu codigo.

 

 

 

será que poderia me ajudar, pois preciso colocar este comando dentro de um botão apagar.

 

 

 

obrigada para atenção prestada até o presente momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Claudio,

 

Desculpa por não ter respondido antes mas tivemos alguns probleminhas aki e acabei nem vendo diteito os códigos....

 

 

Vamos lá....

 

Estou puxando os arquivos pela data de criação e será através dela que irei apagar.

 

exemplo:

 

data inicial 01/07/2008

data final 14/07/2008

 

quero deixar somente os arquivos do dia 12/07 até o dia 14/07 entendi...

 

na verdade são gerados muitos arquivos por dia e isso está deixando meu servidor muito cheio e não preciso de dados muito antigos.

 

então quero puxar os arquivos e ir apagando o que não me interessa, mas ao mesmo tempo preciso selecionar na lista o que devo apagar, para não ter problemas depois.

 

 

 

obrigada pela atenção.

Você já conseguiu selecionar os arquivos pela data?

 

Isso é algo que não saberei te ajudar, então caso ainda não tenha conseguido, espero que outros possam te ajudar.

 

Eu havia achado que quando você selecionasse um arquivo da lista, iria somente apagar da lista, mas não né. O que você quer é deletar o arquivo do PC.

 

Mas de qualquer forma, acho que irá precisar deletar o item da lista quando apagar o arquivo né, rs...

 

Para deletar um arquivo do pc use:

 

kill "caminho/arquivo"

 

Precisando de mais ajuda diz ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro cód que coloquei eu já estava conseguindo puxar os arquivos.....

 

 

Sei que a sintaxe do kill é só colocar o caminho, mas preciso fazer isso atraves da data tipo.

 

quero apagar do micro e da lista os arquivos do intervalo de datas informadas pelo usuário.

 

ps: If (CDate(data_criacao) >= CDate(txtDataInicial.Text)) And (CDate(data_criacao) <= CDate(txtDataFinal.Text)) Then

 

neste if está a sintaxe para puxar os arquivos pela data.

 

obrigada novamente pela atenção.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei que em sua lista você iria exibir nome por nome dos arquivos selecionados no seu intervalo de datas.

 

Quando você puxa esses arquivos por data, consegue pegar os nomes deles? Se sim, mesmo que você não vá exibi-los na sua lista, armazene os nomes em um array.

 

Depois use o kill nesses arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei que em sua lista você iria exibir nome por nome dos arquivos selecionados no seu intervalo de datas.

 

Quando você puxa esses arquivos por data, consegue pegar os nomes deles? Se sim, mesmo que você não vá exibi-los na sua lista, armazene os nomes em um array.

 

Depois use o kill nesses arquivos.

 

Sim, qdo puxo aparece na lista os dados completo....

caminho completo com data

 

exemplo: c:\exemplo\teste 14/07/2008

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, então não entendi qual a dificuldade que está tendo.

 

Aparentemente você tem todas as ferramentas necessárias para executar o que precisa.

 

Ah, pode me mostrar como fez para pegar os arquivos por data?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, então não entendi qual a dificuldade que está tendo.

 

Aparentemente você tem todas as ferramentas necessárias para executar o que precisa.

 

Ah, pode me mostrar como fez para pegar os arquivos por data?

 

Obrigado.

tenho todas as informações mas não estou sabendo usar, estou perdida de como faço para apagar os arquivos que está na lista ,.

 

 

tdo que tenho de código já foi postado.....

o que você precisa realmente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou perdida de como faço para apagar os arquivos que está na lista ,.

Você quer remover um item da lista ou o arquivo do computador ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou perdida de como faço para apagar os arquivos que está na lista ,.

Você quer remover um item da lista ou o arquivo do computador ?

 

 

Preciso remover os 02 na verdade, pois ´tudo que aparece na lista é o que tenho no micro e será apagado.

 

 

como disse no começo de tudo faz mto tempo que não programo, principalmente em vb então estou perdida, e tem mais um detalhe, estou tentando melhorar o cód de outra pessoa, ou seja, tenho que entender a lógica da outra pessoa que é complicado né?

 

 

obrigada pelo apoio de vcs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer funcionar tdo....,

 

obrigada pelo apoio e pela paciência que tiveram comigo....

 

segue o código

 

 

Private Sub cmdApagar_Click()

Static i As Integer

 

If lst.ListCount > 0 Then

 

For i = 0 To lst.ListCount - 1

 

lst.ListIndex = i

 

Kill lst.Text

 

Next i

 

End If

 

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas isto está somente apagando o arquivo do PC.

 

Não está retirando da lista.

 

Ah, e não entendi o porque de lst.ListIndex = i, pelo meu ver não é necessário.

 

Para retirar da lista, coloque aquele código que passei inicialmente, o porque daquele código é que você não consegue retirar item por item de uma list, então aquele código armazena todos os dados em uma outra variável, apaga tudo e depois adiciona os que não deveriam ser apagados.

 

Tenta lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá....

 

 

Então o mais importante era tirar do pc os arquivos.....

 

 

mas vou testar seu cód e depois te aviso.....

 

 

obrigada por tdo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.