AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung bei AssignFile

Ein Thema von dersunny · begonnen am 19. Jan 2011 · letzter Beitrag vom 13. Feb 2011
 
MSerror

Registriert seit: 28. Jan 2010
10 Beiträge
 
Delphi 2010 Professional
 
#29

AW: Fehlermeldung bei AssignFile

  Alt 11. Feb 2011, 19:19
Ich habe den Code ein bisschen überarbeitet.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
    myfile = RECORD
             name : string[100];
             email : string[40];
             end;


type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    procedure Lesen(Sender: TObject);
    procedure Schreiben(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  meinedatei : File Of myfile;
  satz : myfile;
  tmpIOResult : integer;

implementation

{$R *.dfm}

procedure TForm1.Lesen(Sender: TObject);
begin
   if OpenDialog1.Execute then
    begin
     OpenDialog1.FileName := ('myfile.dat');
     AssignFile(meinedatei, OpenDialog1.FileName);
     // FileMode := fmShareDenyNone;
 {$I-}
     Reset(meinedatei);
     tmpIOResult := IOResult;
 {$I+}
     If IOResult <> 0 Then
         ShowMessage(OpenDialog1.FileName + ' nicht gefunden!' + #13
                     + 'Code: ' + IntToStr(tmpIOResult))
     Else
     begin
         try
            Seek(meinedatei,0);
         except
            ShowMessage('Datensatz nicht gefunden!');
         end;
         try
              read(meinedatei,satz);
              ShowMessage(satz.name + #13 + satz.email);
         except
              CloseFile(meinedatei);
              ShowMessage('Datensatz nicht lesbar!');
         end;
         CloseFile(meinedatei);
     end;
    end;
end;

procedure TForm1.Schreiben(Sender: TObject);
begin
    if SaveDialog1.Execute then { Dialog zum Speichern anzeigen }
    begin
      SaveDialog1.FileName := 'myfile.dat';
      AssignFile(meinedatei, SaveDialog1.FileName);
      // FileMode := fmShareDenyNone;
 {$I-}
      Rewrite(meinedatei);
      tmpIOResult := IOResult;
 {$I+}
      If IOResult <> 0 Then
      begin
           ShowMessage('Kann die Datei nicht erstellen! Fehler: ' + IntToStr(tmpIOResult));
      end
      Else
      begin
         satz.name := 'Test-Datensatz';
         satz.email := 'info@testserver.de';
         try
            write(meinedatei, satz);
         except
            on E : Exception do
            begin
                ShowMessage('Schreibfehler in myfile.dat!' + #13
                           + E.ClassName + ', Meldung: ' + E.Message);
            end;
         end;
         CloseFile(meinedatei);
         ShowMessage('myfile.dat erfogreich erstellt.');
      end;
    end; // von SaveDialog1
end;
end.
Version 1.
Das Programm ist mit dem Delphi 2010 Compiler erzeugt. Mit der Prozedur "Schreiben" möchte ich zuerst die Datei erzeugen.
Bei 32-Bit Windows Versionen (von Windows XP bis Windows 7) überhaupt keine Probleme.
Bei Windows 7 Ultimate 64-Bit kommt zuerst

"Schreibfehler in myfile.dat!
EInOutError, Meldung: Dateizugriff verweigert"

und direkt danach "E/A-Fehler 103"

Version 2.
Das Programm ist mit dem Delphi 3 Client/Server Compiler aus dem Jahr 1997 erzeugt und macht alles sauber von Windows XP bis 7, egal ob 32- oder 64-Bit (auch bei der oben genannten x64 Ultimate).

Und was nun?

Geändert von MSerror (11. Feb 2011 um 19:23 Uhr) Grund: Code-Korrektur
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 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