Das Programm:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Ueb1_Unit1.h"
#include "stdio.h"
#include <sys/stat.h>
#include <io.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
int Datenzeiger=0;
bool fileexists=false;
FILE *meineDatei;
int timer = 1;
int zahl;
int temp=0;
int tempp=0; // alle variablen verändern!!!!!!!
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
meineDatei=fopen("ueb1.dat","r+b");
if (meineDatei == NULL)
btnLesen->Enabled = false;
else{fileexists=true;}
}
//---------------------------------------------------------------------------
__fastcall TfrmMain::~TfrmMain() {
fclose(meineDatei);
}
void __fastcall TfrmMain::btnSchreibenClick(TObject *Sender)
{
if(fileexists){
Reset();
}
fseek(meineDatei,0,SEEK_SET);
int zahl=StrToInt(edtDaten->Text);
fwrite(&zahl,sizeof(zahl),1,meineDatei);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnLesenClick(TObject *Sender)
{
Reset();
Memo1->Clear();
struct stat Status;
stat("ueb1.dat", &Status);
int FSize=Status.st_size;
for(int i=0;i<FSize/sizeof(zahl);i++){
fread(&zahl,sizeof(zahl),1,meineDatei);
if(zahl!=0){
Memo1->Lines->Add(zahl);
timer++;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action)
{
fclose(meineDatei);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
fclose(meineDatei);
DeleteFile("ueb1.dat");
meineDatei=fopen("ueb1.dat","a+b");
Reset();
}
//---------------------------------------------------------------------------
void TfrmMain::Reset(){
fclose(meineDatei);
meineDatei=fopen("ueb1.dat","a+b");
btnLesen->Enabled = true;
}
void __fastcall TfrmMain::UpDown1ChangingEx(TObject *Sender,
bool &AllowChange, short NewValue, TUpDownDirection Direction)
{
struct stat Status;
stat("ueb1.dat", &Status);
int FSize=Status.st_size;
if(NewValue<=UpDown1->Max && NewValue>0)
{
switch (Direction)
{
case updUp :
if(temp<=FSize){
fseek(meineDatei,temp,SEEK_SET);
fread(&zahl,sizeof(zahl),1,meineDatei);
tempp = sizeof(zahl);
temp += sizeof(zahl);
Edit1->Text=zahl;
break;
}
case updDown :
if(ftell(meineDatei)>4){
temp -=tempp;
fseek(meineDatei,temp-tempp,SEEK_SET);
fread(&zahl,tempp,1,meineDatei);
Edit1->Text=zahl;}
}
}
}
//---------------------------------------------------------------------------
Quelltext/Headerdatei
//---------------------------------------------------------------------------
#ifndef Ueb1_Unit1H
#define Ueb1_Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TfrmMain : public TForm
{
__published: // Von der IDE verwaltete Komponenten
TButton *btnSchreiben;
TButton *btnLesen;
TEdit *edtDaten;
TMemo *Memo1;
TButton *Button1;
TUpDown *UpDown1;
TEdit *Edit1;
void __fastcall btnSchreibenClick(TObject *Sender);
void __fastcall btnLesenClick(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall Button1Click(TObject *Sender);
void __fastcall UpDown1ChangingEx(TObject *Sender,
bool &AllowChange, short NewValue, TUpDownDirection Direction);
private: // Anwender-Deklarationen
public: // Anwender-Deklarationen
void Reset();
__fastcall TfrmMain(TComponent* Owner);
__fastcall TfrmMain::~TfrmMain();
};
//---------------------------------------------------------------------------
extern PACKAGE TfrmMain *frmMain;
//---------------------------------------------------------------------------
#endif
Das ist ein nettes Programm zum Speichern und Entfernen von Textdateien.
Nun möchte ich dieses Programm noch verbessern, indem ich es in Klassen schreiben. Natürlich habe ich es schon vorher probiert. Doch ging es nicht wirlich. Es kamen dauernt i.welche Fehlermeldungen. Könnte bitte einer von euch mir helfen und sagen, wodrauf ich achten muss. Oder vllt könnte von euch auch einer einen keinen quelltext zur hilfe geben.
mfg
peter