Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Erstellen einer Tabelle mit Sinus- und Cosinus Werten (https://www.delphipraxis.net/156498-erstellen-einer-tabelle-mit-sinus-und-cosinus-werten.html)

Blup 6. Dez 2010 09:33

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Mit "readln" werden vermutlich alle Zeichen bis zum Zeilenende in die erste String-Variable gelesen. Da bleibt für die zweite Variable nichts übrig.
Zwei Variablen in einer "readln"-Anweisung zu lesen funktioniert nur mit Variablen fester Länge.
Wie wird den die Datei erstellt?

hamptoncourt 6. Dez 2010 09:42

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Axo, ok ... ja, die Datei hatte ich auch mit writeln geschrieben ...

DeddyH 6. Dez 2010 09:49

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Und wie? Beide Werte in eine Zeile oder untereinander? Ich hätte mir die Stringumwandlung übrigens gespart und stattdessen dann doch lieber einen Record deklariert und diesen dann in einer typisierten Datei abgelegt, aber das muss ja jeder selber wissen.

hamptoncourt 6. Dez 2010 09:53

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Also sieht mein Quellcode aus, wie ich ihn jetzt für zwei Datein habe ...

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
   s, c : String;
   x : Integer;
begin
   assignfile(f,'SinWerte.txt'); // Erste Tabelle erstellen
   rewrite(f);

   for x:=0 to 900 do
    begin
     s:=floattostr(sin((x/10)*(pi/180)));
     write(f, s);
    end;

    closefile(f);

   assignfile(f,'SinWerte.txt');  // Zweite Tabelle erstellen
   rewrite(f);

   for x:=0 to 900 do
    begin
     c:=floattostr(cos((x/10)*(Pi/180)));
     write(f, c);
    end;

    closefile(f);

end;
Und so hatte ich es versucht, das in eines zu packen ...

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
   s, c : String;
   x : Integer;
begin
   assignfile(f,'Werte.txt');
   rewrite(f);

   for x:=0 to 900 do
    begin
     s:=floattostr(sin((x/10)*(pi/180)));
     c:=floattostr(cos((x/10)*(Pi/180)));
     write(f, s, c);
    end;

    closefile(f);

end;
Aber hast recht, der schreibt dann ja in eine Zeile z.B.
0,001745328365890,99999847691328

Wenn er die komplette Zeile einmal so liest, dann kommt nur blödsinn raus ...

DeddyH 6. Dez 2010 09:56

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Siehste, das ist der Unterschied zwischen write und writeln ;)

hamptoncourt 6. Dez 2010 10:03

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Ah, aber jetzt schein ich es fast zu haben ... du hattest mich da auf ne Idee gebracht, mit dem "untereinander"-schreiben ;-)

Habe das jetzt so geschrieben, dass er die Werte untereinander schreibt, abwechselnd Sinus und Cosinus ... das hat auch gut geklappt. Nur eine Datei und er schmeißt die richtigen Werte raus ... aber nun scheint das Programm nurnoch einmal zu laufen :-( wenn ich eine neue Zahl eingebe und wieder auf den Button klicke, dann kommt nen Error und das Programm schließt sich :-( ... mist *lol*

DeddyH 6. Dez 2010 10:04

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Und welcher Error? :glaskugel:

hamptoncourt 6. Dez 2010 10:08

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
"Project project1.exe raised exception class 'RunError(5)'"

Dann wechselt er in die Zeile "for x:=0 to 900 do begin", dem Beginn der Schleife zum Auslesen der Daten ...

Delphi-Quellcode:
assignfile(f,'Werte.txt');
  reset(f);

  for x:=0 to 900 do
   begin
    readln(f, s);
    sinWert[x] := strtofloat(s);
    readln(f, c);
    cosWert[x] := strtofloat(c);

   end;

DeddyH 6. Dez 2010 10:12

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Und wenn Du einmal einen absoluten Pfad angibst?

Blup 6. Dez 2010 10:25

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
RunError(5)
Vermutlich Zugriff verweigert weil "closefile(f)" an einer Stelle vergessen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.
Seite 3 von 4     123 4      

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