16. november 2007 - 13:37
Der er
7 kommentarer og 1 løsning
Lave en header i en tekstfil
Kan man i C# åbne en tekst fil og indsætte en linje øverst oppe?
Annonceindlæg fra Infor
16. november 2007 - 14:03
#1
Du kan jo lave et string array hvor du indsætter den ønskede linie og derefter indlæser dem som allerede er i din txt fil og så til sidst skriver hele arrayet ud i filen.
16. november 2007 - 14:18
#2
Måske noget i stil med: ArrayList lines = new ArrayList(); lines.Add("HEADER"); //Hent fil ind FileStream oFs; StreamReader oSr; string str; string basefolder = Environment.CurrentDirectory; string file = basefolder + "\\MyFile.txt"; oFs = new FileStream(file, FileMode.Open, FileAccess.Read); oSr = new StreamReader(oFs, Encoding.Default); str = oSr.ReadLine(); while(str != null) { lines.Add(str); str = oSr.ReadLine(); } oFs.Close(); //Skriv fil string basefolder = Environment.CurrentDirectory; file = basefolder + "\\MyFile.txt"; FileStream oFse; StreamWriter oSw; oFse = new FileStream(file, FileMode.Create, FileAccess.Write); oSw = new StreamWriter(oFse, Encoding.Default); for(int i = 0; i < lines.Count; i++) { oSw.WriteLine(lines[i].ToString()); } oSw.Flush(); oSw.Close();
16. november 2007 - 16:23
#3
eller sådan her string file = System.IO.File.ReadAllText("c:\fil.txt"); System.IO.File.WriteAllText("c:\fil.txt",string.Format("{0}"+ file, "HEADER")); utestet men det burde virke!
16. november 2007 - 16:26
#4
I det før skal du lige have @ foran stien til filen. ellers sådan string file = System.IO.File.ReadAllText(@"c:\fil.txt"); System.IO.StreamWriter writer = new System.IO.StreamWriter(@"c:\fil.txt",false); writer.Write(string.Format("{0}"+ file, "HEADER")); writer.Close();
17. november 2007 - 02:26
#5
Det er ikke muligt at sætte ind i toppen (eller i midten) af en sekventiel fil. Filen skal genskrives. Hvis filen ikke er alt for stor tror jeg at kalps kode er optimal. Hvis filen er stor bør man have en løkke hvor man læser og skriver.
02. december 2007 - 10:24
#6
Hej, tak for alle ideerne, jeg kom lige væk fra det, havde lige en uge med 3 skriftelige eksamener - det ødelægger ligesom arbejdsrytmen lidt... :) Men jeg kaster mig over projektet igen i morgen, så skal jeg nok vende tilbage... //MG
17. december 2007 - 16:03
#7
Tak for hjælpen :) Jeg har gjort som mikkel forslog og det virker som det skal... Så smid et svar og du skal få dine points...
17. december 2007 - 16:10
#8
Velbekommen :-)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.