ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
940
940
EMPFEHLEN
-
11.06.05 15:44 #1
VS .NET 2003
Shell Anwendung
Hallo zusammen,
ich möchte die Einstellungen eines DB-Programms in einer Datei speichern.
Dazu verwende ich folgende Funktion, die beim ausführen einen ZUgriffsfehler verursacht.
Ich hoffe, Ihr könnt mir helfen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
int save_settings() { char name[200]; char over; CLS; printf("Speichern\n==========\n"); printf("Unter welchem namen speichern : "); scanf("%s", &name); if(fopen(name, "r")!=NULL) { CLS; printf("\nDatei '%s' bereits vorhanden! Ueberschreiben? (j/n) ", name); over=tolower(getchar());getchar(); if (over=='n') { CLS; printf("\nSpeichervorgang abgebrochen!.. [RETURN]"); getchar(); return 0; } // CLS; // printf("\nDaten nicht gespeichert! .. [RETURN] "); // getchar(); } fclose(fz); fopen(name,"w"); fwrite(server, sizeof(char), strlen(server), fz); fwrite(user, sizeof(char), strlen(user), fz); fwrite(pass, sizeof(char), strlen(pass), fz); fwrite(db, sizeof(char), strlen(db), fz); fclose(fz); return 1; }
Danke schonmal
-
11.06.05 16:25 #2
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Wo genau tritt den der Zugriffsfehler auf?
Hast du es schonmal Debugt(wird das so geschrieben)?
Außerdem lass mal bai:
das & weg, da es sich bei der Zielvariable um ein Array handelt ist das nicht nötig. Ob es daran liegt weiss ich aber nicht.Code :1
scanf("%s", &name);
mfg
umbrasaxum
-
14.06.05 14:35 #3
Danke für die antwort.
Also am '&' in scanf sollte es nicht liegen, das hat bei mir immer schon funktioniert.
Ich habe es jetzt mal nach Deinem Vorschlag versucht, es funktioniert aber trotzdem nicht.
Der Fehler müsste irgendwo beim FILE *fz Zeiger liegen.
Nachdem ich den fz auf fopen(...) gesetzt habe, bekomme ich jetzt keine Fehlermeldung mehr, wenn ich in eine bereits vorhanden Datei schreiben will. Ein neuer Dateiname ruft aber den gleichen Fehler hervor.
Auslesen kann ich dann aber auch nichts (aber ohne Fehlermeldung).Vielleicht ist aber auch noch ein Fehler in der load function.
Hier mein jetziger Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
int save_settings() { char name[200]; char over; CLS; textcolor(green); printf("Speichern\n"); textcolor(white); printf("==========\n"); printf("Unter welchem namen speichern : "); scanf("%s", &name); if((fz=fopen(name, "r"))!=NULL) { CLS; printf("\nDatei '%s' bereits vorhanden! Ueberschreiben? (j/n) ", name); over=tolower(getchar());getchar(); if (over=='n') { CLS; textcolor(red); printf("\nSpeichervorgang abgebrochen!.. [RETURN]"); textcolor(white); getchar(); return 0; } CLS; printf("\nDaten nicht gespeichert! .. [RETURN] "); getchar(); } fclose(fz); fz=fopen(name,"w"); fwrite(server, sizeof(char), strlen(server), fz); fwrite(user, sizeof(char), strlen(user), fz); fwrite(pass, sizeof(char), strlen(pass), fz); fwrite(db, sizeof(char), strlen(db), fz); fclose(fz); return 1; }
P.S.: Wenn der Debug-Modus noch andere Vorteile hat, als mir anzuzeigen das etwas nicht stimmt, wäre ich dankbar wenn mir diesen jemand mitteilt.
-
14.06.05 14:54 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Debug Modus hin oder her, meistens reicht es wenn du dir nochma genau überlegst was du eigentlich tust - vor allem in dem Fall wenn die Datei noch nicht existiert:
Code :1 2 3
fz = fopen( name, "r"); /* => Fehler, Datei existiert nicht! fz wird auf NULL gesetzt */ fclose( fz ); /* Versuch eine Datei zu schließen die nicht offen ist, wobei fz auf NULL zeigt ==> Speicherzugriffsfehler. */
Is wohl besser wenn du so verfährst:
Code :1 2 3 4
if ((fz = fopen( name, "r")) != NULL) { /* blah */ fclose( fz ); }Geändert von deepthroat (14.06.05 um 15:02 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
14.06.05 15:10 #5
oha,
Vielen Dank. Der Gedankengang hat mir gefehlt.
Ähnliche Themen
-
fopen problem
Von Marco-P im Forum PHPAntworten: 9Letzter Beitrag: 12.07.08, 04:58 -
fopen Problem
Von spikaner im Forum PHPAntworten: 2Letzter Beitrag: 29.04.07, 16:56 -
Problem mit fopen()
Von maltor im Forum PHPAntworten: 7Letzter Beitrag: 08.12.04, 19:58 -
fopen Problem
Von BomberJack im Forum PHPAntworten: 5Letzter Beitrag: 28.01.04, 08:06 -
fopen - Problem
Von ultrakollega im Forum PHPAntworten: 5Letzter Beitrag: 31.10.03, 12:21





Zitieren
Login






