Zapis do pliku

0

Jak w C++ Builderze zapisać do pliku dane po naciśnięciu buttona, np z edit albo jakiesc zmiennej string?

0

Na formie umieszczasz komponenty:
TButton, TRichEdit, TSaveDialog

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(SaveDialog1->Execute()){
RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
}
}
[email protected]

0

No coż może to nie jest idealna metoda ale wydaje mi się że jest dość prosta i skuteczna:


#include <fstream.h>

char *dane;
dane =new char[Edit1->Text.Length()+1];
sprintf(dane, "%s", Edit1->Text.c_str());
Edit1->Text = dane; // - to pokarze Ci co zostanie zapisane do pliku - niejest konieczne ale dobre na sprawdzenie czy wszystko poszlo OK, w efekcie pole Edit1 nie powinno się zmienić

ofstream outfile;
outfile.open("data/test.mck", ios::out|ios::app); // tak zrób jeśli chcesz dopisywać do pliku
outfile.open("data/test.mck");  // tak  zrób jeśli pilik ma być tworzony zawsze od nowa
outfile << dane << endl;
outfile.close();
0

Jak juz modzicie ze strumieniami to polecam takze fopen, fclose i fwrite :P

0

Odświeżę watek aby nowego tematu nie zakładać. Mam taki kod:

 void dopisz()
{
     ofstream plik;
     plik.open("dane.txt",ios::out|ios::app );
     cout << "Podaj imie:     ";
     cin >> ps->imie;
     cout << "Podaj nazwisko: ";
     cin >> ps->nazwisko;
     cout << "Podaj wiek:     ";
     cin >> ps->wiek;
     cout << endl;
     plik.close();
}

Jest to funkcja która dopisuje do pliku następne dane osobowe pracownika, przed użyciem tej funkcji mam funkcję która dodaje już np 3 osoby, i nie wiem jak dopisać następna osobę do pliku, zawsze mi nadpisze a nie dopisze ten mój kod. Proszę o pomoc.

0

Ten kod nic nie zapisuje do pliku, więc nie może ci go nadpisać.

0

No to jak mam dopisać do pliku kolejne dane pracownika ?

0

To zależy w jakim formacie zapisujesz ten plik.

0

W formacie txt

0

Musisz pokazać inną funkcje zapisującą lub jakaś odczytująca.
Chodzi o to że jeżeli w pliku najpierw zapisano nazwisko a później imię a odczytujesz w innej kolejności to będą problemy.
Pod formatem pliku ma się na myśli kolejność zapisywanych w nim danych separatory tych danych oraz separatory rekordów.
Txt to tylko rozszerzenie - często nie świadczy o formacie pliku (przynajmniej takie rozszerzenia jak txt lub dat).

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0