Ajuda em VB | ZWAME Fórum
Discussão em 'Programação' iniciada por mocito, 5 de Março de 2007. (Respostas: 5; Visualizações: 1282)
mocito Power Member
Estou a tentar fazer um programa em VB6, preciso que ele me localize uma string num ficheiro e substitua por outra.
Preciso que o programa procure num ficheiro hexadecimal um conjunto de caracteres e o substitua por outro, tenho uma textbox onde introduzo a string que pretendo localizar para depois substituir por uma nova. Tenho um form com varios botoes, na qual um deles abre o ficheiro com uma commondialog, o meu problema é que não sei como localizar a string no ficheiro e substituir essa string por uma nova. Agreço ajuda pois ainda sou muito novo no mundo da programação.
Usa a função Replace, faz isso "automaticamente" (procura a astring que pretendes e substitui-te por outra).
Sabes trabalhar com ficheiros? Acho que se apenas estás a começar, estás a começar por algo um pouco complicado. Irás precisar principalmente de File I/O (Open, Get, Put, Close). Dependendo da forma como usas os comandos anteriores, podes ou não usar o Replace (eu não usaria ). InStr.
Se puderes, diz o que sabes fazer
Eu abro uma commondialog o problema é que depois de abrir a commondialog não sei que fazer depois. Não sei como devo fazer para abrir o ficheiro e procurar a string que quero , para a substituir por outra. Tenho duas caixas de texto, uma que é a string que quero procurar no ficheiro para substituir. Na outra caixa de texto, ponho a string que quero que o programa coloque no lugar da anterior. Ja tinha experimentado o replace, mas não consegui, dai eu ter pedido ajuda. Vou tentar procura nas livrarias por file I/O, não tinha conhecimento deste comando.
File I/O é o termo genérico que eu uso pessoalmente. I/O é "Input/Output", que traduzido, seria qualquer coisa como "Entrada/Saída".
Para que serve? Para abrir ficheiros. Entrada - quando lês o conteúdo do ficheiro; Saída - quando gravas.
Quando abres a Common Dialog, aparece um diálogo para o utilizador escolher o ficheiro. Quando ele carrega em OK, o ficheiro escolhido fica em CommonDialog.FileName ... queres uma prova?
Cria um novo projecto e acrescenta-lhe apenas uma CommonDialog. Não lhe mudes o nome. Insere o seguinte código no Form_Load:
MsgBox "O ficheiro escolhido pelo utilizador encontra-se em """ & CommonDialog1.FileName & """"
Desta forma, sabes qual o ficheiro escolhido. Simples. O passo seguinte, e o essencial para o que precisas, é aprender a trabalhar nestes ficheiros.
Uma curtíssima explicação:
Open "ficheiro.txt" For Input As #1
Abre o ficheiro "ficheiro.txt". Apenas irá ler o ficheiro. Não é possível modificá-lo quando é aberto para "INPUT". O número #1 é para "identificar" o ficheiro no programa, pois assim podes ter os ficheiros que quiseres abertos, e se quiseres ler NESTE ficheiro, dizes explicitamente "#1"
Fecha o ficheiro. O handle é terminado, e não lhe podes sequer tocar sem o voltares a abrir.
Line Input #1, variável
Do...Loop faz um ciclo, que termina quando a expressão EOF(1) for verdadeira. EOF(<numero do ficheiro>) é verdadeira quando se alcança o fim do ficheiro (a última linha). Atenção que EOF também é um caracter (ASCII nº26), e quando este existe no ficheiro, é ALI que se considera que o ficheiro termina. Noutras palavras, se escreves num ficheiro "123<eof>456", tudo o que está à frente de caracter EOF não é lido, a menos que abras o ficheiro como Binary (em vez de Input ou Output).
O Line Input "busca" uma linha do ficheiro, e escreve-a na variável dada (neste caso, variável).
Print #1, "olá"
Escreve no ficheiro a string "olá".
Há vários modos de abrir um ficheiro. Input é para leitura. Output é para gravação. Append é para gravação, mas acrescenta ao fim do ficheiro, em vez de o substituir. Binary é para ambos, mas "Line Input" deixa de funcionar, porque não trabalhas com linhas, mas sim byte a byte.
Esta explicação deixa muito a desejar, mas pelo menos tentei dar aqui alguma coisa que se entenda está confusa, mas se tiveres dúvidas (e se só te seguires pelo que eu disse, hás-de as ter de certeza), avisa
Sabes inglês? Existe um tutorial que aconselho-te vivamente a ler. Tem tudo o que eu disse, muito mais, e é um excelente ponto de partida: http://www.xtremevbtalk.com/showthread.php?t=123814 . Este tutorial tem tudo o que precisas, sem teres de comprar livros