Flat_Eric
27.09.2004, 18:58
Hallo Board-Mitglieder,
ich hab da ein Problem mit der Programmierung meines Programms. Ich möchte mir gern ein kleines Programm zur Depotverwaltung mit Pascal basteln. Nun bin ich soweit gekommen, das es die verschiedensten Transaktionen in einer .dat-Datei speichert.
Nun hätte ich gern das es aus den Anteilen und dem Preis den ich eingebe die Summe errechnet und mit in der .dat-Datei speichert.
Zur Veranschaulichung hier mein Quellcode:
PROGRAM Project_Depot;
USES Crt;
Var Point:Integer;
Petition:Char;
Var I:Integer;
K,V,E:Char;
Procedure Headline;
Begin
Clrscr;
Writeln;
Writeln(' T E S T P R O G R A M M ');
Writeln('-------------------------------------------------------------------------');
Writeln;
Writeln(' M E N U: K - KAUF');
Writeln(' V - VERKAUF');
Writeln(' E - PROGRAMMENDE');
Writeln;
Writeln('-------------------------------------------------------------------------');
Writeln;
End;
Procedure Menue;
Begin
Writeln('* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ');
Writeln;
Write('Bitte Anzahl der gewuenschten Transaktionen eingeben: ');
Readln(Point);
Writeln;
Writeln('* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ');
Writeln;
End;
Procedure Buy;
TYPE Buy = RECORD
Date: String[10];
Fund: String[30];
ISIN: String[12];
Shares: String[15];
Price: String[15];
END;
Data_Buy = ARRAY [1..200] OF Buy;
VAR DataSet_Buy: Data_Buy;
i: 1..200;
File_Buy: FILE OF Data_Buy;
BEGIN
ClrScr;
Assign (File_Buy, 'Käufe.dat');
{$I-} Reset (File_Buy);
Read (File_Buy, DataSet_Buy);
Close (File_Buy); {$I+}
IF IORESULT <> 0 THEN ;
REPEAT
Write ('Datenbank-Entrag Nr. (1-200): ');
ReadLn (i);
IF i = 0 THEN Exit;
IF (DataSet_Buy[i].Date = '') THEN
BEGIN
WriteLn ('Datensatz ',i);
Write ('Datum: ');
ReadLn (DataSet_Buy[i].Date);
WriteLn ('Fonds: ');
ReadLn (DataSet_Buy[i].Fund);
Write ('ISIN: ');
ReadLn (DataSet_Buy[i].ISIN);
Write ('Stuecke: ');
ReadLn (DataSet_Buy[i].Shares);
Write ('Preis: ');
ReadLn (DataSet_Buy[i].Price);
WriteLn;
Rewrite (File_Buy);
Write (File_Buy, DataSet_Buy);
Close (File_Buy);
END
ELSE
BEGIN
WriteLn ('Datum: ',DataSet_Buy[i].Date);
WriteLn ('Fonds: ',DataSet_Buy[i].Fund);
WriteLn ('ISIN: ',DataSet_Buy[i].ISIN);
WriteLn ('Stuecke: ',DataSet_Buy[i].Shares);
WriteLn ('Preis: ',DataSet_Buy[i].Price);
END;
UNTIL i = 0;
ReadKey;
End;
Procedure Sell;
TYPE Sell = RECORD
Date: String[10];
Fund: String[30];
ISIN: String[12];
Shares: String[15];
Price: String[15];
END;
Data_Sell = ARRAY [1..200] OF Sell;
VAR DataSet_Sell: Data_Sell;
i: 1..200;
File_Sell: FILE OF Data_Sell;
BEGIN
ClrScr;
Assign (File_Sell, 'Verkäufe.dat');
{$I-} Reset (File_Sell);
Read (File_Sell, DataSet_Sell);
Close (File_Sell); {$I+}
IF IORESULT <> 0 THEN ;
REPEAT
Write ('Datenbank-Entrag Nr. (1-200): ');
ReadLn (i);
IF i = 0 THEN Exit;
IF (DataSet_Sell[i].Date = '') THEN
BEGIN
WriteLn ('Datensatz ',i);
Write ('Datum: ');
ReadLn (DataSet_Sell[i].Date);
WriteLn ('Fonds: ');
ReadLn (DataSet_Sell[i].Fund);
Write ('ISIN: ');
ReadLn (DataSet_Sell[i].ISIN);
Write ('Stuecke: ');
ReadLn (DataSet_Sell[i].Shares);
Write ('Preis: ');
ReadLn (DataSet_Sell[i].Price);
WriteLn;
Rewrite (File_Sell);
Write (File_Sell, DataSet_Sell);
Close (File_Sell);
END
ELSE
BEGIN
WriteLn ('Datum: ',DataSet_Sell[i].Date);
WriteLn ('Fonds: ',DataSet_Sell[i].Fund);
WriteLn ('ISIN: ',DataSet_Sell[i].ISIN);
WriteLn ('Stuecke: ',DataSet_Sell[i].Shares);
WriteLn ('Preis: ',DataSet_Sell[i].Price);
END;
UNTIL i = 0;
ReadKey;
End;
Procedure Transaction;
Begin
Point := Point +1;
For I:= 1 to Point do
Begin
Writeln;
Write('Gewuenschte Transaktionsart: ');
Readln(Petition);
Case Petition of
'K': Buy;
'E': Exit;
'V': Sell;
else;
End
End;
Writeln;
End;
Begin
Headline;
Menue;
Transaction;
End.
Ich hoffe Ihr könnt mir weiterhelfen. Ich wär euch sehr dankbar dafür. Verbesserungvorschläge nehm ich auch gern entgegen, da ich noch ein ziemlicher Anfänger in diesm Gebiet bin.
ich hab da ein Problem mit der Programmierung meines Programms. Ich möchte mir gern ein kleines Programm zur Depotverwaltung mit Pascal basteln. Nun bin ich soweit gekommen, das es die verschiedensten Transaktionen in einer .dat-Datei speichert.
Nun hätte ich gern das es aus den Anteilen und dem Preis den ich eingebe die Summe errechnet und mit in der .dat-Datei speichert.
Zur Veranschaulichung hier mein Quellcode:
PROGRAM Project_Depot;
USES Crt;
Var Point:Integer;
Petition:Char;
Var I:Integer;
K,V,E:Char;
Procedure Headline;
Begin
Clrscr;
Writeln;
Writeln(' T E S T P R O G R A M M ');
Writeln('-------------------------------------------------------------------------');
Writeln;
Writeln(' M E N U: K - KAUF');
Writeln(' V - VERKAUF');
Writeln(' E - PROGRAMMENDE');
Writeln;
Writeln('-------------------------------------------------------------------------');
Writeln;
End;
Procedure Menue;
Begin
Writeln('* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ');
Writeln;
Write('Bitte Anzahl der gewuenschten Transaktionen eingeben: ');
Readln(Point);
Writeln;
Writeln('* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ');
Writeln;
End;
Procedure Buy;
TYPE Buy = RECORD
Date: String[10];
Fund: String[30];
ISIN: String[12];
Shares: String[15];
Price: String[15];
END;
Data_Buy = ARRAY [1..200] OF Buy;
VAR DataSet_Buy: Data_Buy;
i: 1..200;
File_Buy: FILE OF Data_Buy;
BEGIN
ClrScr;
Assign (File_Buy, 'Käufe.dat');
{$I-} Reset (File_Buy);
Read (File_Buy, DataSet_Buy);
Close (File_Buy); {$I+}
IF IORESULT <> 0 THEN ;
REPEAT
Write ('Datenbank-Entrag Nr. (1-200): ');
ReadLn (i);
IF i = 0 THEN Exit;
IF (DataSet_Buy[i].Date = '') THEN
BEGIN
WriteLn ('Datensatz ',i);
Write ('Datum: ');
ReadLn (DataSet_Buy[i].Date);
WriteLn ('Fonds: ');
ReadLn (DataSet_Buy[i].Fund);
Write ('ISIN: ');
ReadLn (DataSet_Buy[i].ISIN);
Write ('Stuecke: ');
ReadLn (DataSet_Buy[i].Shares);
Write ('Preis: ');
ReadLn (DataSet_Buy[i].Price);
WriteLn;
Rewrite (File_Buy);
Write (File_Buy, DataSet_Buy);
Close (File_Buy);
END
ELSE
BEGIN
WriteLn ('Datum: ',DataSet_Buy[i].Date);
WriteLn ('Fonds: ',DataSet_Buy[i].Fund);
WriteLn ('ISIN: ',DataSet_Buy[i].ISIN);
WriteLn ('Stuecke: ',DataSet_Buy[i].Shares);
WriteLn ('Preis: ',DataSet_Buy[i].Price);
END;
UNTIL i = 0;
ReadKey;
End;
Procedure Sell;
TYPE Sell = RECORD
Date: String[10];
Fund: String[30];
ISIN: String[12];
Shares: String[15];
Price: String[15];
END;
Data_Sell = ARRAY [1..200] OF Sell;
VAR DataSet_Sell: Data_Sell;
i: 1..200;
File_Sell: FILE OF Data_Sell;
BEGIN
ClrScr;
Assign (File_Sell, 'Verkäufe.dat');
{$I-} Reset (File_Sell);
Read (File_Sell, DataSet_Sell);
Close (File_Sell); {$I+}
IF IORESULT <> 0 THEN ;
REPEAT
Write ('Datenbank-Entrag Nr. (1-200): ');
ReadLn (i);
IF i = 0 THEN Exit;
IF (DataSet_Sell[i].Date = '') THEN
BEGIN
WriteLn ('Datensatz ',i);
Write ('Datum: ');
ReadLn (DataSet_Sell[i].Date);
WriteLn ('Fonds: ');
ReadLn (DataSet_Sell[i].Fund);
Write ('ISIN: ');
ReadLn (DataSet_Sell[i].ISIN);
Write ('Stuecke: ');
ReadLn (DataSet_Sell[i].Shares);
Write ('Preis: ');
ReadLn (DataSet_Sell[i].Price);
WriteLn;
Rewrite (File_Sell);
Write (File_Sell, DataSet_Sell);
Close (File_Sell);
END
ELSE
BEGIN
WriteLn ('Datum: ',DataSet_Sell[i].Date);
WriteLn ('Fonds: ',DataSet_Sell[i].Fund);
WriteLn ('ISIN: ',DataSet_Sell[i].ISIN);
WriteLn ('Stuecke: ',DataSet_Sell[i].Shares);
WriteLn ('Preis: ',DataSet_Sell[i].Price);
END;
UNTIL i = 0;
ReadKey;
End;
Procedure Transaction;
Begin
Point := Point +1;
For I:= 1 to Point do
Begin
Writeln;
Write('Gewuenschte Transaktionsart: ');
Readln(Petition);
Case Petition of
'K': Buy;
'E': Exit;
'V': Sell;
else;
End
End;
Writeln;
End;
Begin
Headline;
Menue;
Transaction;
End.
Ich hoffe Ihr könnt mir weiterhelfen. Ich wär euch sehr dankbar dafür. Verbesserungvorschläge nehm ich auch gern entgegen, da ich noch ein ziemlicher Anfänger in diesm Gebiet bin.