skinless Geschrieben 9. Mai 2010 Geschrieben 9. Mai 2010 Hallo, ich habe kürzlich ein Programm unter Linux geschrieben, welches eine Datenbank aus einer txt-Datei einliest, mit dieser dann je nach Benutzereingabe rechnet und die Datenbank anschließend wieder in die txt-Datei speichert. Das Programm läuft einwandfrei. Nun wollte ich es auch unter Windows 7 zur Verfügung haben. Also habe ich den gleichen Quelltext in Windows kompiliert und es funktioniert nicht. Das Programm liest die Werte korrekt ein und rechnet auch korrekt, doch kann es nicht mehr speichern. Selbst ein simpelstes Programm, welches nur ein Zeichen in eine txt-Datei schreiben soll, funktioniert bei mir nicht, da es nicht gespeichert wird. Zum Kompilieren habe ich schon dmc und Dev-C benutzt. Woran kann das liegen? Vielen Dank im Voraus Zitieren
robotto7831a Geschrieben 9. Mai 2010 Geschrieben 9. Mai 2010 Gibt es auch eine vernünftige Fehlermeldung? Wie sieht dein Code aus? Wo willst Du speichern? Darfst Du dort speichern? Stichwort Rechte? Frank Zitieren
flashpixx Geschrieben 9. Mai 2010 Geschrieben 9. Mai 2010 Dev-Cpp solltest Du nicht mehr verwenden, da es seit einigen Jahren nicht mehr entwickelt wird und das Projekt wohl eingestellt ist (siehe Wikipedia). Ansonsten schließe ich mich an, dass Du bitte einmal den Code zeigen solltest Zitieren
skinless Geschrieben 9. Mai 2010 Autor Geschrieben 9. Mai 2010 Der Compiler gibt keinerlei Fehlermeldung aus. In Linux hat es ja auch funktioniert. Speichern möchte ich in C:/Ordner Den Ordner habe ich selbst erstellt, da dürfte es ja keine Probleme geben. Der ursprüngliche Code ist etwas komplex. Ich habe mal ein sehr einfaches Programm geschrieben: ... int main() { FILE *data; data = fopen("Datei.txt", "r+"); int c = 'a'; fputc(c, data); fclose(data); } Hier bleibt die Datei seltsamerweise unverändert. Zitieren
flashpixx Geschrieben 9. Mai 2010 Geschrieben 9. Mai 2010 Der Code lässt sich bei mir auf OSX, Gentoo Linux mit GCC und unter Windows 7 mit Visual Studio ohne Probleme kompilieren. Ich würde einmal tippen, dass es Probleme mit den Rechten sind Zitieren
skinless Geschrieben 9. Mai 2010 Autor Geschrieben 9. Mai 2010 Ich werde es auch noch einmal mit Visual Studio versuchen. Aber wieso sollte ich keine Rechte in einem selbst erstellten Ordner auf C haben? Habe auch schon "Als Administrator ausführen" versucht. Zitieren
robotto7831a Geschrieben 10. Mai 2010 Geschrieben 10. Mai 2010 Bist Du sicher, dass er in C:/Ordner speichern will? Überigens C:/Ordner gibt es nicht. Höchstens C:\Ordner. Frank Zitieren
flashpixx Geschrieben 10. Mai 2010 Geschrieben 10. Mai 2010 @Frank: naja laut dem Quellcode ist die Datei relativ zum ausführenden Pfad, was auch ohne Probleme funktioniert Zitieren
robotto7831a Geschrieben 10. Mai 2010 Geschrieben 10. Mai 2010 @flashpixx: Das habe ich auch gesehen. Die Frage ist nur, wo die EXE läuft. Frank Zitieren
skinless Geschrieben 10. Mai 2010 Autor Geschrieben 10. Mai 2010 Habe gerade eben etwas herausgefunden: Öffne ich die Datei mit fopen(..., "w") so schreibt er die Datei und fügt auch in dem Beispiel den Buchstaben ein. Mit den Schreibrechten dürfte es also kein Problem geben. Wieso funktioniert denn dann aber "r+" nicht? Habt ihr eine Idee? Zitieren
robotto7831a Geschrieben 10. Mai 2010 Geschrieben 10. Mai 2010 Existiert die Datei denn schon? Frank Zitieren
skinless Geschrieben 10. Mai 2010 Autor Geschrieben 10. Mai 2010 Ich habe es gelöst, wenn ich es auch nicht verstehe. Die Datei existierte natürlich vorher schon, "r+" ist ja ein Lesemodus. Wenn ich über Rechtsklick->Neu->txt-Datei im Explorer eine Datei erstelle und dann das Programm laufen lasse, funktioniert es nicht. Erstelle ich jedoch zuerst mit einem Programm mit fopen(..., "w") eine txt-Datei und lasse dann das Programm mit "r+" laufen, so funktioniert es komischerweise. Jetzt kann ich die Datei auch mit dem Editor bearbeiten und es funktioniert trotzdem noch. Seltsam, oder? Vielen Dank für die Hilfe! Zitieren
robotto7831a Geschrieben 10. Mai 2010 Geschrieben 10. Mai 2010 Ich habe mir jetzt noch mal die Parameter angeschaut und Du hast Recht. Wenn ich eine Datei mit "r" oder "r+" öffne, dann muss diese Datei bereits existieren. Welche Rechte hat denn die Datei wenn Du diese mit dem Programm erstellst und einmal mit dem Explorer? Frank Zitieren
skinless Geschrieben 10. Mai 2010 Autor Geschrieben 10. Mai 2010 Du hast Recht. Die Speicherungsdatei, die ich aus Linux herübergezogen habe, besaß keine Änderungsrechte. Da bin ich jedoch nicht drauf gekommen. Wusste auch bis eben noch nicht, das es dafür bei Windows 7 in den Dateieigenschaften einen eigenen Reiter gibt (Habs erst neu). Vielen Dank nochmal Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.