Frage zu: xls Datei mit LcdHype auslesen

Also hier mal ein Bild.

Mich Interessieren nur die 26.6 und 0.93

Die 26.6 ist die Wassertemperatur und 0.93 der Durchfluss. Es werden auch immer die letzten Werte der csv Datei geladen. Das ist auch schon mal gut, da die Werte ja fortlaufen gespeichert werden.

Mich würde jetzt Interessieren wie man die csv Datei automatisch mit Aktualiesiert und die Werte nur angezeigt werden die man benötigt.

Hier meine csv Datei:https://mega.co.nz/#!HZk1XLoa!agfylk6OtGX7ryhVYgLatrweyAg00MzbpmogK-SF-Lc
 

Anhänge

  • test.JPG
    test.JPG
    625,7 KB · Aufrufe: 49
Du kannst jetzt einfach als zusätzliche Parameter die Spalten übergeben, die übernommen werden sollen. Wenn man z.B. nur die Spalten B und H will, sieht das dann so aus:
Code:
excel2csv.exe Grafik.xls Grafik.csv B H
Download: https://mega.co.nz/#!MxZR1BqL!2yUGs-r9JrwWAXcrt4Gpawfrbpsdr8iVRkVPye0um8U

Die absolut simpelste Möglichkeit um die XLS-Datei alle fünf Sekunden auszulesen wäre ein Batch-Skript, welches das Programm alle fünf Sekunden startet.

start.bat
Code:
@echo off
echo Aktualisiere Werte . . .
:loop
excel2csv.exe Grafik.xls Grafik.csv B H
sleep 5
goto loop
 
rechtsklick aufn desktop (oder wohin auch immer), neu -> textdokument. krams reinkopieren, speichern und per datei umbenennen (kann man auch F2 drücken) in irgendwas.bat. also auf die endung kommts da an, da sollte man in den ordneroptionen von windoof eingestellt haben, dass man alle endungen sieht. das müsste es an und für sich gewesen sein.
 
Die Spalten die ich brauche werden jetzt angezeigt. Das klappt ja schon mal.
Die bat Datei habe ich auch erstellt. Aber es kommt ab der zweiten Aktualisierung immer der Fehler das die excel2csv.exe ein Problem hat und beendet wird. Außerdem verbrauch die Umwandlung ganz schön CPU Leistung.
 
Welches Betriebssystem hast du denn? Der Sleep-Befehl funktioniert erst ab Windows 7. Falls er nicht ausgeführt wird, würde das die hohe CPU-Auslastung und die Fehlermeldungen erklären. Ich baue die Schleife wohl doch besser direkt in das eigentliche Programm ein. Dann sollte nichts mehr schiefgehen.
 
Ich nutze Windows 7 64bit und einmal windows 8.1 64bit aber unter Windows 8.1läuft die Lüftersteuerung Software noch nicht.

Kann man auch die abstände der Werte verändern?
 
Was meinst du mit Abstand der Werte?

Edit:
Neue Version mit Loop Excel2CSV v1.2.0

Der Aufruf
Code:
excel2csv.exe -c B,H -l 5 Grafik.xls
übernimmt nur die Spalten B und H, speichert die Ausgabe in die Datei Grafik.csv und aktualisiert die Werte alle 5 Sekunden.

Zum Beenden Strg + C drücken.
 
Zuletzt bearbeitet:
Ok Danke, werde das testen.
Mit dem Abstand der Werte meine ich, dass jetzt die Werte hintereinander 26.6,0.93 im Display stehen. Ich würde es gerne so anzeigen: Wassertemp.: 26.6 *C Durchfluss: 0.93 L/min.

Leider kann ich am ipad nicht richtig *C schreiben.

Danke auch für deine super Hilfe erst mal :daumen:
 
Naja, machbar wäre es schon. Allerdings halte ich es für sinnvoller, die Ausgabe einfach in LCDHype anzupassen.
 
Wenn man das Programm entsprechend anpasst, wäre das natürlich möglich. Allerding sehe ich den Sinn dahinter nicht. Meiner Meinung nach ist es besser, die anzuzeigenden Daten in LCDHype selbst zu formatieren.

Mit dem folgenden LCDHype-Skript kannst du das ganz leicht machen. Dabei wird die Letzte Zeile der CSV-Datei eingelesen und in ihre einzelnen Spalten zerlegt. Auf die jeweiligen Spalten kannst du dann über %Colums(Index) zugreifen. Index entspricht dabei der Nummer der Spalte minus eins, da der Index null-basiert ist. So müsstest du beim Erzeugen der CSV-Datei nicht mal angeben, welche Spalten du willst, weil du sie im LCDHype-Skript ja ohnehin auswählen kannst.

Code:
#Header
  %Common.SetPriority(5000)
  %DefList(Columns)
  %DefFunc(LoadData,Local,File=
    %DefVar(Line=%System.ReadFile(%File()))
    %List.Clear(Columns)
    %Loop.While(%String.Pos(',', %Line()) > 0)
    {
      %List.Add(Columns, %String.Copy(%Line(), 1, %Dec(%String.Pos(',', %Line()), 1)))
      %Assign(Line, %String.Copy(%Line(), %Inc(%String.Pos(',', %Line()), 1), %Dec(%String.Length(%Line()), %Inc(%String.Pos(',', %Line()), 1))))
    }
    %List.Add(Columns, %Line())
  )
#EndHeader

#TextMode
  %LoadData('E:\Fan O Matic Grafik\Grafik.csv')

  'Wassertemp.: ' %Columns(0) ' C'
  %Common.CreateNewLine()
  'Durchfluss : ' %Columns(1) ' L/min'
#EndTextMode

Das ist übrigens mit Abstand die abartigste Programmiersprache, die ich jemals verwendet habe.
 
Zuletzt bearbeitet:
Teste das nachher gleich mal alles.

In der Version: Excel2CSV v1.2.0 wird ja nur wieder B und H gespeichert. Sollte ich alles über LCDHype selbst wählen können, kannst du mir bitte noch mal eine Version Schreiben wo alle Werte drin sind mit der Loop Funktion?

Teste aber erst mal alles ausgiebig. Werde dann berichten.
 
Du kannst auch mit v1.2.0 sämtliche Werte speichern. Du musst einfach nur den c-Parameter weglassen beim Start.
 
Leider gibt es immer Probleme mit dem Programm. Bekomme immer noch eine Fehlermeldung, siehe Bild.
Ich denke das sich das Programm mit dem Fan-O-Matic Grafik Programm behakt.
 

Anhänge

  • Fan O Matic.jpg
    Fan O Matic.jpg
    39,9 KB · Aufrufe: 33
Es läuft ein paar Sekunden dann kommt das.
 

Anhänge

  • Fan O Matic.jpg
    Fan O Matic.jpg
    169,6 KB · Aufrufe: 32
Die ersten Test waren bis jetzt alle ohne Fehler.

Habe auch das Sript für LCDHype überarbeitet und getestet. Dort läuft auch erstmal alles. Teste das ganze noch mal ausgiebig.

Danke erst mal für die super Hilfe von dir :daumen:
 
Gern geschehen. Abgesehen von dem Thread war in den letzten Tagen in diesem Bereich vom Forum ja ziemlich tote Hose. Insofern muss man ja eigentlich dankbar sein, dass mal jemand ein halbwegs interessantes Problem hatte.
 
Zurück