J'ai créé un programme pour créer des bogues et j'ai un problème avec le texte qui n'est pas sauvegardé correctement.La rupture de fichier texte s'aligne lors de l'ouverture à l'aide de ReadAllLines() C#
Je dispose d'un fichier texte appelé TemplateTexts qui détient tout le texte pour chaque modèle, un modèle ressemble à ceci -
REQUIREMENTS
- Example
ADDITIONAL REQUIREMENTS
- Example
- Example
-----COPY BELOW THIS LINE-----
Lorsque le programme ferme il copie tout cela en 1 ligne d'un fichier texte. (ressemble à ceci)
REQUIREMENTS- Example ADDITIONAL REQUIREMENTS- Example - Example-----COPY BELOW THIS LINE-----
Le fichier texte contient 20 lignes de modèles. Le modèle est enregistré en tant que 1 ligne de texte dans le fichier texte, mais quand je vais à nouveau ouvrir le programme, il transforme cette ligne de texte en plusieurs lignes de texte comme la façon dont il est affiché dans le premier exemple.
Une idée pourquoi cela pourrait-il se produire? ou est-il un meilleur moyen de sauvegarder chaque modèle dans un fichier texte, éventuellement en le séparant avec des drapeaux ou quelque chose?
Voici le code à mon programme:
public partial class Form1 : Form
{
static String buttonNamesPath = AppDomain.CurrentDomain.BaseDirectory + "/ButtonNames.txt";
String[] ButtonNames = System.IO.File.ReadAllLines(buttonNamesPath);
static String buttonTextPath = AppDomain.CurrentDomain.BaseDirectory + "/ButtonText.txt";
String[] ButtonText = System.IO.File.ReadAllLines(buttonTextPath);
private void SetupTextField()
{
comboBox1.Items.Clear();
comboBox2.Items.Clear();
for (int i = 0; i < ButtonNames.Length; i++)
{
comboBox1.Items.Insert(i, ButtonNames[i]);
comboBox2.Items.Insert(i, ButtonNames[i]);
}
}
public Form1()
{
InitializeComponent();
this.FormClosing += this.Form1_FormClosing;
}
private void Form1_Load(object sender, EventArgs e)
{
SetupTextField();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string comboBoxText;
comboBoxText = comboBox1.SelectedItem.ToString();
int strNumber;
int strIndex = 0;
for (strNumber = 0; strNumber < ButtonNames.Length; strNumber++)
{
strIndex = Array.FindIndex(ButtonNames, x => x.Contains(comboBoxText));
if (strIndex >= 0)
break;
}
ButtonNames[strIndex] = textBox1.Text;
ButtonText[strIndex] = richTextBox2.Text;
SetupTextField();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
System.IO.File.WriteAllLines(buttonNamesPath, ButtonNames);
System.IO.File.WriteAllLines(buttonTextPath, ButtonText);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
richTextBox1.Text = "";
}
private void button2_Click(object sender, EventArgs e)
{
string comboBoxText;
comboBoxText = comboBox2.SelectedItem.ToString();
int strNumber;
int strIndex = 0;
for (strNumber = 0; strNumber < ButtonNames.Length; strNumber++)
{
strIndex = Array.FindIndex(ButtonNames, x => x.Contains(comboBoxText));
if (strIndex >= 0)
break;
}
richTextBox1.Text = ButtonText[strIndex];
}
private void label3_Click(object sender, EventArgs e)
{
}
}
J'ai aussi 2 fichiers texte appelés ButtonNames.txt et ButtonText.txt
Décrivez comment vous émettez dans le fichier des sauts de ligne s'il vous plaît. –
"Quand le programme se ferme": Quel programme? Le vôtre ou le bloc-notes? À quoi ressemble votre code pour écrire le fichier? En fait, en y réfléchissant, pouvez-vous décrire en termes simples et courts ce que vous entendez par "un bloc-notes"? Est-ce une fenêtre avec une icône bleue dans le coin supérieur gauche? –
Je n'arrive pas à l'obtenir ... Le bloc-notes est-il incorrect ou votre application ne fonctionne pas correctement? – jcvegan