Jag försöker att läsa in textfil till combobox. Benni, Hej Andreas. Saw,Problem med att läsa in ifrån texfil till combobox
Texfilen kan se ut så här:
<code>
Ä = Ä
ä = ä
Ö = Ö
ö = ö
ß = ß
Ü = Ü
ü = ü
À = À
à = à
É = É
é = é
</code>
Jag läser in så här:
<codesharp>
private void readSpecialTecken()
{
string path = @Application.StartupPath + "\\SpecialTecken\\spec_"+comboBox1.Text.Substring(0,2).ToLower() +".txt";
FileInfo fi1 = new FileInfo(path);
if (fi1.Exists)
{
using (StreamReader sr = fi1.OpenText())
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
comboBox2.Items.Add(s);
}
}
}
}
</code>
..problemet är att jag inte får med det första tecknet (jag vill igenteligen bara ha första tecknet).
Så i comboboxen så blir det så här:
<code>
= Ä
= ä
= Ö
= ö
= ß
= Ü
= ü
= À
= à
= É
= é
</code>
Förslag?Sv: Problem med att läsa in ifrån texfil till combobox
Vääääldigt närma faktiskt. Vad som gör att du inte får med de första tecknena är att <b>fi1.OpenText()</b> metoden returnerar ett <b>StreamReader</b> objekt som använder sig av <b>UTF8</b> encoding (läs mer om detta på nätet) och där finns inte de tecken, som du försöker läsa in,med. En liten förändring (och optimering eftersom du behöver färre objekt och metodanrop) ger
private void readSpecialTecken()
{
string path =
Application.StartupPath + @"\SpecialTecken\spec_"+comboBox1.Text.Substring(0,2).ToLower() +".txt";
if (File.Exists(path))
{
using(StreamReader sr = new StreamReader(path, System.Text.Encoding.UTF7))
{
string s = "";
while ((s = sr.ReadLine()) != null)
comboBox2.Items.Add(s);
}
}
}
Jag tror du fixar att bara hämta ut första tecknet ur strängen va? Såg nämligen att du använder <b>Substring</b> metoden när du bygger sökvägen till rättfil.
//Andreas
Sv: Problem med att läsa in ifrån texfil till combobox
Nja närma duger ju inte :-)
Men tyvärr, nu läser den inte in någonting. Jag har testat att ändra runt på System.Text.Encoding.UTF7, men inget...Sv: Problem med att läsa in ifrån texfil till combobox
Mitt fel!! Hade skrivit fel på namnet på den combobox som information placeras i, det är ändrat i koden ovan nu!
Sorry ! =)
//Andreas