Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wert aus *.txt-File lesen (https://www.delphipraxis.net/3930-wert-aus-%2A-txt-file-lesen.html)

Haegar 6. Apr 2003 17:18


wert aus *.txt-File lesen
 
hi,
ich hab in meiner Textdatei sowas wie 8,847362983-E002 oder so stehen.
das wollte ich nu beim laden an eine variable übergeben, und das mit StrToDateTime formatieren, geht aber net.
hier mal der code.
Delphi-Quellcode:
procedure TForm1.bbtn_saveClick(Sender: TObject);
var datei:TextFile;
begin
 assignfile(datei,'info.txt');
 rewrite(datei);
 writeln(datei,dauer);
 closefile(datei);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var datei:TextFile;
    s:string;
begin
 assignfile(datei,'info.txt');
 rewrite(datei);
 readln(datei,s);
 closefile(datei);
 bisher:=StrToDateTime(s);
 lbl_zeit.Caption:=FormatDateTime('t',bisher);
end;
das speichern geht ja, aber beim auslesen kommt in der zeile Read(datei,s); ne felhlermeldung (Laufzeit) ala I/O fehler 104 oder so.
was soll das sein?


gruss haegar

sakura 6. Apr 2003 17:56

Beim Lesen darfst Du nicht Rewirte nutzen (löschen und neu erstellen), sondern Du musst Reset (öffnen) nutzen.

...:cat:...

Haegar 6. Apr 2003 19:44

jo das klappt, aber nu fehlermeldung: der wert 7.3734762873-E003 oder so ist kein gültiger Date und time wert oder so ähnlich! (laufzeit).
da is wohl bei "bisher:=StrToDateTime(s);" ein fehler oder?


gruss haegar

Daniel B 6. Apr 2003 20:00

Hallo,
Zitat:

Zitat von Haegar
da is wohl bei "bisher:=StrToDateTime(s);" ein fehler oder?

Und was soll das Bitte für ein Datum werden?
"7.3734762873-E003"

Grüsse, Daniel :hi:

Haegar 6. Apr 2003 20:04

ich hab das im timer auch so gemacht
Delphi-Quellcode:
procedure TForm1.timerTimer(Sender: TObject);
begin
 dauer:=Now-start+bisher;
 lbl_zeit.Caption:=FormatDateTime('t',dauer);
end;
wie soll ich das denn sonst speichern oder laden oder umwandeln???

gruss haegar

Daniel B 6. Apr 2003 20:09

Das ist Klar, nur ich verstehe nicht wie aus der riesen Zahl ein Datumswert werden soll. So jetzt rein optisch hat das hinten und vorne nicht mit Datum zutun. Sondern mit irgend welchen Zahlen. Oder ist das irgendwie Codiert oder sowas? Wo hast Du denn das her? SElbst gemacht?

Grüsse, Daniel :hi:

Haegar 6. Apr 2003 20:14

nur da was im timer steht!
Delphi-Quellcode:
start:=now; //bei start-knopf
dauer:=now-start+bisher; //im timer
lbl_caption:=FormatDateTime('t',dauer); //im timer
alle (dauer,start,bisher) sind alle von TDateTime
und dann hab ich einfach die dauer (als TDateTime-Format) in die txt-datei gespeichert.

so entsteht der schöne wert.
gruss haegar

edit: habs mal grad mit bisher:=StrToTime(s);
probiert aber auch diese fehlermeldung: '7,343442827E-0002' is not a valid time.
:(

Haegar 6. Apr 2003 21:18

ok habs......musste beim speichern einfach "TimeToStr(dauer)" nutzen, und dann ging das beim laden mit "StrToTime(s)" ganz einfach ;)

gruss haegar


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