Autor |
Beitrag |
saeschman
Hält's aus hier
Beiträge: 5
Win 98 SE, Win XP Prof SP2, SuSe Linux 9.3 Prof
D7 Prof
|
Verfasst: Mi 07.09.05 10:05
Hallo!
Ich schreibe gerade an einem Programm zur Steuerung eines Kapazitätsmessgerätes.
Es liefert mir die Messwerte in folgender Form zurück:
2.39994E-11,-1.32396E-03
Gibt es eine Möglichkeit, wie ich diese Messdaten in ein Excelfile transferieren kann und zwar so, dass der Wert vor dem Komma in einer andern Spalte steht als der Wert nach dem Komma?
Im voraus schon mal vielen Dank für die Hilfe!
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 07.09.05 10:46
Hallo und  im DF!
Die einfachste Variante wäre glaube ich die, die Messdaten in einem einfachen Textfile abzuspeichern, und dann Excel dazu veranlassen, diese Datei als .csv (comma separated values) zu importieren. Dann kann man sich die Mühe mit OLE usw. sparen.
_________________ We are, we were and will not be.
|
|
saeschman 
Hält's aus hier
Beiträge: 5
Win 98 SE, Win XP Prof SP2, SuSe Linux 9.3 Prof
D7 Prof
|
Verfasst: Mi 07.09.05 11:24
Erstmal ein herzliches Dankeschön für die schnelle Hilfe und die freundliche Begrüßung!
Ich habe die Daten zuerst in einem Textfile gespeichert das hat ausgezeichnet funktioniert, nun wollte ich die Daten gleich in ein *.csv file ablegen. Ich hab das so versucht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TMessprogramm.ButtonTDClick(Sender: TObject); var s : string; maxlen : word; len : word; f : Textfile; begin send(17,'*TRG',status); send(17,'DATA?',status); enter(s,maxlen,len,17,status); EditMW.Text := s; MemoMW.Text := MemoMW.Text + s; AssignFile(f,'messwerte.cvs'); {$i-} Append(f); {$i+} if IOREsult <> 0 then begin Showmessage('Fehler...'); Exit end; WriteLn(f,s); CloseFile(f) end; |
Die ersten Zeilen nach dem Beginn sind zur Steuerung des Messgerätes. In meiner ersten Version hab ich anstatt messwerte.cvs messwerte.txt stehen, diese funktionierte einwandfrei. Ich dachte dann ich könnte einfach das .txt durch .cvs ersetzen. Kann ich es dennoch so abändern dass es gleich in ein cvs-file speichert?
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 07.09.05 11:34
Ein CSV-File ist eine reine Textdatei. Nur ist es üblich, dass in dieser Textdatei die Zeilen dann so aussehen. Quelltext 1: 2: 3:
| Wert1,Wert2,Wert3 Wert4,Wert5,Wert6 ... | Genauso ist ja eine Ini-Datei auch nur eine Textdatei. Die Speicherung sollte also genauso gehen, nur mit nem anderen Dateinamen. Aber bitte csv, nicht cvs - einen wirklichen Unterschied macht das aber auch nicht...
btw.: Die Memo-Komponente kennt SavetoFile 
_________________ We are, we were and will not be.
|
|
saeschman 
Hält's aus hier
Beiträge: 5
Win 98 SE, Win XP Prof SP2, SuSe Linux 9.3 Prof
D7 Prof
|
Verfasst: Mi 07.09.05 11:45
An das Speichern quasi direkt aus dem Memo heraus hab ich auch schon gedacht. Ich hab nur ein Programm dass mir je nach Einstellung z.B. alle 10tel Sekunde einen Messwert zurückliefert. Das Memo auf der Form war quasi nur als Kontrolle für den Benutzer gedacht. Ich hab dann nämlich im Endeffekt mehr Werte als auf mein Memo passen. Deshalb wollte ich es absichtlich anders speichern.
Aber das mit der Textdatei funktioniert einwandfrei danke nochmal dafür!
Bei meiner ersten Fragestellung hab ich noch dran gedacht bevor ich die Daten in die Textdatei schreibe eine Überprüfung des zweiten Messwerts(der nach dem Komma) einzufügen, da ich die Daten eigentlich nicht übernehmen will wenn sie negativ sind. Kann man das hier auch machen oder wird das zu aufwendig?
Danke nochmal!
|
|
|