gpt4 book ai didi

c# - 程序运行三次,得到三种不同的结果

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:31 27 4
gpt4 key购买 nike

我编写了这个程序来将 EDI 文件分割成它们自己的文件,但它并没有始终如一地这样做。有时它会将包含三个部分的文件分成两部分,有时它会找到所有三个部分。

谁能给我解释一下为什么会这样?任何帮助是极大的赞赏。

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

namespace chomp
{
class Program
{
static string GenerateFileName(string context)
{
return context + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".edi";
}
static int Main(string[] args)
{
string delimiter = "\r\n\r\n";
if (args.Length == 0)
{
Console.WriteLine("Please enter a file name: ");
return 1;
}
else
{
try
{
string fileName = (args[0]);
if (File.Exists(fileName)){
System.IO.StreamReader myFile =
new System.IO.StreamReader(fileName);
string FileStream = myFile.ReadToEnd();
myFile.Close();

string myFileName = GenerateFileName("DOC");
string[] FSPart = FileStream.Split(new string[] { delimiter }, StringSplitOptions.None);

foreach (string s in FSPart)
{
string newAwesomeFN = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".edi";
using (System.IO.FileStream fs = System.IO.File.Create(newAwesomeFN))
{
}

System.IO.StreamWriter file = new System.IO.StreamWriter(newAwesomeFN);
file.WriteLine(s);
file.Close();
}
return 0;
} else {
System.Console.WriteLine("Filename "+ fileName+ " does not exist!");
return 0;
} // closes else + if File.Exists
}
catch (System.FormatException)
{
Console.WriteLine("A Filename must be entered!");
return 1;
}
}
} //closes main
} //closes program
} //closes main

最佳答案

运气好的话,它可能多次生成相同的文件名。您的“随机文件名”可能不够随机。尝试使用简单的静态计数器,如

public static int filenumber = 0;

并在每次生成文件名时增加它,而不是使用精度为 fffDateTime*)。这样做并重试运行你的程序。如果是问题所在,它会解决它。

如果这不能解决问题,我会再考虑一下;)

*) 你看,DateTime 实际上每隔一段时间就会刷新一次,比如每隔几毫秒。你的循环肯定循环得更快。它不是“高性能”时间戳。如果您想要更好的“时间戳”,请使用 Stopwatch。它是高性能的,也许不是最好的,但很好。

关于c# - 程序运行三次,得到三种不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202865/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com