Forum: PC-Programmierung Beste Sprache für Parser mit GUI?


von Oliver W. (oliver_w49)


Lesenswert?

Hallo zusammen,
ich habe ein kleines Anliegen:

Ich muss mir ein kleines Programm schreiben um Datensätze (ähnlich CNC 
Daten) von Format A nach Format B umzuwandeln.
Beide Datenformate sind ASCI-Dateien und auch für Menschen verständlich, 
einen ersten Test-Parser in C++ hab ich auch schon geschrieben als 
"Proof of Concept".

Jetzt möchte ich das ganze ein wenig verschönern, meine C++ Kenntnisse 
sind aber eher lückenhaft, daher macht es kaum Unterschied ob ich noch 
eine neue Sprache lerne.
Ich brauche also ein Programm/eine GUI, welche eine Datei einließt (nach 
Auswahl), die Datensätze herraussucht (bisher werden dynamisch je nach 
Anzahl der Teile structs mit allen Variablen erstellt und am Ende in die 
neue Datei wieder ausgegeben.
Die Gui soll noch ein paar Möglichkeiten haben wie Änderung der Anzahl, 
Änderung des Materials usw.

Ich habe bisher nur C/C++ Konsolenanwendungen geschrieben und daher kein 
Plan ob sich sowas in C schön lösen lässt.

Als Alternative überlege ich, die Parameter als Kommandozeilenparameter 
zu nutzen und eine GUI nur zur Dateiauswahl in einer Sprache nach Wahl 
zu nutzen.

Achja:
Betriebssystem Windows ab XP ;)

Vielleicht hat ja jemand einen guten Hinweis/Googleansatz/Whatever

Danke, Olli

von Rolf M. (rmagnus)


Lesenswert?

Ich würde C++ mit Qt nehmen. C eignet sich eher weniger für graphische 
Oberflächen.

von lalala (Gast)


Lesenswert?

python mit QT.

von Simon S. (-schumi-)


Lesenswert?

Also die flexibelsten Datenstrukturmöglichkeiten hat so weit ich weis 
Python. Dort kannst du quasi Arrays anlegen, aber mit Zahlen oder 
Strings als Indexen und die Daten sind auch beliebig (Zahlen, Strings, 
andere Arrays, whatever). Es funktioniert auch alles gemischt und 
durcheinander
1
>>> data = {}
2
>>> data["asdf"] = "Hans"
3
>>> data[3] = "Wurstbrot"
4
>>> data
5
{3: 'Wurstbrot', 'asdf': 'Hans'}
6
>>> data["innerData"] = {"abc": "def", 42: 1337}
7
>>> data
8
{3: 'Wurstbrot', 'innerData': {42: 1337, 'abc': 'def'}, 'asdf': 'Hans'}
9
>>> data["innerData"][42] += 1
10
>>> data
11
{3: 'Wurstbrot', 'innerData': {42: 1338, 'abc': 'def'}, 'asdf': 'Hans'}

Ich glaube es gibt nichts was sich damit nicht schön abbilden lässt ;-)

Als GUI WxWidgets oder QT oder was dir halt so gefällt

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon S. schrieb:
> Also die flexibelsten Datenstrukturmöglichkeiten hat so weit ich weis
> Python.

Naja, hängt schon vom Datenformat ab.

Solange man nur Text zeilenweise zerhackstücken will, sind Python
oder Perl gut brauchbar.

Wenn die Grammatik der Datensätze komplizierter wird, kann auch
Yacc ganz hilfreich sein.  Zwar gibt es auch dafür einen Python-Port,
aber die Einbindung in C/C++ ist meiner Meinung nach etwas weniger
gewöhnungsbedürftig, sodass in diesem Falle die Waage wieder etwas
mehr für C++/Qt stehen würde.

von Rolf M. (rmagnus)


Lesenswert?

Außerdem ist ja bereits Code in C++ vorhanden. Oder war das eher 
Wegwerfcode zum Experimentieren, der sowieso nochmal komplett neu 
geschrieben wird?

von MaWin (Gast)


Lesenswert?

Oliver W. schrieb:
> Ich muss mir ein kleines Programm schreiben um Datensätze (ähnlich CNC
> Daten) von Format A nach Format B umzuwandeln.

Wurde dafür nicht schon vor 40 Jahren AWK geschrieben ?

http://gnuwin32.sourceforge.net/packages/gawk.htm

von Delphi (Gast)


Lesenswert?

Nimm dafür das kostenlose Lazarus/Delphi, da ist die GUI gleich mit 
dabei:

http://www.lazarus.freepascal.org/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.