Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   WICHTIG! Speichern und Laden von Messwerten (https://www.delphipraxis.net/156856-wichtig-speichern-und-laden-von-messwerten.html)

altair2 17. Dez 2010 10:22


WICHTIG! Speichern und Laden von Messwerten
 
moin moin an alle hilfsbereiten Programmierer der Welt!!!
Wir (unsere gruppe in der schule)müssen ein TEIL-Programm entwicklen, in dem wir Messwerte ,die vorher aufgenommen wurden
Kurze Info: Als Klasse sollen wir eine Automatische Spektrometermessung durchführen,wobei wir halt die aufgenommen wertepaare ein x und ein y wert abspeichern in einen editor speichern und mit einer daten-managment-language strukturiert danach auch leicht wieder auslesen können

hier is das programm selber ...(as wir bis jetzt haben ,wir können halt nicht viel)

Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Values, StdCtrls, ComCtrls, ImgList, ToolWin, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    sdMain: TSaveDialog;
    Button3: TButton;
    odMain: TOpenDialog;
    Memo1: TMemo;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  v  : TResultTable;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  v := TResultTable.Create(0,100,1,10);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  v.Destroy;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  x,y : integer;
begin
  randomize;

  for y := 1 to 10 do
  begin
    x := -v.Resolution;
    while x < v.MaxLambda-v.Resolution do
    begin
      x := x + v.Resolution;
      v.AddValue(x,random(5000)/1000)
    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  sl : TStringList;
  x,y : Integer;
begin
  if sdMain.Execute then
  begin
    sl := TStringList.Create;
    for y := 1 to 10 do
    begin
      x := -v.Resolution;

      while x < v.MaxLambda-v.Resolution do
      begin
        x := x + v.Resolution;
        sl.Add(FloatToStr(v.GetValue(x,y)))
      end;

     end;
     
    sl.SaveToFile(sdMain.Filename+'.sfkj');
    sl.Destroy;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if odMain.Execute then
  begin
    memo1.Lines.LoadFromFile(odMain.FileName);
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label2.Visible:= true
end;

end.
BITTE HELFT UNS!!!!!!!!!

Bernhard Geyer 17. Dez 2010 10:25

AW: WICHTIG! Speichern und Laden von Messwerten
 
Est mal Hallu und Willkommen.

Dann: Wieso wird der Quelltext nicht ordentlich als Quelltext eingebunden. Im Editor gibt es da so schöne Buttons mit denen man das kann. So bekommt man ja Augenkrebs.

Und wo ist jetzt die genaue Frage?

mkinzler 17. Dez 2010 11:20

AW: WICHTIG! Speichern und Laden von Messwerten
 
Auch und gerade wenn es schnell gehen soll, bietet sich die richtige Formatierung von Quellcode an, denn dann die die anderen Mitglieder eher bereit zu helfen.

DeddyH 17. Dez 2010 11:25

AW: WICHTIG! Speichern und Laden von Messwerten
 
Fehlt da eine Unit? Ich kenne jedenfalls keine Klasse TResultTable.

Uwe Raabe 17. Dez 2010 11:43

AW: WICHTIG! Speichern und Laden von Messwerten
 
Zitat:

Zitat von DeddyH (Beitrag 1069079)
Fehlt da eine Unit? Ich kenne jedenfalls keine Klasse TResultTable.

Vermutlich Values.pas. Wobei ich diesen Unit-Namen gleich in den Wettbewerb der ungünstigsten Unit-Namen 2010 anmelden möchte.

DeddyH 17. Dez 2010 11:49

AW: WICHTIG! Speichern und Laden von Messwerten
 
Meine Stimme hat er :)

sh17 17. Dez 2010 11:52

AW: WICHTIG! Speichern und Laden von Messwerten
 
Was mir mal so aufgefallen ist

- anstatt .Destroy vielleicht schon mal .Free verwenden
- Bei Memo.LoadFromFile fehlt die Dateiendung, die bei SaveToFile angegeben wurde.

//Edit

zumindest kann es ein durcheinander geben, wenn generell beim Speichern die Endung drangehängt wird, ohne zu prüfen, ob sie schon im Dateinamen enthalten ist.

DeddyH 17. Dez 2010 11:54

AW: WICHTIG! Speichern und Laden von Messwerten
 
Und ein try-finally-Block für die Stringliste wäre sicherlich auch nicht sinnlos.

[edit] Wenn die Datei über den Dialog ausgesucht wird, ist der Dateiname doch eh schon komplett. Man könnte aber einen Filter setzen. [/edit]

schlecki 17. Dez 2010 12:34

AW: WICHTIG! Speichern und Laden von Messwerten
 
und auch mal die Hilfe zu
Delphi-Quellcode:
Randomize
lesen.

altair2 19. Dez 2010 12:18

AW: WICHTIG! Speichern und Laden von Messwerten
 
Liste der Anhänge anzeigen (Anzahl: 1)
ok...es tut mir leid ,das ich den quelltext falsch angegeben habe..ich bin eine bekennende niete in informatik..:(
Die Aufgabe: Die Messwertepaare, die vorher aufgenommen wurden ,in eine .txt datei speichern !mit system! und danach wieder laden können und die messwerte an die nächsten weitergeben zu können. Eine .txt datei soll es sein,weil der Leher wünscht ,das man auch ohne programm die messwerte beispielsweise von hand in eine Tabelle eintragen zu können.

Das mit TResultTable war nicht unsere idee ,das war einer der einzigen mit programmiererfahrung in unserer klasse...
die werte sollen halt in einer art Tabelle abgespeichert werden...
für alle interessierten ,habe ich hier noch unser programm mit allen units und ähnlichem...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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