AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Daten von einer Datei aufaddieren durch FOR TO DO
Thema durchsuchen
Ansicht
Themen-Optionen

Daten von einer Datei aufaddieren durch FOR TO DO

Ein Thema von coly546 · begonnen am 11. Dez 2008 · letzter Beitrag vom 11. Dez 2008
Antwort Antwort
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Daten von einer Datei aufaddieren durch FOR TO DO

  Alt 11. Dez 2008, 16:12
Hallo,
beim vorliegenden Programm möchte ich die eingegebenen Werte (jeder Stunde) addieren. So das ich zum Schluss die Gesamteinnahmen aller Stunden habe. Das habe ich auch schon mit einer zweiten For-to-do Schleife probiert, leider ohne Erfolg. In der Vergangenheit, hatte ich dieses Problem schon einmal gelöst, jedoch finde ich die passende Datei nicht mehr.

Es wäre nett, wenn sich das mal Jemand ansehen könnte.



Ich danke euch bereits im voraus!


Delphi-Quellcode:
program In_Out;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var Datei_X:file of real;
    Wert,Ergebnis:real;
    i:integer;

{------------------------------------------------------------------------------}
procedure Eingabe;
var i:integer;
begin

ASSIGN (Datei_X,'C:\Dokumente und Einstellungen\File.DAT');
REWRITE(Datei_X);
for i:=10 to 19 do
begin
 write(' ',i,':00 Uhr! Wie hoch waren die Einnahmen?:');
 readln(Wert);
 WRITE(Datei_X,Wert);
end;

CLOSE(Datei_X);
writeln;writeln(' ENTER dr',#129,'cken...');
readln;
end;

{------------------------------------------------------------------------------}
procedure Ausgabe;
Begin
for i := 1 to 20 do writeln(' ');
writeln(' Ihre Einnahmen...:');
writeln;

ASSIGN (Datei_X, 'C:\Dokumente und Einstellungen\File.DAT');
{$I-}
RESET(Datei_X);
{$I+}

  if IOResult <>0 then
  writeln('Datei ist weg')
  else begin
While not EoF(Datei_X) do
 begin
 READ(Datei_X, Wert);
 write(' ');writeln(Wert:10:2,' Euro');
 for i:=10 to 19 do
  Ergebnis:=Wert+1;
 end;
writeln;writeln(Ergebnis:10:2);
CLOSE(Datei_X);
writeln;writeln;writeln;writeln(' ENTER dr',#129,'cken...');
readln;
End;end;
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Daten von deiner Datei aufaddieren durch FOR TO DO

  Alt 11. Dez 2008, 16:19
Zitat von coly546:
Hallo,
beim vorliegenden Programm möchte ich die eingegebenen Werte (jeder Stunde) addieren. So das ich zum Schluss die Gesamteinnahmen aller Stunden habe. Das habe ich auch schon mit einer zweiten For-to-do Schleife probiert, leider ohne Erfolg. In der Vergangenheit, hatte ich dieses Problem schon einmal gelöst, jedoch finde ich die passende Datei nicht mehr.

Es wäre nett, wenn sich das mal Jemand ansehen könnte.



Ich danke euch bereits im voraus!


Delphi-Quellcode:
program In_Out;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var Datei_X:file of real;
    Wert,Ergebnis:real;
    i:integer;

{------------------------------------------------------------------------------}
procedure Eingabe;
var i:integer;
begin

ASSIGN (Datei_X,'C:\Dokumente und Einstellungen\File.DAT');
REWRITE(Datei_X);
for i:=10 to 19 do
begin
 write(' ',i,':00 Uhr! Wie hoch waren die Einnahmen?:');
 readln(Wert);
 WRITE(Datei_X,Wert);
end;

CLOSE(Datei_X);
writeln;writeln(' ENTER dr',#129,'cken...');
readln;
end;

{------------------------------------------------------------------------------}
procedure Ausgabe;
Begin
for i := 1 to 20 do writeln(' ');
writeln(' Ihre Einnahmen...:');
writeln;

ASSIGN (Datei_X, 'C:\Dokumente und Einstellungen\File.DAT');
{$I-}
RESET(Datei_X);
{$I+}

  if IOResult <>0 then
  writeln('Datei ist weg')
  else begin
While not EoF(Datei_X) do
 begin
 READ(Datei_X, Wert);
 write(' ');writeln(Wert:10:2,' Euro');
 for i:=10 to 19 do
  Ergebnis:=Wert+1;
//----> hier fehlt das naechste Read !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 end;
writeln;writeln(Ergebnis:10:2);
CLOSE(Datei_X);
writeln;writeln;writeln;writeln(' ENTER dr',#129,'cken...');
readln;
End;end;
Hallo..habe die Stelle im Quelltext markiert..da fehlt was
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Daten von einer Datei aufaddieren durch FOR TO DO

  Alt 11. Dez 2008, 16:48
Zitat:
Delphi-Quellcode:
for i:=10 to 19 do
  Ergebnis:=Wert+1;
Die Schleife ist so wie sie da steht, sinnlos, da Ergebnis immer wieder überschrieben wird. Meintest Du so?
Delphi-Quellcode:
for i:=10 to 19 do
  Ergebnis := Ergebnis + Wert + 1;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#4

Re: Daten von einer Datei aufaddieren durch FOR TO DO

  Alt 11. Dez 2008, 20:20
Hi,
danke erstmal für die schnelle Antwort. Ich habe die Rechnung durch die von DeddyH ersetzt, und es kommt trotzdem das falsche Ergebnis raus.

Wenn ich für alle Stunden 25 eingebe, müsste ja 250 Euro rauskommen...es kommt aber 2600 Euro raus...


Und zu Der.Kaktus, ich weiß nicht ganz warum ich da noch einmal read schreiben sollte, denn die Datei ist ja noch offen...das Close kommt doch erst danach.



.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: Daten von einer Datei aufaddieren durch FOR TO DO

  Alt 11. Dez 2008, 20:38
Hmmm, das ist etwas "verwurstelt in meinen Augen:
Delphi-Quellcode:
While not EoF(Datei_X) do
begin
READ(Datei_X, Wert);
write(' ');writeln(Wert:10:2,' Euro');
for i:=10 to 19 do
  Ergebnis:=Wert+1;
//----> hier fehlt das naechste Read !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
end;
1. Wo wird "Ergebnis" initialisiert? VOR das Einlesen gehört ein "Ergebnis:=0"
2. Wozu ist die for-Schleife überhaupt gut? Löschen!
3. Detlef hat ja den entscheidenden Tip bereits gegeben!

Sofern in der Datei überhaupt die richtigen Daten enthalten sind, sollte es so funktionieren:

Delphi-Quellcode:
Ergebnis:=0;
while not eof(Datei_X) do begin
  read(Datei_X, Wert);
  Ergebnis:=Ergebnis+Wert;
  end;
Ralph
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#6

Re: Daten von einer Datei aufaddieren durch FOR TO DO

  Alt 11. Dez 2008, 20:47
Vielen Dank taaktaak, DeddyH und Der.Kaktus,
entschuldige bitte das meine Programmierkenntnisse noch nicht so ausgereift sind, dass es reicht ein Tipp zu geben.

Ich ging an die Lösung logisch heran und dachte: wenn bei der Eingabe eine For-To-Do Schleife habe, brauche ich die bestimmt auch bei der Ausgabe. Das das nicht der Fall ist, hätten wir ja damit geklärt.


Dankeschön



.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#7

Re: Daten von einer Datei aufaddieren durch FOR TO DO

  Alt 11. Dez 2008, 20:52
Hallo coly546
Nee, also entschuldigen brauchst du dich nicht!!
Das ist doch Ok, wenn ein Anfänger Schwierigkeiten hat.
Also weiterhin noch viel Spaß!
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz