Har ett problem när jag läser och skriver till en textfil. Hej Hittade lösningen själv. Ledsen Cecilia. Hann inte se ditt svar innan jag skrev, men så kan man också göra. Får prova det nästa gång jag fastnar. Tips: Skippa FileSystemObject. Om inte annat så för att det är knöligt och ger dålig prestandaStringCollection + Skräptecken
Jag läser in 2 rader som jag lägger på olika platser i en StringCollection på platserna 0,1.
Raderna som läses in är:
Sökvägen till var statistikfilen kommer att hamna:
DATA_PATH = c:\document and setting\Mina dokument
Sen läser jag en sträng från en textbox och dess innehåll ska skrivas i variabeln DATA_PATH. Jag byter helt enkelt ut det som står i StringCollection.
Allt detta fungerar fint. Dock är det så att när jag sedan öppnar text-filen så innehåller den mängder med skräptecken. Se exempel nedan:
"Sökvägen till var statistikfilen kommer att hamna"
För varje körning läggs nya skräptecken till.
För att läsa text-filen använder jag:
o_inputFile = CreateObject("Scripting.FileSystemObject")
o_inputFile = o_inputFile.opentextfile(cmdLine)
s_tempString = o_inputFile.readLine()
För att skriva till text-filen använder jag FileStream/StreamWriter/WriteLine
Jag gissar att det är det svenska språkets härliga Å,Ä,Ö som ställer till det hela, men kan man någonstans ställa så att den klarar av att läsa in dessa tecken.
Jobbar i Visual Studio 2005.Sv: StringCollection + Skräptecken
Varför använder du inte samma metod för att läsa filen som du använder för att skriva?
använd FileStream, StreamReader för läsningen så kommer det nog blir rätt.
Ett tips är att du skippar FileStream helt och använder File klassen istället, när det är så enkelt innehåll som här. Den har en enkel funktion för att läsa och skriva rader.
Dim filText As String() = System.IO.File.ReadAllLines("minfil.txt")
System.IO.File.WriteAllLines("minfil.txt", filText)
Sv: StringCollection + Skräptecken
Genom att i StreamWriter ange Encoding.Default tar den de språkinställningar som jag har i min dator.
Exempel:
Dim fq As New FileStream(s_IniFilen, FileMode.Create, FileAccess.Write)
Dim sw As New StreamWriter(fq, System.Text.Encoding.Default)Sv:StringCollection + Skräptecken
Sv: StringCollection + Skräptecken