Avatar billede trine_h Nybegynder
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?
Avatar billede finger Nybegynder
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.
Avatar billede taxdaddy Nybegynder
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)
Avatar billede arne_v Ekspert
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 ?
Avatar billede trine_h Nybegynder
19. oktober 2003 - 17:14 #4
filen er skrevet i notepad!
Avatar billede finger Nybegynder
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();
        }
    }
}
Avatar billede finger Nybegynder
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.
Avatar billede trine_h Nybegynder
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?
Avatar billede trine_h Nybegynder
19. oktober 2003 - 18:32 #8
okey det fandt jeg ud af!
Avatar billede trine_h Nybegynder
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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester