Kitty82 Geschrieben 14. Dezember 2005 Autor Geschrieben 14. Dezember 2005 Du hast auch wahrscheinlich recht. Nur verstehe ich nicht, warum es vorhin bei mir ging... und es ging ganz sicher! Nur jetzt hab ich so einen blödsinn gemacht, dass gar nix mehr gescheit läuft. melde mich, falls ich wieder probleme haben sollte. glaub, dann schick ich dir gleich den ganzen code :beagolisc Gruß Kitty Zitieren
Kitty82 Geschrieben 14. Dezember 2005 Autor Geschrieben 14. Dezember 2005 Du hast auch wahrscheinlich recht. Nur verstehe ich nicht, warum es vorhin bei mir ging... und es ging ganz sicher! Nur jetzt hab ich so einen blödsinn gemacht, dass gar nix mehr gescheit läuft. melde mich, falls ich wieder probleme haben sollte. glaub, dann schick ich dir gleich den ganzen code :beagolisc Gruß Kitty Du hattest natürlich recht. Das war ja logisch. Ich hatte nicht nur dich durcheinander gebracht sondern mich gleich auch :beagolisc Also, ich öffne die Dateien mit OPEN_EXISTING. Ansonten bleibt aber die Reihenfolge: öffnen & locken -> lesen -> schreiben -> shcließen & entlocken. Das Problem besteht weiterhin. Du meintest Nach deiner Erklärung würde ich vermuten das WriteFile entweder 2 mal mit den selben Daten aufgerufen wird und eshalb 2 mal das Selbe in der Datei steht oder das es manchmal halt noch von vorher drin steht und nicht überschrieben wurde. wie kann ich soetwas vermeiden? Wie kann ich die Datei leeren (nicht löschen)? Zitieren
Guybrush Threepwood Geschrieben 14. Dezember 2005 Geschrieben 14. Dezember 2005 Naja wenn du beim schreiben den gesamten Inhalt neu schreibst dann würde ich die Datei einfach mal nach dem lesen schließen und mit Create_Allways neu öffnen. Oder du gehtst mit SetFilePointer an den Anfang und rufst SetEndOfFile auf, aber da geht das erste schneller. Wenn du nur einen bestimmten Teil der Datei austauschen willst dann geht man für gewöhnlich hin und erstellt eine neue Datei in der man dann erst die Daten aus der alten Datei bis zur Stelle die geändert werden soll kopiert, dann die neuen Daten und schließlich den Rest der Originaldatei. Danach ersetzt du dann die Originaldatei durch die Neue. Zitieren
Kitty82 Geschrieben 14. Dezember 2005 Autor Geschrieben 14. Dezember 2005 muss vermeiden, dass die datei geschlossen wird. habe mir gerade das SetFilePosition() angesehen und werde das dann benutzen. SetEndOfFile muss ich dann glaub nach WriteFile aufrufen. Hoffe, es klappt so. WEnn nicht, dann nehm ich deinen Tipp... danke + Gruß Kitty Zitieren
Guybrush Threepwood Geschrieben 14. Dezember 2005 Geschrieben 14. Dezember 2005 Nein vor dem Schreiben. Du willst doch das du eine komplett leere Datei hast wenn du sie füllst. Also setzt du den Dateizeiger an den Anfang und SetEndOfFile setzt dann an der Stelle das Dateiende. Zitieren
Kitty82 Geschrieben 14. Dezember 2005 Autor Geschrieben 14. Dezember 2005 heut ist echt nicht mein Tag oder? also hab zuerst SetFilepointer(handle) dann WriteFile danach SetEndOfFiel(handle) und so funktioniert es. Gaaaaanz sicher kanne s dir auch schicken Zitieren
Guybrush Threepwood Geschrieben 14. Dezember 2005 Geschrieben 14. Dezember 2005 Das funktioniert aber nur dann wenn du mit WriteFile genauso viele bzw. mehr Daten reinschreibst als wie vorher drin waren. Wenn du weniger schreibst dann würde etwas aus der alten Datei drin bleiben. Deshalb das SetEndofFile nach dem SetFilePointer. Am Ende brauchst du kein SetEndofFile, das passiert automatisch Zitieren
Kitty82 Geschrieben 14. Dezember 2005 Autor Geschrieben 14. Dezember 2005 hast du ein Glück, das stimmt tatsächlich. :floet: Merci :byby: Zitieren
Guybrush Threepwood Geschrieben 14. Dezember 2005 Geschrieben 14. Dezember 2005 hehe:beagolisc 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.