PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfache grafische Programmierumgebung?


boxleitnerb
2012-05-07, 07:38:07
Ich wollte ein kleines Programm schreiben zur Datenauswertung aus ein paar Txt-Dateien. Da ich nur dafür keine Lust habe, zig Seiten Text zu programmieren und in Java auch grad nicht mehr so fit bin, würde ich das gerne in einer grafischen Programmierumgebung machen. Habe es schon mit LabView versucht, wo ich mich gut auskenne, allerdings geht das dort aus diversen Gründen nicht so wie ich es will.

Was gibts für Alternativen? Im Endeffekt brauche ich viele Schleifen und Arrays, das würde ich mir gerne bequem zusammenklicken.

Gast
2012-05-07, 09:04:22
Welche Probleme hast du denn in LV? Vielleicht kann ich dir helfen.
Wenns nur um Files lesen und String Manipulationen get, kann ich mir nicht vorstellen das LV da limitiert.

Gast
2012-05-07, 09:17:53
Ansonsten: In z.B. Python geht sowas ziemlich schnell.

boxleitnerb
2012-05-07, 09:22:21
Ich will zwei Textdateien mit den Spieleprofilen der Nvidiatreiber vergleichen, die mir das SLI Profile Tool ausspuckt. Es gibt ja ein VI, das eine Tabelle aus einer txt einliest:
http://zone.ni.com/reference/en-XX/help/371361E-01/glang/read_from_spreadsheet_file/

Leider bastelt Labview mir da haufenweise Leerzeichen rein.
So ein Profil sieht eigentlich so aus:

Profile "1944 Battle for the Bulge"
ShowOn GeForce
ProfileType Application
Executable "ardennes.exe"
Setting ID_0x1033cec1 = 0x00000003
Setting ID_0x1033dcd2 = 0x00000002
Setting ID_0x1095def8 = 0x02000001
EndProfile

Aus z.B. der zweiten Zeile macht er dann aber sowas:
S h o w O n G e F o r c e

Ich benutze im späteren Verlauf ein fertiges VI, um bestimmte Einträge in diesen Profilen zu finden und mit diesen dann weiterzuarbeiten:
http://zone.ni.com/reference/en-XX/help/371361E-01/glang/match_regular_expression/

Problem ist jetzt, dass mit den vielen Leerzeichen beim Aufrufen dieses VIs laufend Fehler 4702 bekomme:
One of the string parameters contains a null character. LabVIEW does not support null characters for regular expression matching.

Ich bekomme es also nicht hin, meine Daten so zu formatieren, dass diese Funktion gescheit durchläuft. Ich habe mal die mein vi mit zwei dieser Textdateien hochgeladen. Labviewversion ist 2010.

Edit:
Ich hab die gewünschte Funktionalität schon mit Excel Makros realisiert, würde aber gerne eine Standalone exe basteln, weil nicht jeder Excel drauf hat und nicht jeder Makros aktivieren will aus Sicherheitsgründen. Es wäre gut, wenn man das Ergebnis in einer ansprechenden Tabellenform präsentieren könnte, das sieht ja bei LabView etwas mau aus, weil es eher auf Graphen spezialisiert ist.

ScottManDeath
2012-05-07, 09:29:14
Vielleicht sind die Strings nicht ANSI/ASCII codiert sondern UTF8/16 oder UNICODE, welche null bytes innerhalb des Strings haben, und nicht nur am Ende, wie single byte Strings. Das koennte Labview verwirrern.

https://decibel.ni.com/content/docs/DOC-10153

Aber ansonsten stimme ich zu, Mit Python sollte das einfach gehen.


Wenn es nur ums Vergleichen geht, warum nicht WinMerge?

http://winmerge.org/

boxleitnerb
2012-05-07, 09:43:46
Wie kann ich die Codierung rausfinden und ggf. ändern? Auf das Tool, was die txt erst erzeugt, hab ich keinen Einfluss. Mir fällt grad ein, mit dem NV Inspector kann man die Profile auch wieder in eine Textdatei schreiben, vielleicht macht der was anderes draus.

Bzgl. WinMerge:
Ich wollte am Ende eine Liste darstellen, in der nur die geänderten/neuen/nicht mehr vorhandenen Profile dargestellt werden. Ungefähr so:
http://www.abload.de/thumb/profilvergleichhbupr.png (http://www.abload.de/image.php?img=profilvergleichhbupr.png)

Dafür muss ich die Einträge formatieren, sortieren und dann Strings vergleichen und Einträge löschen bzw. verschieben.

Was kannst du bei Python empfehlen, gibts da verschiedene Lösungen für graphische Programmierung? Python als Sprache kenne ich nicht, sollte also schon abstrahiert sein.

Edit:
Ich habe jetzt nochmal mit Labview rumgespielt. Also das eingelesene Array sieht so aus:
http://www.abload.de/thumb/arrayxtdry.png (http://www.abload.de/image.php?img=arrayxtdry.png)

Woher die Leerzeilen kommen, weiß ich nicht, die sind in der Textdatei nicht drin. Jedenfalls sind sie nicht ganz leer, sondern da ist ein Leerzeichen. Und schon daran scheitert es mit der Meldung, ein "Null Character" wäre vorhanden. Das Lustige: Wenn ich ein Array mit Stringkonstanten mache und da ein Leerzeichen selbst von Hand eintrage, gibt es kein Problem. Liegt also wohl wirklich an der Formatierung. Nur, wie ändere ich die?

ScottManDeath
2012-05-08, 05:09:30
Es kann sein das Labview mit der Zeilenendknovention von Windows durcheinander kommt, imvergleich zu Linux

boxleitnerb
2012-05-08, 07:22:20
Ich hab inzwischen eine Lösung gefunden. Ein glücklicherweise schon fertiges VI, das von UTF16 auf ASCII konvertiert. Das war scheinbar das Problem, jetzt wird nämlich alles so eingelesen wie es soll.
Danke für den Tipp, allein wär ich nie drauf gekommen.

ScottManDeath
2012-05-08, 08:37:51
Cool :)

Gast
2012-07-02, 16:47:27
Vielleicht sind die Strings nicht ANSI/ASCII codiert sondern UTF8/16 oder UNICODE, welche null bytes innerhalb des Strings haben, und nicht nur am Ende, wie single byte Strings.Bei UTF-8 gibt es keine Nullbytes mitten im String.