Avatar billede klausknudsen Nybegynder
28. april 2003 - 12:43 Der er 6 kommentarer og
1 løsning

Find text?

Nu har jeg en ide om et lille program, som skal søge i en given fil eks. fil1.txt efter følgende:
<!-- Find mig -->
og herefter skal den gemme den tekst som jeg har indtastet i en textbox efter den linie og nedefter.
Den må dog ikke slette al det text der er efter:
<!-- Stop med at finde mig -->

og et lille tillægsspørgsmål.:
Vil også gerne have hvis det var muligt at få al det text der står mellem disse tags til at blive gengivet i min textbox.

På forhånd tak!

Klaus Knudsen
Avatar billede shadowdance Nybegynder
28. april 2003 - 20:05 #1
Følgende kode læser sig frem til tags, og indsætter kun det der ligger imellem de to tags.

----------------------------------------
Private Sub ReadFile()

Dim FSO As Object, fsoText As Object, currentLine As String

Set FSO = CreateObject("scripting.filesystemobject")
Set fsoText = FSO.opentextfile("fil1.txt") 'Fuld sti kræves

Do While Not fsoText.atendofstream
    currentLine = fsoText.readline
    If currentLine = "<!-- Find mig -->" Then
        Do While Not currentLine = "<!-- Stop med at finde mig -->"
            currentLine = fsoText.readline
            If currentLine <> "<!-- Stop med at finde mig -->" Then
                text1.Text = text1.Text & vbCrLf & currentLine
            End If
        Loop
    End If
Loop

fsoText.Close
Set fsoText = Nothing
Set FSO = Nothing

End Sub
Avatar billede klausknudsen Nybegynder
29. april 2003 - 10:04 #2
Det virker squ..  men hvordan skal jeg kunne gemme det der står i text boxen? hvilken kommando skal jeg kalde?

men tak.
Avatar billede shadowdance Nybegynder
29. april 2003 - 17:22 #3
Jamen, hvis det er gemt i filen, så er det jo gemt! Men du vil gemme det til en ny fil, eller hvad?
Avatar billede klausknudsen Nybegynder
30. april 2003 - 09:02 #4
Ja, men det skal ikke gemmes i en ny film, men i samme fil. sådan så det der står mellem tags'ne kan redigeres.
Avatar billede shadowdance Nybegynder
30. april 2003 - 21:52 #5
Så bliver det noget i denne stil (du bliver nu nødt til at benytte dig af en midlertidig kopi):

-----------------------------------------------
Private Sub SaveToFile()

Dim FSO As Object, fsoText As Object, fsoTextCopy As Object, currentLine As String
Dim LineArray As Variant, i As Integer

Set FSO = CreateObject("scripting.filesystemobject")
Set fsoText = FSO.opentextfile("fil1.txt") 'Fuld sti kræves
Set fsoTextCopy = FSO.createtextfile("filcopy.txt")

Do While Not fsoText.atendofstream
    currentLine = fsoText.readline
    If currentLine = "<!-- Find mig -->" Then
        fsoTextCopy.writeline currentLine
        LineArray = Split(text1.Text, vbCrLf)
        For i = 0 To UBound(LineArray)
            fsoTextCopy.writeline LineArray(i)
        Next i
        fsoTextCopy.writeline "<!-- Stop med at finde mig -->"
        Do Until currentLine = "<!-- Stop med at finde mig -->"
            currentLine = fsoText.readline
        Loop
    Else
        fsoTextCopy.writeline currentLine
    End If
Loop

fsoText.Close
fsoTextCopy.Close
Set fsoText = Nothing
Set fsoTextCopy = Nothing

FSO.deletefile "fil1.txt"
FSO.movefile "filcopy.txt", "fil1.txt"
Set FSO = Nothing

End Sub
Avatar billede klausknudsen Nybegynder
01. maj 2003 - 11:33 #6
Tak skal du have..!
Avatar billede shadowdance Nybegynder
01. maj 2003 - 11:35 #7
Det var så lidt. Det virkede altså? Jeg havde ikke mulighed for at debugge...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester