[VB6] Guardar itens de listbox para ficheiro .cfg

WinAce_Boy

Power Member
OI, boa tarde,
Já sei guardar(e ir buscar) dados, variáveis, etc.. em ficheiros, mas não consigo arranjar maneira de gravar para um ficheiro todos os itens(nº indeterminado) de uma lista, e depois quando o programa inicia(Form_Load) ir buscar os dados e preencher automaticamente a lista com os dados..

Desde já agradecido..
Abraços a todos..;)
Obrigado pela atenção.
 
Boas :)

Sabes gravar um ficheiro?
Código:
Open <ficheiro> For [B]Output[/B] As #1
Ao abrires um ficheiro para OUTPUT estás a dizer que vais ESCREVER nele.

- Para apanhares um item da ListBox, usas o List1.List(item).
- O primeiro item de uma ListBox é o 0 e o último é o List1.ListCount - 1
- Um ciclo entre o primeiro item e o último resolve o teu problema :P

Para escrever no ficheiro aberto,
Código:
Print #1, texto
onde texto é uma variável do tipo String :)

Acho que já disse tudo o que precisas :)
 
:wvsore: Mas eu acho que tu tens o conhecimento necessário para fazer isso sozinho...
Código:
Open ficheiro For Output As #1
   For i = 0 to List1.ListCount - 1
      Print #1, List1.List(i)
   Next i
Close #1

É mesmo muito simples :x
 
não tinha conhecimento dessa função..
para k serve o Next i?
o i é o nome de uma variavel certo?(k poderia ser outro kalker)
obrigadao
 
Afinal o teu problema era não saberes usar o ciclo For.
O ciclo inicia-se na linha
For <variável (que naquele caso era o i, como disseste)> = Inicio To Fim
<tudo o que está aqui dentro é repetido>
Next <variável>

O ciclo começa na linha do FOR e termina na linha do NEXT. Enquanto não tiver sido atingido o valor máximo para a variável, o que está entre o FOR e o NEXT vai ser repetido.

Para teres uma ideia,
Código:
For i = 1 To 10
     Msgbox i
     Msgbox i * 2
Next i
 
Msgbox "11"

Verás que as duas MSGBOXes que estão no interior do ciclo FOR...NEXT serão repetidas dez vezes (a primeira mostra o número actual, e a segunda mostra o dobro do número actual), mas a que está fora do ciclo (após a linha do NEXT) já não será repetida.
O i é uma variável que uso muitas vezes em ciclos FOR pelo hábito. Podia ser uma variável qualquer, desde que fosse numérica (Integer, Long, Double...) e não Alfanumérica (String). :)
 
De forma a complementar a excelente explicação do angelofwisdom, podes especificar um passo de iteracção no for, por exemplo, andar de 3 em 3 valores.

Código:
For i = 10 to 5 step -1

blablabla

Next i

Omitindo o step (exemplo do angelofwisdom) o compilador assume que o passo é UM.

Espero não te ter baralhado :P

abraços, HecKel
 
Boas,
Desculpem a minha longa ausencia e tempo que demorei a responder..

Ok, ja percebi a sintaxe desse ciclo e ja consigo trabalhar com ele xD.
Mas nao consigo arranjar maneira de por um prog a ler dados para uma listbox =[]=

Abracos.. |^^|
Obrigado pela atencao.. xD
 
Mais duas semanas e podia-te dizer que demoraste meio ano a responder :D

Para pôres o programa a ler os dados para a listbox,
Código:
Open "Ficheiro" for [B]Input[/B] As #1
   Do Until EOF(1)
      Line Input #1, buffer
      List1.Additem buffer
   Loop
Close #1
Não está testado, mas isto assim deve dar. Basicamente, abres o ficheiro para leitura (Input), fazes um ciclo que termina quando o fim do ficheiro for atingido (EOF(id_do_ficheiro) = True), vais buscar cada linha com o Line Input, essa linha vai para a variável buffer, e essa variável entra na listbox na linha seguinte (List1.Additem buffer).

Está suficientemente explícito? :P
 
Mas porque nao usaste o ciclo for?
Num ciclo FOR defines o início e o fim. Ora, não tens forma de escolher qual das linhas queres ir buscar, nem sabes quantas linhas tem o ficheiro, usas um ciclo Do...Loop que só termina quando o fim do ficheiro for atingido.
Cada vez que chamas o Line Input ele devolve-te a linha seguinte. Quando ainda há linhas, EOF(ficheiro) é False. Quando já foste buscar a última linha, nesse momento EOF(ficheiro) será True.
O "Do Until EOF(1)" quer dizer que vai percorrer o ciclo tantas vezes quantas forem precisas até ser atingido o fim do ficheiro. Aí, sai do ciclo.
Quando tentares fazer um Line Input mesmo quando EOF(ficheiro)=True, recebes um erro porque estás a ir buscar uma linha, apesar de já não haverem mais linhas. Acho que é o erro "Input Past End Of File" (e faz sentido que seja :) ).
 
Nunca precisaste de ciclos? O que é que tens feito até agora? :P Ciclos são fundamentais na programação ;)

No fundo, para distinguires que ciclos queres usar, tens de saber se tens ou não um fim.
Se tiveres início e fim definidos, usas um For...Next.
Se não tiveres, usas um Do...Loop.
Se o ciclo corre ENQUANTO uma expressão é verdadeira, usas o While...Wend (ou o Do While ... Loop).
Se o ciclo corre ATÉ uma expressão ser verdadeira, usas o Do Until... Loop.
Para um ciclo virtualmente infinito, usas um simples Do...Loop.

É bastante simples :) o HecKel tem um tópico que explicava as bases fundamentais da programação. Procura por aí ;)
 
Back
Topo