![]() |
kann eintrag aus stringgrid nicht in txt-datei speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!!
Probier schon so lange herrum, kann mir wer helfen? Fehler von Deppugger-Exeption: ..eine Exception der Klasse EInOutError mit der Meldung 'E/A-Fehler 32' aufgetreten. Da ich Anfänger bin kann natürlich mehr falsch sein :oops: , bitte das zu entschuldigen... danke (anbei ein bild
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TDB=class name,titel:string; end; type TForm2 = class(TForm) OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; s: TStringGrid; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private DB:TDB; { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} var f:textfile; i:integer; procedure TForm2.FormCreate(Sender: TObject); begin DB:=TDB.Create; s.Cells[0,0]:='aa'; s.Cells[0,1]:='1'; s.Cells[0,2]:='2'; s.Cells[1,0]:='Titel'; s.Cells[2,0]:='Name' ; end; procedure TForm2.Button1Click(Sender: TObject); begin if opendialog1.execute then begin assignfile (f,opendialog1.FileName); reset(f); rewrite(f); begin with DB do begin WriteLn(F,Titel+'|',Name); end; end; end; end; end. |
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
Hallo,
kommentiere mal das Reset(f) aus, dass dürfte in Deinem Zusammenhang überflüssig (und die Fehlerursache) sein. Du möchtest eine Datei erstellen, Reset will aber eine bestehende Datei öffnen. Wenn Du jetzt hergehst, und die Datei öffnest und dann überschreibst, scheitert das anscheinend. |
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
würde aber gerne eine bestehende datei überschreiben,bzw etwas dran hängen.
oder ist es besser sie vorher einzulesen, dazu fehlt mir aber noch der text.. fg |
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
ohne dem kommt "e/a fehler 32"
|
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
Zitat:
|
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
Hallo,
wenn die Datei existiert, kannst Du mit Append(f) Daten anhängen, existiert sie noch nicht, dann mit ReWrite(f) eine neue Datei erstellen (eine bestehende Datei wird ohne Nachfrage überschrieben). Zum Lesen wird Reset(f) benutzt. Jeder dieser Befehle schließt die gleichzeitige Benutzung der anderen aus. Versuchs mal so in der Art:
Delphi-Quellcode:
AssignFile(f,opendialog1.FileName); If Not FileExists(opendialog1.FileName) Then Begin ReWrite(f); End Else Begin Append(f); End; Try WriteLn(f,'irgendeintext'); Except On e : Exception Do Begin ShowMessage(e.Message); End; End; CloseFile(f); |
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
Eben, das CloseFile hat im Ursprungscode auch noch gefehlt.
|
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
nein, leider fehler E/A 102..
bleibt bei append(f) hängen.. hab in der hilfe bissl unter e/a gesucht, bin aber net viel schlauer als vorher... :shock: was noch ist: in zeile "WriteLn (F, Name);" kann ich nicht writeln(F, Titel+'|',Name+'|',Song+'|'); song und title mag er nicht, warum das? wenn doch name nimmt.. fg
Delphi-Quellcode:
type
TForm2 = class(TForm) OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; s: TStringGrid; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private DB:TDB; { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} var f:textfile; i:integer; procedure TForm2.FormCreate(Sender: TObject); begin DB:=TDB.Create; s.Cells[0,0]:=''; s.Cells[0,1]:='1'; s.Cells[0,2]:='2'; s.Cells[1,0]:='Titel'; s.Cells[2,0]:='Name'; s.Cells[3,0]:='Song'; end; procedure TForm2.Button1Click(Sender: TObject); begin if opendialog1.execute then begin If Not FileExists(opendialog1.FileName) Then Begin ReWrite(f); End Else Begin Append(f); End; Try WriteLn (F, Name); Except On e : Exception Do Begin ShowMessage(e.Message); End; End; CloseFile(f); end; end; end. |
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
Wo ist denn das AssignFile?
[edit] Außerdem ist Deine Einrückung etwas unübersichtlich.
Delphi-Quellcode:
[/edit]
procedure TForm2.Button1Click(Sender: TObject);
begin if opendialog1.execute then begin AssignFile(f,opendialog1.FileName); //diese Zeile hat gefehlt If Not FileExists(opendialog1.FileName) Then Begin ReWrite(f); End Else Begin Append(f); End; Try WriteLn (F, Name); Except On e : Exception Do Begin ShowMessage(e.Message); End; End; CloseFile(f); end; end; |
Re: kann eintrag aus stringgrid nicht in txt-datei speichern
Danke, hundertmal gelesen und nicht aufgefallen b :wall:
jetzt schreibt er mir "Form2 |" in die datei und nicht das was ich meinem stringgrid habe?? da ist wohl meine db unbrauchbar?? fg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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