![]() |
Re: I/O-Fehler-998
Liste der Anhänge anzeigen (Anzahl: 1)
ja gerne vielen dank
das ist nur ein tesprojekt wo ein record gefüllt wird mit über 11000 daten und die solln dann gespeichert werden(das record ist orginal aus dem programm übernommen dass ich für die firma entwickeln muss) ich hoffe du kansnt das comüilieren weils mit delphi 3 gecoded is nochmals danke für deine zeit lg nico edit ah zu schnell weitergegeklickt - marubu :wall: danke für den tipp ich gehs noch mal durch sry |
Re: I/O-Fehler-998
unabhängig vom vorig gesagten : marabu wie soll ich denn numread(name hin oder her) initialisieren? woher nehm ich den count?
lg nico |
Re: I/O-Fehler-998
Hast du denn gar nicht mal in die Hilfe geschaut? Der dritte Parameter von BlockWrite() gibt an, wieviele "Blöcke" geschrieben werden sollen. Im vierten Parameter wird die effektiv geschriebene Zahl zurück gemeldet, so dass du durch Vergleich feststellen kannst, ob alles nach deinen Wünschen verlaufen ist. Bei dir sollte der dritte Parameter wohl einfach 1 sein, oder?
BTW - Eine Block-Struktur (TAlles) mit etwa 94 KByte - etwas besseres ist deinem Chef nicht eingefallen? Die Struktur der Daten lässt sich gewiss intelligenter auf das Dateisystem abbilden als durch einen einzelnen Record. Nachdenkliche Grüße |
Re: I/O-Fehler-998
das mit dem vergleich hab ich schon verstanden danke - das mit der eins hab ich schon probiert leider nur mit dem erfolg dass jetzt der fehler
so lautet
Delphi-Quellcode:
---------------------------
Project1 --------------------------- I/O-Fehler 1784. --------------------------- OK --------------------------- :( wenn du vorschläge zum speichern hast - es geht ihm darum die datei so klein wie möglich zu halten(es geht heir um ca 12000 gepspeicherte zahlen und texte lg nico |
Re: I/O-Fehler-998
BlockRead ehthält ja in der Demo die größe der Daten, welche vorher gelesen und demnach geschrieben werden sollen.
dui mußt da angeben wieviel geschieben werden soll, also =SizeOf(TAlles) ? hier mal ein paar mögliche Codes:
Delphi-Quellcode:
var
FaDatei: file of TAlles; Buf: TAlles; if SaveDialog1.Execute then { Dialog zum Speichern anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Rewrite(FaDatei); { Ausgabedatei öffnen } BlockWrite(FaDatei, Buf, SizeOf(Buf)); CloseFile(FaDatei); end; if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Reset(FaDatei); { Eingabedatei öffnen } BlockRead(FaDatei, Buf, SizeOf(Buf)); CloseFile(FaDatei); end;
Delphi-Quellcode:
var
FaDatei: file of TAlles; Buf: Array of TAlles; if SaveDialog1.Execute then { Dialog zum Speichern anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Rewrite(FaDatei); { Ausgabedatei öffnen } for i := 0 to High(Buf) do Write(FaDatei, Buf[i]); CloseFile(FaDatei); end; if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Reset(FaDatei); { Eingabedatei öffnen } Buf := nil; while not Eof(FaDatei) do begin SetLength(Buf, Length(Buf) + 1); Read(FaDatei, Buf[High(Buf]]); end; CloseFile(FaDatei); end;
Delphi-Quellcode:
var
FaDatei: file of TAlles; Buf: TAlles; if SaveDialog1.Execute then { Dialog zum Speichern anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Rewrite(FaDatei); { Ausgabedatei öffnen } Write(FaDatei, Buf); CloseFile(FaDatei); end; if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Reset(FaDatei); { Eingabedatei öffnen } Read(FaDatei, Buf); CloseFile(FaDatei); end;
Delphi-Quellcode:
Aber es wäre schon praktisch zu wissen welche Daten du genau gespeichert/gelesen haben möchtst.
var
FaDatei: file of TAlles; Buf: Array of TAlles; if SaveDialog1.Execute then { Dialog zum Speichern anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Rewrite(FaDatei); { Ausgabedatei öffnen } for i := 0 to High(Buf) do Write(FaDatei, Buf[i]); CloseFile(FaDatei); end; if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen } begin AssignFile(FaDatei, SaveDialog1.FileName); Reset(FaDatei); { Eingabedatei öffnen } Buf := nil; while not Eof(FaDatei) do begin SetLength(Buf, Length(Buf) + 1); Read(FaDatei, Buf[High(Buf]]); end; CloseFile(FaDatei); end; Falls es nur TAlles ist, dann wären die Funktionen ohne Schleife für dich verwendbar. |
Re: I/O-Fehler-998
Liste der Anhänge anzeigen (Anzahl: 1)
hier mal so alle Möglichkeiten für dich
aber am Besten du führst das Programm nicht im Debugger aus ... wenn du nicht grade die Exceptionen dort abgeschaltet hast. |
Re: I/O-Fehler-998
wow :) vielen herzlichen dank du weißt gar nicht wie erleichter ich jetzt bin :)
ich geh die codes jetzt mal durch am späteren tag werd ich mich wieder melden nochmals - dankeschön gute nacht nico |
Re: I/O-Fehler-998
hab jetzt einfach mal dein programm ausgeführt
datei hat 0 byet und im memo wird Zitat:
aber ich geh mal den code durch lg nico :) edit juhu mit dem 2ten code funktioneirt auf jeden fall das speichern ich bin so glücklich :) vielen dank himitsu! gute nacht nico |
Re: I/O-Fehler-998
drum sagte ich ja ... nicht unbedingt im Debugger testen ... vorallem wenn der alle Exceptionen anzeigt :zwinker:
Tipp: nimm dir speziell den Code vor wo OK steht :stupid: Und jupp, da die Datei ja jedesmal neu erstellt und der letzte Aufruf fehlerhaft war, also nichts schieb, kann die Datei nur leer sein. Aber genau dieses eher "unvorhersehbare" Verhalten der Delphifunktionen veranlaßt mich direkt auf die WinAPI auszuweichen. Vorallem da man da meist selbst bei einem Fehler nicht mit 'ner Exception erschlagen wird. :nerd: |
Re: I/O-Fehler-998
:) ja nächstes problem is ja dass er will das die programme auf jedem rechner laufen ;)
aber zumindest dieses darf ich auf windows hinschneiden ;D nochmals danke - ich meld mich wenn mir noch irgendeine frage dazu einfällt mfg nico |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz