提问人:Edilson Lemos 提问时间:6/24/2023 最后编辑:Edilson Lemos 更新时间:6/26/2023 访问量:155
每当文本文件更改文本中的参数时,请创建一个新的文本文件 c#
Whenever the text file changes a parameter in the text, create a new text file c#
问:
我正在创建一个应用程序,每天我都会通过 URL 收到文本并保存为项目文件夹中的文本文件,但每天都会覆盖文件,我想每天保存一个新文件,例如:2845、2846、2847 等,只有在数字变量更新时才创建一个新文件, 使用“数字”变量,我需要进行搜索并找到引用带有抽奖详细信息的数字的文本文件,但我没有得到它,有人可以帮我吗?我每天只得到一个文件,我使用此代码创建文本
private void Details()
{
List<string> lastSorteio = new List<string>();
string siteLotofacil = @"https://servicebus2.caixa.gov.br/portaldeloterias/api/lotofacil";
var requisition = (HttpWebRequest)WebRequest.Create(siteLotofacil);
requisition.MaximumAutomaticRedirections = 1;
requisition.AllowAutoRedirect = true;
request.CookieContainer = new CookieContainer();
var response = (HttpWebResponse)requisicao.GetResponse();
using (var responseStream = response.GetResponseStream())
{
using (var fileStream = new FileStream(Path.Combine(directory + "C:\\BoaSorte\\currentResult.txt"), FileMode.Create))
{
responseStream.CopyTo(fileStream);
}
}
}
我是这样读的
private void ReadFile()
{
var file = new StreamReader("C:\\BoaSorte\\currentresult.txt", Encoding.UTF8);
stringline;
while ((line = file.ReadLine()) != null)
// Initialize array of 5 sequential integers.
contestlist.Items.Add(line.ToString());
file.Close();
}
我有一个带有变量的 Result 类
public Resultado()
{
this.idLoteria = idLoteria;
this.acumulado = acumulado;
this.dataApuracao = dataApuracao;
this.dataProximoConcurso = dataProximoConcurso;
this.dezenasSorteadasOrdemSorteio = dezenasSorteadasOrdemSorteio;
this.exibirDetalhamentoPorCidade = exibirDetalhamentoPorCidade;
this.id = id;
this.indicadorConcursoEspecial = indicadorConcursoEspecial;
this.listaDezenas = listaDezenas;
this.listaDezenasSegundoSorteio = listaDezenasSegundoSorteio;
this.listaMunicipioUFGanhadores = listaMunicipioUFGanhadores;
this.listaRateioPremio = listaRateioPremio;
this.listaResultadoEquipeEsportiva = listaResultadoEquipeEsportiva;
this.localSorteio = localSorteio;
this.nomeMunicipioUFSorteio = nomeMunicipioUFSorteio;
this.nomeTimeCoracaoMesSorte = nomeTimeCoracaoMesSorte;
this.numero = numero;
this.numeroConcursoAnterior = numeroConcursoAnterior;
this.numeroConcursoFinal_0_5 = numeroConcursoFinal_0_5;
this.numeroConcursoProximo = numeroConcursoProximo;
this.numeroJogo = numeroJogo;
this.observacao = observacao;
this.premiacaoContingencia = premiacaoContingencia;
this.tipoJogo = tipoJogo;
this.tipoPublicacao = tipoPublicacao;
this.ultimoConcurso = ultimoConcurso;
this.valorArrecadado = valorArrecadado;
this.valorAcumuladoConcurso_0_5 = valorAcumuladoConcurso_0_5;
this.valorAcumuladoConcursoEspecial = valorAcumuladoConcursoEspecial;
this.valorAcumuladoProximoConcurso = valorAcumuladoProximoConcurso;
this.valorEstimadoProximoConcurso = valorEstimadoProximoConcurso;
this.valorSaldoReservaGarantidora = valorSaldoReservaGarantidora;
this.valorTotalPremioFaixaUm = valorTotalPremioFaixaUm;
}
答:
2赞
dr.null
6/25/2023
#1
若要在给定目录中每天有一个可以覆盖或追加的文件,请将 DateTime.Today
日期追加到文件名,将目录和文件名追加 Path.Combine 以创建路径,并将 Path.ChangeExtension
追加扩展名。
private string GetFileName()
{
var dir = @"c:\BoaSorte";
var datePart = DateTime.Today.ToString("MMddyyyy");
var fileName = "Result";
var file = Path
.ChangeExtension(Path
.Combine(dir, $"{fileName}{datePart}"), "txt");
return file;
}
若要使用特定模式在每次调用中创建唯一文件,请在循环中连接文件路径,如果文件不存在,则通过调用 File.Exists
方法断开文件路径。
private string GetUniqueFile()
{
var dir = @"c:\BoaSorte";
var suffix = DateTime.Today.ToString("MMddyyyy");
var fileName = "Result";
int fileNum = 1;
string outFile;
while (true)
{
outFile = Path.Combine(dir, $"{fileName}{suffix}{fileNum}.txt");
if (!File.Exists(outFile)) break;
fileNum++;
}
return outFile;
}
更好的是,为此函数使用一个实用程序方法,用于获取和连接文件的各个部分。例如:
internal static class Utils
{
internal static string GetUniqueFile(
string dir,
string fileName,
string suffix,
int seed,
string extension)
{
string outFile;
while (true)
{
outFile = Path
.ChangeExtension(Path
.Combine(dir, $"{fileName}{suffix}{seed}"), extension);
if (!File.Exists(outFile)) break;
seed++;
}
return outFile;
}
}
从你的方法中调用它,如下所示:
private void Details()
{
var lastSorteio = new List<string>();
var siteLotofacil = @"https...";
var file = Utils.GetUniqueFile(
@"c:\BoaSorte", "currentResult", "-", 2846, "txt");
// ...
using (var response = (HttpWebResponse)requisition.GetResponse())
using (var responseStream = response.GetResponseStream())
using (var fileStream = new FileStream(file, FileMode.Create))
{
responseStream.CopyTo(fileStream);
}
}
评论
0赞
Edilson Lemos
6/26/2023
你好 dr.null ,总是感谢您的大力帮助,我重新表述了问题以便您更好地理解,我尝试在 Utils 类中使用它,如下所示 int fileNum = Result.numero;像这样保存它“currentResult-2846.txt”但它不起作用,如果我设法像这样保存它,我将不胜感激,我会自己更正搜索,谢谢
1赞
dr.null
6/26/2023
@EdilsonLemos 现在试试吧,添加了 param。如果这就是你的意思。seed
0赞
Edilson Lemos
6/26/2023
dr.null 再次非常感谢你,它不是我想要的 100%,但它会帮助我,我想用文本文件的“number”变量保存文本,但不要增加 ++,因为每天都有一个“数字”“新的,它是自动的,如果”number“参数更新,我只需要创建第九个文本, 一个拥抱。
1赞
dr.null
6/26/2023
@EdilsonLemos 从哪里来?如果你知道这个数字,那么它就很简单:。假设是类的一个实例。number
var file = Path.Combine(@"c:\BoaSorte", $"currentResult-{Result.numero}.txt");
Result
Resultado
1赞
Edilson Lemos
6/27/2023
该死的!它就在我的脸上!太完美了,我想我会把你的名字作为应用程序的贡献者,呵呵呵,伙计!你几乎完成了一半的代码,非常感谢,没有你,我不会离开,如果你有一个频道,页面,把它放在那里,我会跟着你,一个大大的拥抱
下一个:为文本文件中的每一行添加前缀词
评论
ToString()
line