[VC++2005] Savefile (pour Nico-pyright(c))..[grand débutant]
Bonjour
Je testais un de vous programme permettant de sauvegarder un fichier texte.
J'ai bien compris le code (en même temps c'est pas trop compliqué) ...mais bref ça compile bien, j'entre un texte dans le richtextbox, que clique sur boutton1 mais au moment où je clique sur "ok" dans le messsage box sauvegarder, j'ai l'exception suivante :
Citation:
An unhandled exception of type 'System.NullReferenceException' occurred in System.Windows.Forms.dll
Additional information: Object reference not set to an instance of an object.
8O euh là je beug complètement
Je comprends pas pourquoi ????!!! Si vous avez des réponses je suis preneur !
je vous remets le code du fichier form1.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
#pragma once
namespace sauver {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::IO;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::RichTextBox^ richTextBox1;
protected:
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::SaveFileDialog^ saveFileDialog1;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// richTextBox1
//
this->richTextBox1->Location = System::Drawing::Point(45, 171);
this->richTextBox1->Name = L"richTextBox1";
this->richTextBox1->Size = System::Drawing::Size(176, 56);
this->richTextBox1->TabIndex = 0;
this->richTextBox1->Text = L"";
//
// button1
//
this->button1->Location = System::Drawing::Point(108, 123);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(97, 26);
this->button1->TabIndex = 1;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Controls->Add(this->button1);
this->Controls->Add(this->richTextBox1);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
// Demande de confirmation
if (MessageBox::Show(this,
"Sauvegarder le document?",
"Sauvegarde",
MessageBoxButtons::YesNo,
MessageBoxIcon::Question) == Windows::Forms::DialogResult::No)
return;
// Sauvegarde du document
saveFileDialog1->Title = "Sauvegarde";
saveFileDialog1->DefaultExt = "txt";
saveFileDialog1->Filter = "fichiers textes (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";
saveFileDialog1->FilterIndex = 1;
// Ouverture boite de dialogue Enregistrer
if (saveFileDialog1->ShowDialog(this) == Windows::Forms::DialogResult::OK)
{
// StreamWriter pour écrire dans le fichier sélectionné
IO::StreamWriter ^sw = gcnew IO::StreamWriter(saveFileDialog1->OpenFile(), System::Text::Encoding::Default);
try
{
for (int i=0; i<richTextBox1->Lines->Length; i++)
sw->WriteLine(richTextBox1->Lines[i]);
}
finally
{
// Fermeture writer
if (sw!=nullptr)
sw->Close();
}
}
}
};
} |
merci à toi
ps : merci pour les liens cf : bouton parcourir