Arbeiten mit einer geöffneten Datei in C
-
Hallo,
ich bin ein Anfänger , muss aber eine Aufgabe schnell erledigen und ich bitte euch um Rat.Ich öffne eine Datei ( C Weise) und ich versuche etwas daraus zu lesen und ein Caption für ein Label zu ändern. Beim compilieren- kein Problem. Wenn das Programmchen ausgeführt wird bricht es ab und zeigt mir den Debugger. Damit kann ich nichts anfanfen, weil ich halt ein Anfänger bin. Hier ist der Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char line[15],cale[20];
String fname;
FILE *f;
fname=OpenDialog1->FileName ;
strcpy(cale,fname.c_str());
f = fopen(cale,"r");
Label3->Caption="Es geht";
fclose(f);
}Solange ich die Datei nicht öffne funktioniert das. Kann jemand mir dabei helfen?
Vielen Dank!
-
Mal abgesehen, dass ich nicht verstehe, warum Du alte C-Funktionen verwendest.
Vermutlich ist der Dateiname länger als 19 Zeichen. Schon mal überpfrüft, was in fname steht?
-
Du brauchst nicht erst den Dateinamen zu kopieren:
f = fopen(OpenDialog1->FileName.c_str(),"r");Besser wären aber die C++ Streams
#include <fstream> std::ifstream f(OpenDialog1->FileName.c_str());P.S. Im Dateinamen steckt auch der komplette Pfad der Datei, daher kracht es bei dir...
-
Ja, ich benutze C, weil ich Teile des Programms schon mal geschrieben habe und weil ich noch wenig Ahnung von c++ habe.
Allerdings die Datei wird geöffnet und ich kann daraus lesen. Was nicht funktioniert, solange die Datei offen ist, ist Eigenschaften wie z.B. Caption zu ändern.
Ich wollte auch die File Pointer als globale Variabel benutzen und ich habe FILE *f unter den "include" statements deklariert. Es hat aber nicht geklappt.
Wahrscheinlich muss ich noch viel mehr lesen bis ich das Problem im Griff habe.
Ich werde mal mit Streams versuchen.
Vielen Dank euch alle