Autor Beitrag
Lerer334
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 14.11.19 19:11 
Hi Leute,
Ich bin noch recht neu in der Entwicklung von Programmen!
Ich habe ein Programm geschrieben (Delphi), aber jedes mal sobald ich eine Note einfügen möchte gibt das Programm eine Fehlermeldung aus: Fehler 105

Ich weiß leider nicht wo der Fehler liegen soll, da ich meiner Meinung nach alle files geschlossen habe bevor ich wieder auf sie drauf zu greifen möchte, aber da ich (wie gesgt) noch recht neu hier bin, weiß ich leider nicht ob dies wirklich der Fall ist!

Hier ist mein Code (Ich entschuldige mich jetzt schon für die schlechte Schreibweise, da ich mir alles bisher selber erschlossen habe...):
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
unit Noten;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.Controls.Presentation, FMX.Edit;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    CheckBox1: TCheckBox;
    Button7: TButton;
    Button8: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button9: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var Noten:textfile;
    sLine:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
rewrite(Noten);
writeln(Noten,'1');
closefile(Noten);
end;

procedure TForm1.Button2Click(Sender: TObject);
var Noten:textfile;
    sLine:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
rewrite(Noten);
writeln(Noten,'2');
closefile(Noten);
end;

procedure TForm1.Button3Click(Sender: TObject);
var Noten:textfile;
    sLine:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
rewrite(Noten);
writeln(Noten,'3');
closefile(Noten);
end;
procedure TForm1.Button4Click(Sender: TObject);
var Noten:textfile;
    sLine:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
rewrite(Noten);
writeln(Noten,'4');
closefile(Noten);
end;

procedure TForm1.Button5Click(Sender: TObject);
var Noten:textfile;
    sLine:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
rewrite(Noten);
writeln(Noten,'5');
closefile(Noten);
end;

procedure TForm1.Button6Click(Sender: TObject);
var Noten:textfile;
    sLine:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
rewrite(Noten);
writeln(Noten,'6');
closefile(Noten);
end;

procedure TForm1.Button7Click(Sender: TObject);
var Noten,Anz:textfile;
    sLine:string;
    F:real;
    B,C,N1:integer;
    N,A:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
read(Noten,F);
closefile(Noten);
N:=(edit2.Text);
if F=1 then
  begin
  if Fileexists('E:\Delphi\Notenspeicher\Mathe.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
  Assignfile(Noten,'E:\Delphi\Notenspeicher\Mathe.txt');
  Append(Noten);
  write(Noten,N);
  closefile(Noten);
  Assignfile(Anz,'E:\Delphi\Notenspeicher\Mathe2.txt');
  Reset(Anz);
  read(anz,A);
  B:=strtoint(A);
  c:=B+1;
  A:=inttostr(c);
  rewrite(anz);
  write(A);
  closefile(anz);
  end;
 if F=2 then
  begin
  if Fileexists('E:\Delphi\Notenspeicher\Chemie.txt') = false then
    begin
    showmessage('File not found');
    Exit;
    end;
  Assignfile(Noten,'E:\Delphi\Notenspeicher\Chemie.txt');
  Append(Noten);
  write(Noten,N);
  Assignfile(Anz,'E:\Delphi\Notenspeicher\Chemie2.txt');
  Reset(Anz);
  read(anz,A);
  B:=strtoint(A);
  c:=B+1;
  A:=inttostr(c);
  rewrite(anz);
  write(A)
  end;
if F=3 then
  begin
  if Fileexists('E:\Delphi\Notenspeicher\Bio.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
  Assignfile(Noten,'E:\Delphi\Notenspeicher\Bio.txt');
  Append(Noten);
  write(Noten,N);
  Assignfile(Anz,'E:\Delphi\Notenspeicher\Bio2.txt');
  Reset(Anz);
  read(anz,A);
  B:=strtoint(A);
  c:=B+1;
  A:=inttostr(c);
  rewrite(anz);
  write(A)
  end;
if F=4 then
  begin
  if Fileexists('E:\Delphi\Notenspeicher\Deutsch.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
  Assignfile(Noten,'E:\Delphi\Notenspeicher\Deutsch.txt');
  Append(Noten);
  write(Noten,N);
  Assignfile(Anz,'E:\Delphi\Notenspeicher\Deutsch2.txt');
  Reset(Anz);
  read(anz,A);
  B:=strtoint(A);
  c:=B+1;
  A:=inttostr(c);
  rewrite(anz);
  write(A)
  end;
if F=5 then
  begin
  if Fileexists('E:\Delphi\Notenspeicher\Englisch.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
  Assignfile(Noten,'E:\Delphi\Notenspeicher\Englisch.txt');
  Append(Noten);
  write(Noten,N);
  Assignfile(Anz,'E:\Delphi\Notenspeicher\Englisch2.txt');
  Reset(Anz);
  read(anz,A);
  B:=strtoint(A);
  c:=B+1;
  A:=inttostr(c);
  rewrite(anz);
  write(A)
  end;
if F=6 then
  begin
  if Fileexists('E:\Delphi\Notenspeicher\Geschichte.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
  Assignfile(Noten,'E:\Delphi\Notenspeicher\Geschichte.txt');
  Append(Noten);
  write(Noten,N);
  Assignfile(Anz,'E:\Delphi\Notenspeicher\Geschichte2.txt');
  Reset(Anz);
  read(anz,A);
  B:=strtoint(A);
  c:=B+1;
  A:=inttostr(c);
  rewrite(anz);
  write(A)
  end;
end;

procedure TForm1.Button9Click(Sender: TObject);
var Noten:textfile;
    sLine:string;
    F:real;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
  begin
    showmessage('File not found');
    Exit;
  end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten);
read(Noten,F);
edit1.Text:=floattostr(F);
closefile(Noten);
end;

end.

Hat einer von euch vielleicht eine Idee was mit dem code nicht stimmt?

PS: Das Programm soll Notenpunkte zusammenrechnen. Es ist noch nicht fertig daher fehlt der ganze Rechen-Abschnitt.

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 378
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Do 14.11.19 22:47 
Hallo,

Du willst anscheinend an eine bestehede Datei etwas anhängen und hast deshalb immer reset und rewrite. Das geht aber schief, lies mal in der Hilfe zu rewrite; Unten im Code dazu zwei Kommentare von mir.

Lösung a)
alte Datei umbenennen, neue Datei mit rewrite anlegen, Inhalt der alten datei hineinschreiben und neue Daten ebenfalls.

Lösung b)
TFilestream: Vielseitiger als reset und rewrite.

Gruß
GuaAck



ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button6Click(Sender: TObject);
var Noten:textfile;
sLine:string;
begin
if Fileexists('E:\Delphi\Notenspeicher\Noten.txt') = false then
begin
showmessage('File not found');
Exit;
end;
Assignfile(Noten,'E:\Delphi\Notenspeicher\Noten.txt');
Reset(Noten); // Datei wird zum Lesen geöffnet
rewrite(Noten); // Datei wird geschlossen und es wird eine neu Datei unter dem namen angelegt
writeln(Noten,'6');
closefile(Noten);
end;