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

Abrir, salvar, fechar um TXT!?


Guest --Gustavo --

Pergunta

Guest --Gustavo --

Olá!

Preciso saber se tem como eu editar parte de uma linha de um TXT! Deem uma olhada no arquivo abaixo:

Nome do arquivo: ptReg.rgx - RGX = TXT, tanto faz! ^^

"WindowMode" "1"
"Graphic" "0"
"ColorBPP" "16"
"Network" "0"
"CameraInvert" "false"
"MotionBlur" "false"
"CameraSight" "ON"
"ScreenSize" "0"
"Sound" "On"
"Server1" "64.56.75.249"
"Server2" "64.56.75.249"
"Server3" "64.56.75.249"
"Account" "  "

Então... Preciso saber se aonde está "WindowMode" "1" e no lugar do "1" seje alterado para "0".

Ou então toda a linha: WindowMode" "1" seje alterada para WindowMode" "0"

Preciso de um código que edite a primeira, a segunda até a ultima... Me deem um exemplo de como editar a primeira que o resto das linhas eu me viro ! hehe

Obrigado desde já! :rolleyes:

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Abrindo o arquivo, lendo todo o seu conteúdo e fechando:

n = freefile()
open "arquivo.txt" for binary as #n
conteúdo = input(lof(n), n)
close #n
Daí em "conteúdo" você vai ter uma string contendo o arquivo todo. Você pode então dividir essa string para um array em que cada elemento represente uma linha:
linhas = split(conteúdo, vbCrLf)
Estou assumindo que o separador de linhas é o padrão para Windows (CR + LF), se for diferente basta mudar ali em cima. Depois disso você vai ter em linhas(0) a primeira linha, em linhas(1) a segunda, em linhas(2) a terceira, e assim por diante. Supondo que você queria alterar a primeira linha bastaria fazer algo assim:
linhas(0) = replace(linhas(0), "1", "0")
Observe que estou simplesmente trocando qualquer caracter "1" que exista na string pelo caracter "0". No caso sabemos que nessa primeira linha só existe um 1 então não há problema em fazer isso. Para outros casos é necessário ter atenção, pois essa idéia pode não ser válida. Daí, devemos então gravar de volta as linhas para o mesmo arquivo (ou para um novo). Isso pode ser feito assim:
n = freefile()
open "arquivo.txt" for output as #n
for each linha in linhas
    ? #n, linha
close #n

E pronto. Note que a vantagem em jogar o conteúdo para um array é a facilidade em se poder manipular as linhas separadamente.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Gustavo --

Um... Eu entendi oque você quer fazer, mas não consegui colocar o código completo, me embabaquei todo! :wacko:

Queria por esse código em um botão, coloquei isso:

Private Sub Command1_Click()

n = FreeFile()
Open "arquivo.txt" For Binary As #n
conteudo = Input(LOF(n), n)
linhas = Split(conteudo, vbCrLf)
linhas(0) = Replace(linhas(0), "1", "0")
Close #n

End Sub
E deu o seguinte erro quando clica no botão:
Run-time error '9':
Subscript out of range

Socorro... :unsure:

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...