WIN32 api Datei lesen ( windows applikation)

...komplette Frage anzeigen

1 Antwort

Ja, das ist doch korrekt so. Inwiefern geht denn das in Ihrer Nicht-Konsolen-Anwendung nicht? Ob Konsole oder nicht sollte auf SOWAS überhaupt keinen Einfluß haben!

in mein prog.c bei void MainWndProcOnCommand(...) case DATEIOEFFNEN :

    OpenFileName (dateiname , sizeof (dateiname));

    printf("\nEs soll die Datei \n %s \n geoeffnet werden " , dateiname);

    break;

**in prototypen.h **

int OpenFileName ( char *buffer , int buflen);

in unterprogramm.c

int OpenFileName (char *buffer , int buflen)

{

char tmpfilter [200];

int i = 0;

OPENFILENAME ofn;

memset (&ofn , 0 , sizeof(ofn));

ofn.lStructSize = sizeof (ofn);

ofn.hInstance = GetModuleHandle ( NULL);

ofn.hwndOwner = GetActiveWindow();

ofn.lpstrFile = buffer;

ofn.nMaxFile = buflen;

ofn.lpstrTitle = " Datei öffnen";

ofn.nFilterIndex = 4;

ofn.lpstrDefExt = "vda" ;

strcpy (buffer , "*.vda");

strcpy (tmpfilter , " All Files , .");

while (tmpfilter [i] )

{
    if (tmpfilter [i] == ',')

   tmpfilter [i] = 0 ;

   i++;


}

tmpfilter [i++]=0 ; tmpfilter [i++]=0 ;

ofn.Flags= 539678;

ofn.lpstrFilter = tmpfilter;

return GetOpenFileName (&ofn);

}

0
@redeff

die datei ist bereit offen , aber ich kann nich nicht ablesen mit Consolebefehl

dateiname = fopen (......"r") / weil die bereit offen ist

0
@redeff

Das OpenFileName ist ja nun lediglich die Vorbereitung zum Dateilesen mit der Bestimmung des Dateinamens.

Das Dateilesen selbst muß ja auch noch umgesetzt werden. Und da kommt das fopen zum Einsatz.

Wenn das sich weigert, ein Öffnen zuzulassen - und das auch noch mit einer Fehlermeldung von wegen daß die Datei schon offen wäre - dann muß da schon was dran sein: Hast Du diese Datei eventuell irgendwo anders zum schreiben geöffnet? Eventuell in einem Editor? (Mehrfach zum Lesen zu öffnen ist normalerweise kein Problem...)

0
@WhiteGandalf

mir dem fopen kommt die fehlermeldung

"messing prototype for OpenFileName"

"too many arguments to fopen"

0
@redeff

Trenn mal die beiden paar Schuhe! Mach erstmal einen Fehler weg, bevor Du den nächsten angehst!

Vorschlag: Zum testen des fopen legst Du einen Dateinamen - am besten den von GENAU DERSELBEN Datei, die Du AUCH mit dem Datei-Öffnen-Dialog greifen willst - einfach mal als Stringkonstante fest! Dann sind von daher zumindest erstmal Fehler ausgeschlossen!

Dann nimmst Du Deinen Code mit dem fopen, prüfst, ob der die Datei öffnen kann, und zeigst den bei Bedarf hier mal vor!

(Bei fopen "too many arguments" zu haben mutet ganz schön seltsam an! Zeige den KONKRETEN Code mal her, dann sehen wir weiter...)

0

Was möchtest Du wissen?