簡體   English   中英

C# 文件 output 打印超過 1 次

[英]C# file output prints more than 1 time

我有這個代碼:Class:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CTesteM7
{
    internal class Borboletas
    {
        public string nomeAmigo { set; get; }
        public string nomeEspecie { set; get; }
        public int envergadura { set; get; }
        public int b { set; get; }
        public string classificacao { set; get; }
        public int quantidade { set; get; }
        public string pathInput { set; get; }
        public string pathOutput { set; get; }
    }
}

主要的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace CTesteM7
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Lista / Classe
            List<Borboletas> borboletas = new List<Borboletas>();
            Borboletas dados = new Borboletas();

            //Pedir ao utilizador o ficheiro de input
            Console.Write("Nome do ficheiro de input: ");
            dados.pathInput = Console.ReadLine();

            //Verificar se o ficheiro existe
            if (File.Exists(dados.pathInput))
            {
                //Ler o ficheiro
                StreamReader srf = new StreamReader(dados.pathInput);
                while (!srf.EndOfStream)
                {
                    // Buscar a linha do numero ou seja q n contem ;
                    var linha = srf.ReadLine();

                    if (!linha.Contains(';'))
                    {
                        dados.b = int.Parse(linha);
                    }
                    else
                    {
                        string[] strArray;
                        strArray = linha.Split(';');
                        dados.nomeEspecie = strArray[1];
                        dados.envergadura = Convert.ToInt32(strArray[2]);
                        borboletas.Add(dados);

                        //Ficheiro de output
                        dados.pathOutput = @"Output.txt";
                        StreamWriter swo = new StreamWriter(dados.pathOutput, append: true);
                        swo.WriteLine(dados.b);
                        //Verificações da classificação das borboletas e escrever para o ficheiro

                        if (dados.envergadura >= 0 && dados.envergadura <= 50)
                        {
                            dados.classificacao = "Pequena";
                            swo.WriteLine(dados.nomeEspecie + ":" + dados.classificacao);
                        }
                        else if (dados.envergadura >= 51 && dados.envergadura < 70)
                        {
                            dados.classificacao = "Grande";
                            swo.WriteLine(dados.nomeEspecie + ":" + dados.classificacao);
                        }
                        else if (dados.envergadura >= 70)
                        {
                            dados.classificacao = "Gigante";
                            swo.Write(dados.nomeEspecie + ":" + dados.classificacao);
                        }
                        else
                        {

                            Console.WriteLine("Erro");
                        }
                        swo.Close();
                    }

                }


                //Confirmação
                Console.WriteLine("\nOperação realizada com sucesso");
                Console.ReadKey();

                //Fechar os ficheiros
                srf.Close();


                //Adicionar os dados na lista
                borboletas.Add(dados);
            }
            else
            {
                //Caso o ficheiro não exista mostrar erro 
                Console.WriteLine("O ficheiro pedido não existe, insira um nome válido\n");
            }


        }
    }
}

我想將文件中的數據打印到 output 文件,但變量 dados.b(它的數字 3)打印 3 次到 output 文件,每次我運行程序時它都會添加每次新文本,但我不希望文本重復它自我, output 文件圖像

有誰知道是什么問題? 謝謝

swo.WriteLine(dados.b);

它在 while 循環中,因此您將執行 3 次,您可以添加一個帶有計數的標志以僅執行一次或將其從 while 循環中取出!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM