ratata Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 eg vil erstatta ein viss tekst i ei tekstfil... korleis gjer eg dette? Lenke til kommentar
Jonas Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 Med replace: text1.Text = Replace(text1.Text, "faen", "f***") Lenke til kommentar
ratata Skrevet 28. juni 2004 Forfatter Del Skrevet 28. juni 2004 korleis får eg dette til å virke, når eg skal skifte på eit bestemt ord på ei bestemt linje i ei tekstfil? Lenke til kommentar
Jonas Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 (endret) Se på dette: Private Sub Form_Load() replacefunc 4, "ih", "oihO" End Sub Private Function replacefunc(linje As Double, find As String, replacewith As String) As String Dim Buff As String Open "C:\testfil.txt" For Input As #1 Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila Line Input #1, Buff List1.AddItem Buff Loop Close #1 Dim i For i = 1 To List1.ListCount If linje = i Then 'hvis dette er den linja du har bestemt If replacefunc = "" Then 'siden vi må legge til ny linje, må vi førts sjekke om den er tom replacefunc = replace(List1.List(i - 1), find, replacewtih) 'her replacer vi Else replacefunc = replacefunc & vbNewLine & replace(List1.List(i - 1), find, replacewtih) 'her replacer vi End If '#### Else 'hvis det ikke er den linja du har bestemt If replacefunc = "" Then 'siden vi må legge til ny linje, må vi førts sjekke om den er tom replacefunc = List1.List(i - 1) Else replacefunc = replacefunc & vbNewLine & List1.List(i - 1) End If '#### End If Next i MsgBox replacefunc End Function Edit: den brukes slik: replacefunc 4, "ih", "oihO" 4 = Hvilken linje du vil replace på "ih" = Hva den skal finne "oihO" = Er hva den skal replace den med Endret 28. juni 2004 av Jonas Lenke til kommentar
ratata Skrevet 28. juni 2004 Forfatter Del Skrevet 28. juni 2004 ein ting til, korleis kan eg hente ut noko som står på ei spesiell linje i ei tekstfil? Lenke til kommentar
Jonas Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 (endret) Igjen kan vi bruke en tekst boks. Når man har ting i en tekst boks kan man bruke .list() funksjonene til å hente ut ting fra linjer: Private Sub Form_Load() MsgBox gettext(5) End Sub Private Function gettext(line As Double) Dim Buff As String Open "C:\testfil.txt" For Input As #1 Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila Line Input #1, Buff List1.AddItem Buff Loop Close #1 gettext = List1.List(line - 1) 'vi må ta minus en fordi index i en list boks starter med 0 End Function Endret 28. juni 2004 av Jonas Lenke til kommentar
jonask Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 (endret) det er også en funksjon som heter SEEK som lar deg søke opp en eksakt linje. tror jeg EDIT-- Jadda, vist rakkern er det det. Seek #filhandle, linjenummer Endret 29. juni 2004 av jonask Lenke til kommentar
ratata Skrevet 1. juli 2004 Forfatter Del Skrevet 1. juli 2004 Den replacefunc saken printer jo ikkje tilbake til fila når eg ser etter !? Eller ser eg feil no? Lenke til kommentar
Jonas Skrevet 1. juli 2004 Del Skrevet 1. juli 2004 Nei, det gjør den ikke. Husker ikke "lagre" koden i hodet, men hvis du ser i aadnk sin guide så står det noe om det. MsgBox replacefunc replacefunc er altså teksten Lenke til kommentar
ratata Skrevet 1. juli 2004 Forfatter Del Skrevet 1. juli 2004 planen var at koden skulle finne eit ord på ei linje, for så å skrive over dette ordet med eit anna... Lenke til kommentar
Jonas Skrevet 1. juli 2004 Del Skrevet 1. juli 2004 Ok, her er funksjonene ferdig: Private Sub Form_Load() Dim ret ret = replacefunc("C:\testfil.txt", 2, "bla", "tralabla") End Sub Private Function replacefunc(file As String, linje As Double, find As String, replacewith As String) As Boolean On Error GoTo feil Dim Buff As String, tekst As String Open file For Input As #1 Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila Line Input #1, Buff List1.AddItem Buff Loop Close #1 Dim i For i = 1 To List1.ListCount If linje = i Then 'hvis dette er den linja du har bestemt If tekst = "" Then 'siden vi må legge til ny linje, må vi førts sjekke om den er tom tekst = Replace(List1.List(i - 1), find, replacewith) 'her replacer vi Else tekst = tekst & vbNewLine & Replace(List1.List(i - 1), find, replacewith, 1, , vbTextCompare) 'her replacer vi End If '#### Else 'hvis det ikke er den linja du har bestemt If tekst = "" Then 'siden vi må legge til ny linje, må vi førts sjekke om den er tom tekst = List1.List(i - 1) Else tekst = tekst & vbNewLine & List1.List(i - 1) End If '#### End If Next i Open "C:\testfil.txt" For Output As #1 Print #1, tekst Close #1 replacefunc = True Exit Function feil: replacefunc = False End Function replacefunc("C:\testfil.txt", 2, "bla", "tralabla") Koden replacer bla, med tralabla på linje 2, i testfil.txt Ret er 1 hvis ingen ting galt har skjedd. Skjer det en error er ret 0. Lenke til kommentar
ratata Skrevet 1. juli 2004 Forfatter Del Skrevet 1. juli 2004 tusen takk nok eingong Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå