19. oktober 2003 - 17:05
Der er
8 kommentarer og 1 løsning
indlæsning af fil fjerner æ,ø,å
Jeg har et program der indlæser teksten fra en fil - problemet er, at de danske tegn - æ,ø og å fjernes fra teksten hvordan løser jeg dette?
Annonceindlæg fra HP
19. oktober 2003 - 17:14
#1
det skyldes det charset som du anvender med din stream. du skal anvende et sæt der kan tage de danske tegn. Det charset du skal bruge skal som regel stemme overens med det charset som filen er skrevet med, hvis du altså kan finde ud af det.
19. oktober 2003 - 17:14
#2
Det afhænger lidt af hvordan du læser den ind, fx. hvis det er med en streamreader, kan du sætte din encoding til fx System.Text.Encoding.Default, det afhjælper problemet. System.IO.StreamReader("c:\test.txt", System.Text.Encoding.Default)
19. oktober 2003 - 17:14
#3
Hvordan læser du fra filen og hvordan checker du hvad du har læst ? Forsvinder de helt eller bliver de vist som et andet tegn eller som to andre tegn ?
19. oktober 2003 - 17:14
#4
filen er skrevet i notepad!
19. oktober 2003 - 17:21
#5
prøv med de forskellige encodings. tag evt udgangspunkt i dette: ---------------------- using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace WindowsApplication1 { /// <summary> /// Summary description for Form1. /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.TextBox textBox2; /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.Container components = null; public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.textBox1 = new System.Windows.Forms.TextBox(); this.textBox2 = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(112, 136); this.button1.Name = "button1"; this.button1.TabIndex = 0; this.button1.Text = "gem"; this.button1.Click += new System.EventHandler(this.button1_Click); // // button2 // this.button2.Location = new System.Drawing.Point(72, 360); this.button2.Name = "button2"; this.button2.TabIndex = 1; this.button2.Text = "hent"; this.button2.Click += new System.EventHandler(this.button2_Click); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(8, 16); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(376, 96); this.textBox1.TabIndex = 2; this.textBox1.Text = "textBox1"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(8, 240); this.textBox2.Multiline = true; this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(384, 104); this.textBox2.TabIndex = 3; this.textBox2.Text = "textBox2"; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); this.ClientSize = new System.Drawing.Size(648, 480); this.Controls.Add(this.textBox2); this.Controls.Add(this.textBox1); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); } private void button1_Click(object sender, System.EventArgs e) { StreamWriter sw = new StreamWriter("fil.txt", false, System.Text.Encoding.UTF8); sw.Write(textBox1.Text); sw.Close(); } private void button2_Click(object sender, System.EventArgs e) { StreamReader sr = new StreamReader("fil.txt", System.Text.Encoding.UTF8); textBox2.Text = sr.ReadToEnd(); sr.Close(); } } }
19. oktober 2003 - 17:25
#6
en bruger kan selv vælge hvilken encoding filer skal gemmes med i notepad. Default i notepad er ANSI. til dette format kan Encoding.Default bruges.
19. oktober 2003 - 18:18
#7
tak for det. Jeg har lige et tillægs spørgsmål hvis nogen gider hjælpe :) Jeg har en delimiter som bryder teksten op i forhold til kommategn. Problemet er at indlæsning stoppes ved linieskift - hvordan undgår jeg det?
19. oktober 2003 - 18:32
#8
okey det fandt jeg ud af!
19. oktober 2003 - 19:00
#9
jeg har stadig et lille problem med scriptet - filen jeg læser ind består af tekst på en række linier - jeg vil gerne have fjernet alt "white space" og linieskift på outputtet
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.