Jag har en textfil som innehåller lite ord, endast ett ord på varje rad...Det finns endast 1 av varje ord. Hur gör jag om jag vill ta bort ordet Hej ? Det finns ingen direkt bra rutin för detta utan du får tyvärr lösa det på följande sätt: Ett annat sätt att lösa det,som går i linje med dina tankegångar att ta bort/ersätta.Ändra rad i textfil?
Jag måste vell typ läsa in hela text filen kolla om Hej finns och finns det de så tar jag bort allt och sätter in allt utom Hej igen, eller?
Gärna lite kod exepmel också.
Tack på förhand.Sv: Ändra rad i textfil?
Läs upp hela textfilen i en sträng och stäng filen. Leta reda på förekomsten av ordet hej och ersätt det med blankt Skapa sen en ny fil med samma filnamn och skriv den din ändring. Eftersom du sparar med samma filnamn kommer du skriva över datat.
<code>
find = "hej"
open app.path & "\test.txt" for input as #1
line input #1, buffer
close
if instr(buffer, find) > 0 then
buffer = replace(buffer, find, "")
open app.path & "\test.txt" for output as #1
print #1, buffer
close
else
' fann inte hej, då skippar vi arbetet
end if
</code>
Sen finns det andra problem med detta och det är om filen du har är väldigt stor. Då får du öppna den binärt och läsa block för block istället samt göra massa andra ändringar och kontroller.Sv: Ändra rad i textfil?
<code>
Option Explicit
Private Sub Command1_Click()
'Hur att ta bort en speciell rad ur en textfil "Hej"
Dim retStr As String, FNum As Long, FNum2 As Long
Dim removeStr As String
removeStr = "Hej"
FNum = FreeFile
Open "C:\Test.txt" For Input As #FNum
FNum2 = FreeFile
Open "C:\Test2.txt" For Output As #FNum2
Do Until EOF(FNum)
Line Input #FNum, retStr
If retStr <> removeStr Then Print #FNum2, retStr
Loop
Close #FNum
Close #FNum2
Kill "C:\Test.txt"
Name "C:\Test2.txt" As "C:\Test.txt"
End Sub
</code>