Zmiana formatu kodowania wyjściowego pliku txt w programie

Forum poświęcone językowi C#.

Moderator: xxSlayeRxx

Zmiana formatu kodowania wyjściowego pliku txt w programie

Sponsor

Sponsor
 

Zmiana formatu kodowania wyjściowego pliku txt w programie

Postprzez szumo22 » Pt wrz 09, 2016 9:11 am

Witam,
Na miałem obecnie zadanie stworzyć program który będzie scalał pliki txt w jedną całość. Mniej więcej mi wyszło, jednak jak się teraz okazuje wygenerowany scalony plik txt nie ma odpowiedniego kodowania 65001 unicode UTF8, które jest potrzebne aby dane z tego pliku zostały poprawnie zinterpretowane przez Excela. Excel interpretuje to jako kodowanie 28592 środkowo-europejski ISO.
Kod: Zaznacz cały
private void scalanie()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            for (int nCount = 0; nCount < CorrectFileList.Length; nCount++)
            {
                sb.AppendLine(System.IO.File.ReadAllText(CorrectFileList[nCount], System.Text.Encoding.UTF8));
            }
            string output = sb.ToString();
            File.WriteAllText(name, output, System.Text.Encoding.UTF8);
            string word = "<";
            progressBar1.Minimum = 0;
            progressBar1.Maximum = CorrectFileList.Length - 1;
            //Szukanie znaku < i usuwanie wierszy
            for (int i = 0; i < CorrectFileList.Length; i++)
            {
                szukanie(word, i);
            }
            MessageBox.Show("Utworzono plik " + name, "Raport Maker");
            progressBar1.Value = 0;
            czynadpisac = false;
        }

Kod: Zaznacz cały
private void szukanie(string word, int i)
        {
            //Wyświetlanie procentowego postępu progress bar
            progressBar1.Value = i;
            int percent = (int)(((double)progressBar1.Value / (double)progressBar1.Maximum) * 100);
            progressBar1.CreateGraphics().DrawString("Postęp: " + percent.ToString() + "%", new System.Drawing.Font("Arial", (float)8.25, System.Drawing.FontStyle.Regular), System.Drawing.Brushes.Black, new System.Drawing.PointF(progressBar1.Width / 2 - 30, progressBar1.Height / 2 - 7));
 
            //Analizowanie scalonego pliku w celu usuwania wierszy
            TextReader tr = new StreamReader(name);
            string poczytane = tr.ReadToEnd();
            tr.Close();
            TextWriter tw1 = new StreamWriter(name);
 
            if (poczytane.Contains(word))
            {
                int a = poczytane.IndexOf(word);
                string nowy;
                if (a == 0) nowy = poczytane.Remove(a, 41);
                else nowy = poczytane.Remove(a - 4, 42 + 110);
                tw1.Write(nowy);
            }
            tw1.Close();
            progressBar1.Refresh();
        }


Jest może ktoś w stanie powiedzieć mi co musiałbym zmienić aby program wygenerował plik txt w danym formacie? Dodam że przy poprzedniej wersji tego programu, którą robiłem na laptopie z praktyk, program generował plik w dobrym formacie, ale wtedy był mniejszy zakres usuwania znaków we wierszu
else nowy = poczytane.Remove(a - 4, 42 + 110);
A taki zakres już poprawiłem na swoim własnym laptopie.
szumo22
New member
 
Posty: 6
Dołączył(a): Pn cze 02, 2014 9:08 am

Zmiana formatu kodowania wyjściowego pliku txt w programie

Sponsors

Sponsor
 

Powrót do C#

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości

cron