Avatar billede george Nybegynder
07. september 2002 - 23:45 Der er 10 kommentarer og
1 løsning

Indsæt linje før al anden tekst i en tekstfil

Er der nogen der har en ide til hvordan jeg får indsat en ny linje i toppen af en tekstfil d.v.s. linje der var nummer 1 skal nu være nummer 2 og den linje jeg indsætter skal være nummer 1.

Har prøvet med ForAppending, men den indsætter linjen i enden af filen.
Avatar billede stoney96 Nybegynder
08. september 2002 - 00:02 #1
Læs hele files indhold ind vha. ReadAll hvor filen først er åbnet ForReading

F.eks. ReadAllTextFile =  f.ReadAll

Skriv derefter det hele tilbage til filen som f.eks.
NewContent=MyNewFirstLine & VbCr & ReadAllTextFile
f.Write NewContent

...hvor filen først er genåbnet ForWriting
Avatar billede george Nybegynder
08. september 2002 - 00:03 #2
Prøver lige ...
Avatar billede george Nybegynder
08. september 2002 - 00:22 #3
Her er koden jeg prøver med, men der er fejl i linje 3 ( tror det er ForReading )

<%
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
Set MyTextFile=MyFileObject.OpenTextFile(Server.MapPath("menu.mnu"), ForReading)
ReadAllTextFile = MyTextFile.ReadAll
MyTextFile.Close
Set MyFileObject = Nothing

Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
Set MyTextFile=MyFileObject.OpenTextFile(Server.MapPath("menu.mnu"), ForWriting)
MyNewFirstLine = "Test"
NewContent = MyNewFirstLine & VbCr & ReadAllTextFile
MyTextFile.Write NewContent
MyTextFile.Close
Set MyFileObject = Nothing
%>
Avatar billede stoney96 Nybegynder
08. september 2002 - 00:48 #4
Har du husket linien

Const ForReading = 1, ForWriting = 2, ForAppending = 8

???
Avatar billede george Nybegynder
08. september 2002 - 00:58 #5
Nej det havde jeg glemt, men får nu fejlen: fejl i linje 5 "input efter filens slutning"

og nu ser min kode således ud.

<%
Const ForReading = 1
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
Set MyTextFile=MyFileObject.OpenTextFile(Server.MapPath("menu.mnu"), ForReading)
ReadAllTextFile = MyTextFile.ReadAll
MyTextFile.Close
Set MyFileObject = Nothing

Const ForWriting = 2
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
Set MyTextFile=MyFileObject.OpenTextFile(Server.MapPath("menu.mnu"), ForWriting)
MyNewFirstLine = "Test"
NewContent = MyNewFirstLine & VbCr & ReadAllTextFile
MyTextFile.Write NewContent
MyTextFile.Close
Set MyFileObject = Nothing
%>
Avatar billede george Nybegynder
08. september 2002 - 01:08 #6
Problemet er løst, menu.mnu indeholdt ingenting, så derfor denne fejl.

Men hvorfor laver "VbCr" en firkant efter "test" i teksten i stedet for at skifte linje ?
Avatar billede stoney96 Nybegynder
08. september 2002 - 01:11 #7
Lyder sært, har du prøvet med en tilfældig tekstfil ?
Der er måske et-eller-andet eof-tegn i filen menu.mnu .....
Avatar billede stoney96 Nybegynder
08. september 2002 - 01:13 #8
OK sidste kommentar blev skrevet før ovenstående fra dig....

Prøv at udskifte "VbCr" med "chr(13)" eller "chr(10) & chr(13)"
Avatar billede george Nybegynder
08. september 2002 - 01:18 #9
Hvis jeg bruger chr(10) sker der det samme som med VbCr og hvis jeg bruger chr(10) & chr(13) laver den linjeskrift efter "test", men laver så firkanten i starten af næste linje. Andre forslag ?
Avatar billede george Nybegynder
08. september 2002 - 01:21 #10
Hold kæft hvor er jeg dum. Så nøjes jeg jo bare med chr(10).

Har lige testet det og det virker perfekt.

Tak for hjælpen.
Avatar billede stoney96 Nybegynder
08. september 2002 - 01:27 #11
Velbekomme, rart at kunne hjælpe.

/Steen
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