Jag har ett projekt dör jag testar kod för att lära mej mer. Är filen som du ska läsa kodad i UTF8? OpenText antar nämligen att filen är kodad i just UTF8. Jag har skapat min text fil i anteckningar, jag vet inte vad det är för format. UTF-8 är ett sätt att koda en text på. Ett annat sätt är det gamla ascii (7 bitar), eller så kan man köra med ISO-8859-1 som är västeuropeisk kodning. Anteckningar sparar, om jag minns rätt, som standard i ISO-8859-1 (eller vad man nu har som standard på sitt windows) medan .net som standard kör på utf-8. Utf-8 är för övrigt ett sätt att koda unicodetext på. Utf-8 ser rent binärt ut på samma sätt som på ascii på de "lägre" bokstäverna. När sedan t.ex. åäö ska in så kodas det annorlunda. Därav att åäö ser konstigt ut/försvinner. windows har väl (i sin stora vishet) ännu ett eget sätt, cp1252 om jag inte minns fel som standard. Möjligt; i "min" notepad har jag ansi samt lite unicode-mojs Tack för alla svar och all undervisning jag fått i detta ämne.Var tog åäö vägen när jag läser in från filen
nu råkade jag ut för ett konstigt fenomen, alla svänska tecken försvinner när jag läser från en textfil men det gör det inte när jag läser från en annan.
Här är koden när det fungerar:
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Dim SR As StreamReader 'skapa läsar objekt
If FinsFilen() Then
TextBox4.Text = ""
SR = File.OpenText("C:\Documents and Settings\Torgny\Skrivbord\" & TextBox1.Text & ".txt") 'öppnar filen
TextBox4.Text = SR.ReadToEnd()
SR.Close()
MsgBox("all text är in läst")
End If
End Sub
Och här är koden när de vrenska tacknen försvinner:
Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
Dim SR As StreamReader 'skapa läsar objekt
Dim FilNamn As String = "konton\RegMedV.txt" 'filens namn ink. sökväg
Dim FilTexten As String = "" 'hela texten läses in i denna variabel
Dim Rader As Integer = 0 'för att räkna fram radantalet i filen
Dim SokRes As Integer = 1 'sökresultatet när nya rader letas fram i filen
Dim FilRad1() As String 'araay som delat på alla poster i rad ett
If File.Exists(FilNamn) Then
'Läser in filen om den finns
'MsgBox("filen finns")
SR = File.OpenText(FilNamn) 'öppnar filen med detta namn ink.sökväg
FilTexten = SR.ReadToEnd()
SR.Close()
'MsgBox("all text är in läst")
MsgBox(FilTexten) 'letar fel varför och var svänska tecken försvinner REDAN HÄR HAR DE FÖRSVUNNIT
'-DELA UPP FILEN I RADER
'1 räkna rader
Do
SokRes = InStr(SokRes, FilTexten, vbCr, CompareMethod.Binary)
If SokRes > 0 Then
Rader = Rader + 1
SokRes = SokRes + 1
End If
Loop Until SokRes = 0
'2 dimonsionera vektor och fyll den, lägg varje rad i en egen pos i en araay
ReDim FilAraay(Rader - 1) 'skapad i den skenerella delen för att når från flera prosedurer
FilAraay = Split(FilTexten, vbCrLf)
MsgBox(FilAraay(0)) 'letar fel varför och var svänska tecken försvinner
'3 dimonsionera vektor och fyll den, lägg rad 1 uppdelad i en egen araay
ReDim FilRad1(Rader - 2)
FilRad1 = Split(FilAraay(0), ",")
MsgBox(FilRad1(0)) 'letar fel varför och var svänska tecken försvinner
'4 ladda ComboBox med alternativen
ComboBox1.Items.AddRange(FilRad1)
Else
'om filen saknas
MessageBox.Show("Filen """ & FilNamn & """ kann inte hittas!" & vbCrLf & "Formuläret öppnas utan vissa fungtioner.", "Felmedelande", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
End If
End Sub
Det som skiljer vad jag ser skälv är att i ena tillfället har jag en relativ sökväg men inte i den andra.
Vad är det för fel?
TorgnySv: Var tog åäö vägen när jag läser in från filen
Sv:Var tog åäö vägen när jag läser in från filen
jag har också testat att öppna lite andra text filer.
filer som met program skapat skälv öppnas med svenska tecken.
filer som jag skapat med anteckningar öppnas utan svenska tecken.
sedan hittade jag en txt-fil som ett installationsprogram skapat och den filen hittade den inte ens.
resultatet ändras inte om jag går in och redigerar texten med anteckningar i någon av filerna.
Låter detta som ett UTF8 fenomen? Vad är UTF8? Hur går jag runt detta problem?
TorgnySv: Var tog åäö vägen när jag läser in från filen
Sv:Var tog åäö vägen när jag läser in från filen
I alla fall save as dialogen i notepad har en Encoding box..Sv: Var tog åäö vägen när jag läser in från filen
Sv:Var tog åäö vägen när jag läser in från filen
Tack från
Torgny