AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten einlesen + ausgeben

Offene Frage von "belinea"
Ein Thema von belinea · begonnen am 20. Jan 2009 · letzter Beitrag vom 20. Jan 2009
Antwort Antwort
belinea

Registriert seit: 20. Jan 2009
1 Beiträge
 
#1

Daten einlesen + ausgeben

  Alt 20. Jan 2009, 23:17
Hallo!
Ich habe ein ziemlich großes Problem. Habe die Aufgabe aus verschiedenen Dateien die Daten auszulesen und diese dann auszugeben. Ich habe bereits ein vorgefertigtes Hauptprogramm, welches ich nicht verändern darf und soll dazu die Unit "DateioperationenSolar" erstellen.

Hier ist der Code aus der vorgegebenen Unit:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MittelwerteStringGrid: TStringGrid;
    MaxWertLabeledEdit: TLabeledEdit;
    MaxZeitLabeledEdit: TLabeledEdit;
    ErgebnisseSpeichernButton: TButton;
    BeendenButton: TButton;
    EinlesenButton: TButton;
    MonatComboBox: TComboBox;
    TagComboBox: TComboBox;
    MonatLabel: TLabel;
    TagLabel: TLabel;
    procedure BeendenButtonClick(Sender: TObject);
    procedure EinlesenButtonClick(Sender: TObject);
    procedure ErgebnisseSpeichernButtonClick(Sender: TObject);
  private
    procedure DatumErfassen(Var Datum: String);
  end;

var Form1: TForm1;

implementation {$R *.dfm}
Uses DateioperationenSolar;

Var DateiDatum : String;
    StundenMittel : TStundenMittel;
    Maximum : TDatensatz;

procedure TForm1.BeendenButtonClick(Sender: TObject);
begin
  Application.Terminate
end;

procedure TForm1.EinlesenButtonClick(Sender: TObject);
Var Stunde : Integer;
begin
  DatumErfassen (DateiDatum);
  DatenEinlesen (DateiDatum, StundenMittel, Maximum);
  MaxWertLabeledEdit.Text := FloatToStr(Maximum.Wert);
  MaxZeitLabeledEdit.Text := IntToStr(Maximum.Stunde) + ' : ' +
                             IntToStr(Maximum.Minute);
  For Stunde := ersteStunde To letzteStunde Do
  Begin
    MittelwerteStringGrid.Cells [0,Stunde - ersteStunde + 1] := IntToStr(Stunde);
    MittelwerteStringGrid.Cells [1,Stunde - ersteStunde + 1] :=
                         FloatToStrF(StundenMittel [Stunde], ffNumber, 4, 0);
  End;
end;

procedure TForm1.ErgebnisseSpeichernButtonClick(Sender: TObject);
Var ErgebnisDatei: TextFile;
    ErgebnisdateiName: String;
begin
  DatenSpeichern (StundenMittel, Maximum, DateiDatum);
end;

procedure TForm1.DatumErfassen(Var Datum: String);
begin
  Datum := IntToStr (1 + TagComboBox.ItemIndex) + '_' +
           IntToStr (1 + MonatComboBox.ItemIndex);
end;

end.
So, das ganze soll aus Dateien ausgelesen werden, die in dem Format "1_6.DAT" oder "17_6.DAT" vorliegen.
In den Dateien gibt es Werte, die in dem Format vorliegen:
Code:
283   0    7  0
Der erste Wert, gibt den Volt-Wert an, die 0 gibt nichts an (ist in jeder Zeile 0) und der letzte Wert die Uhrzeit. Das ganze ist mit Tabs getrennt.

Das Programm soll jetzt den Mittelwert von den einzelnen Stunden berechnen und man soll den Tag auswählen können. Das Problem ist, unser Lehrer hat uns quasi nichts dazu erklärt und ehrlich gesagt kann keiner die Aufgabe lösen. Ich denke mal, die Aufgabe ist nicht wirklich schwer, aber wenn man nicht erklärt bekommt wie es geht, kann man es ja auch nicht lösen :/

Ich habe bereits einen Teil von DateioperationenSolar programmiert, allerdings funktioniert da noch nicht wirklich etwas und ich glaube auch mein Ansatz ist falsch.

Hier mal kurz mein Ansatz, allerdings kann man wahrscheinlich alles verwerfen :/
Delphi-Quellcode:
unit DateioperationenSolar;

interface

const
   ersteStunde = 7;
   letzteStunde = 19;

type
  TStundenMittel = array[7..19] of real;
  TDatenSatz = Record
               wert: real;
               Stunde: integer;
               Minute: integer;
               end;

procedure DatenEinlesen (D:string;s: TStundenMittel; M:TDatenSatz);
procedure DatenSpeichern (s: TStundenMittel; M: TDatenSatz; D: String);

implementation

procedure DatenEinlesen (D:string; s: TStundenMittel; M:TDatenSatz);
type TFeldtyp = array of string;
var solarfile: Textfile;
puffer: string;
i: integer;
n: integer;
zweipuffer: TFeldtyp;
laenge: integer;
drittpuffer: TFeldtyp;
wert: TFeldtyp;
ersteabschneidstelle: integer;
abschneidstelle: integer;
begin
  AssignFile(solarfile, D + '.dat');
  reset(solarfile);
    repeat
      Read (solarfile,puffer);
      Inc(n);
      zweipuffer[n]:= puffer;
      laenge := length(zweipuffer[n]);
      for i:= 1 to laenge do
        begin
          if zweipuffer[n] = '#9then
            begin
              ersteabschneidstelle := abschneidstelle;
              abschneidstelle := i;
              drittpuffer[i] := copy(zweipuffer, ersteabschneidstelle, abschneidstelle);
            end;
        end;
    //drittpuffer := copy(zweipuffer);
    until EoF (solarfile);
    closefile(solarfile);
    for i:=1 to n do
end;

procedure DatenSpeichern (s: TStundenMittel; M: TDatenSatz; D: String);
begin
end;

end.
Ich hoffe ihr könnt mir helfen! Vielen Dank im Vorraus!

belinea
  Mit Zitat antworten Zitat
taaktaak

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

Re: Daten einlesen + ausgeben

  Alt 20. Jan 2009, 23:29
Zunächst ein herzliches Willkommen in der DP!

... und wo liegt nun das konkrete Problem?
Was funktioniert da nicht?
Ralph
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#3

Re: Daten einlesen + ausgeben

  Alt 20. Jan 2009, 23:42
-.-'
http://www.delphipraxis.net/internal...368&highlight=

Besonders Punkt 3 und 4 beachten !
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Daten einlesen + ausgeben

  Alt 20. Jan 2009, 23:44
Gleich mehrere Crossposts...
Diese solltest du angeben. Überall denken jetzt Leute darüber nach und schreiben etwas dazu statt nachschauen zu können ob es anderswo schon Antworten gibt...

http://forum.delphi-treff.de/showthread.php?t=25672
http://www.delphi-forum.de/viewtopic.php?p=545201
Sebastian Jänicke
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Daten einlesen + ausgeben

  Alt 20. Jan 2009, 23:53
Oh, delphi-treff? Das wird dort nicht lange ein Crossposting bleiben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 09:27 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