OOPOberflächenprogrammierung: Adressverwaltungsproblem!
-
Nabend!
Ich habe hier ein Problem mit einem Adressverwaltungsprogramm.
Das Problem sind die Vor/Zurück-Buttons.
Das Programm liest die Adresse aus einer Textdatei aus.
Ich habe es aber nicht geschafft einen nächsten Datensatz anzeigen zu lassen,sondern immer nur den ersten.Gegeben sind 5 Editfelder, Name,Adresse etc...und halt die 2 Buttons (ein paar Label->eher unwichtig,da Caption = Vorname,Name etc)
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "stdio.h" #include "stdlib.h" #include "conio.h" #include "Adresse.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::ffnen1Click(TObject *Sender) { FILE *fp1; char oneword[100]; char *c; /* Datei oeffnen */ OpenDialog1->Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; OpenDialog1->Execute(); fp1 = fopen(OpenDialog1->Files->Strings[0].c_str(), "r"); if (fp1 == NULL) { ShowMessage ("Fehler beim Öffnen von:" + OpenDialog1->Files->Strings[0]); } else { fgets(oneword,100,fp1); Edit1->Text = oneword; fgets(oneword,100,fp1); Edit2->Text = oneword; fgets(oneword,100,fp1); Edit3->Text = oneword; fgets(oneword,100,fp1); Edit4->Text = oneword; fgets(oneword,100,fp1); Edit5->Text = oneword; fclose(fp1); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Beenden1Click(TObject *Sender) { exit(0); } //--------------------------------------------------------------------------- void __fastcall TForm1::Speichern1Click(TObject *Sender) { FILE *fp1; char oneword[100]; char *c; /* Datei oeffnen */ SaveDialog1->Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; SaveDialog1->Execute(); fp1 = fopen(SaveDialog1->Files->Strings[0].c_str(), "w"); if (fp1 == NULL) { ShowMessage ("Fehler beim Speichern von:" + SaveDialog1->Files->Strings[0]); } else { strcpy(oneword,(Edit1->Text+"\n").c_str()); fputs(oneword,fp1); strcpy(oneword,(Edit2->Text+"\n").c_str()); fputs(oneword,fp1); strcpy(oneword,(Edit3->Text+"\n").c_str()); fputs(oneword,fp1); strcpy(oneword,(Edit4->Text+"\n").c_str()); fputs(oneword,fp1); strcpy(oneword,(Edit5->Text+"\n").c_str()); fputs(oneword,fp1); fclose(fp1); } } //---------------------------------------------------------------------------
-
Wenn du die Datei öffnest, steht der Lesezeiger automatisch am Dateianfang - wenn dir das nicht gefällt, mußt du ihn entsprechend weiterschieben (am schnellsten geht das per fseek()).
PS: Übrigens ist es in C++ besser, mit fstream's zu arbeiten als mit FILE*'s.
PPS: Und [cpp]-Tags sind manchmal praktischer als [quote]
