AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EAccessViolation beim Schreiben von Daten in Datei oder Stream
Thema durchsuchen
Ansicht
Themen-Optionen

EAccessViolation beim Schreiben von Daten in Datei oder Stream

Ein Thema von DualCoreCpu · begonnen am 3. Aug 2015 · letzter Beitrag vom 4. Aug 2015
 
DualCoreCpu
(Gast)

n/a Beiträge
 
#1

EAccessViolation beim Schreiben von Daten in Datei oder Stream

  Alt 3. Aug 2015, 09:48
Hallo,

ich weiß nicht mehr weiter. Ich versucher einen Record mit Stringdaten in einen TFileStream zu schreiben. Leider wird nichs geschrieben.

Hier der Quellcode:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TTestRec = record
    Feld1: String;
    Feld2: String;
    Feld3: String;
  end;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    btnOk: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure FormDestroy(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure btnOkClick(Sender: TObject);
  private
    { Private declarations }
    FStream: TFileStream;
    FFileWriter: TWriter;
    FTestFields: TTestRec;
  public
    { Public declarations }
    procedure CreateWnd;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnOkClick(Sender: TObject);
begin
  FFileWriter.WriteString(FTestFields.Feld1);
  FFileWriter.WriteString(FTestFields.Feld2);
  FFileWriter.WriteString(FTestFields.Feld3);
end;

procedure TForm1.CreateWnd;
begin
  FStream := TFileStream.Create('Testfile.def', fmCreate);
  FFileWriter := TWriter.Create(FStream,1024);
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  FTestFields.Feld1 := Edit1.Text;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  FTestFields.Feld2 := Edit2.Text;
end;

procedure TForm1.Edit3Change(Sender: TObject);
begin
  FTestFields.Feld3 := Edit3.Text;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FFileWriter.Free;
end;

end.
Vorher hatte ich es mit dem Typ File versucht, hatte aber auch keinen Erfolg. Auch mit TFileStream funktioniert es nicht. Bei letzterem hatte ich exta Shortstrings folgender Form verwendet:

Delphi-Quellcode:
type
  TMyTestRec = record
    Feld1: String[30];
    Feld2: String[255];
    Feld3: String[20];
  end;
Auch die Klammerung des Records mit {$H-}{$H+} führt nicht zum Erfolg.

Habe soeben mal getestet, ob ich bei gestartetem Programm eine Dati in mein Projektverzeichnis kopiren kann. Dies funktioniert, weshalb ich nicht an fehlende Schreibrechte glauben kann. Wo aber liegt dann die Ursache für mein Problem?
  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 07:35 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