Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Daten speichern und wieder laden! (https://www.delphipraxis.net/2532-daten-speichern-und-wieder-laden.html)

Chriss 28. Jan 2003 11:55


Daten speichern und wieder laden!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo! hab ein kleines Problem, vielleicht könnt ihr mir mal helfen?!
ich hab mit nem freund zusammen vorgehabt, ein programm zu erstellen, bei dem man in ein memo zahlen untereinander eingibt und dann in eine txt speichert, die automatisch erstellt wird! anschliessend soll iese wieder auslesbar (geladen) werden!

Folgendes problem! das speichern funktionier, aber das programm muss zum laden der datei neu gestartet werden! WARUM???
noch ein problem, wir haben es nur hinbekommen, das ganze in ein StrinGrid einzulesen möchten es aber gerne in ein Memo haben!

hier der Quelltext:
Code:
unit speichern_Unit;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  fs: TFileStream;
  s: string;
  F1: TextFile;
  zeile,spalte: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

s:=memo1.Text;
fs:=TFileStream.create('versuch.txt',fmOpenWrite);
fs.Write(PChar(s)^,Length(s));

end;

procedure TForm1.Button2Click(Sender: TObject);
begin

AssignFile(f1, 'versuch.txt');
reset(f1);
zeile:=1;
spalte:=0;
repeat
StringGrid1.rowcount:=StringGrid1.rowcount+1;
readln(f1,s);
StringGrid1.cells[spalte,zeile]:=s;
zeile:=zeile+1;
until (s='');

end;

procedure TForm1.Button3Click(Sender: TObject);
begin

showmessage ('in memo zahlen eingeben' +chr(13)+ 'speichern' +chr(13)+ 'schliessen' +chr(13)+ 'neu starten' +chr(13)+ 'laden');

end;

end.
und das programm hänge ich auch dran, is net gross!

ich hoffe, dass mir (uns) jemand helfen kann!

MrSpock 28. Jan 2003 12:03

Hallo Chriss,

weil die Datei nach dem schreiben noch geöffnet ist.

Es fehlt:

Delphi-Quellcode:
CloseFile(fl);

Chriss 28. Jan 2003 12:09

stimmt, hatte ich vergessen, aber wenn ich dann speichere und wieder laden will kommt folgender fehler:

Prject speicher_prject.exe raised exception class EInOutError with message I/O error 32'.!

bezogen auf diese zeile:
Code:
reset(f1);

und dann wäre da noch das mit dem stringrid, das ich eigentlich nicht haben wollte!

Christian Seehase 28. Jan 2003 12:17

Moin Chriss,

und wenn Du die Datei einfach mit TMemo.Lines.SaveToFile speicherst und mit TMemo.Lines.LoadFromFile wieder lädst?

Chriss 28. Jan 2003 12:23

COOOOOOOOOL :dancer: :dancer2:
DANKE

DAS hilft mir sehr viel weiter!!!!!! der text is auch VIEL kürzer und einfacher!!!! :coder:


THX A LOT


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 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