28. april 2003 - 12:43Der 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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
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
Det var så lidt. Det virkede altså? Jeg havde ikke mulighed for at debugge...
Synes godt om
Ny brugerNybegynder
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.