Sali zusammen, es geht um die Firmware eines 3D Printers, welche eine config Datei beinhaltet: https://github.com/Ultimaker/Ultimaker2Marlin/blob/master/Marlin/Configuration.h Die define values sind alle abhängig von der Hardware. Ursprünglich in der alten Version (firmware_k8200_marlinv2) sind die Parameter für meinen K8200 definiert. Wenn ich den aktuellen source downloade, müsste ich die ganzen Werte manuell abgleichen und übernehmen in die neue Config. Gibt es da ein Tool, welches alle define Parameter von Datei A in Datei B schreibt? Oder ein Tool was jedes define eines Headers oder .C, in einem .CSV als Zeile mit Wert darstellt. Besten Dank.
:
Bearbeitet durch User
Die Frage ist überhaupt nur dann sinnvoll, wenn ein einfaches "copy" das Problem nicht löst. Aber sind Dir auch grep, sed, awk, perl oder reguläre Ausdrücke usw. ein Begriff? Wenn ja: warum reichen die nicht? Was macht es, bzw. welche Umstände machen es notwendig, hier zu fragen?
Einfach ein Merge-Tool nehmen, z.B. Meld oder WinMerge oder, oder, oder...
Ok, danke - grep ist mir bekannt (müsste aber Schritt für Schritt jedes mal den Suchbefehl ändern für jedes define, copy paste und von vorne...) - Merge tools kenne ich, danke habe ich probiert aber das ist nicht vollautomatisch. Wenn ich was gefunden habe, wird's gepostet...
In einem Texteditor deiner Wahl (geany mag ich zum Beispiel ganz gerne) nach folgendem regulären Ausdruck suchen ohne die Anführungszeichen): "^[ \t]{0,}#define" Man kann das ganze in der Linux Kommandozeile aber noch ausbauen, schau dir mal das Manual zu grep an. Damit kann man wunderbar nach Dateien suchen die bestimmte Ausdrücke enthalten und diese auch gleich ausgeben oder in eine Datei umleiten. Ob dir die defines bei deinem eigentlichen Problem helfen werden ist allerdings fraglich.
Ich verstehe das auch nicht so recht. Du hast doch geschrieben: > Gibt es da ein Tool, welches alle define Parameter > von Datei A in Datei B schreibt? Danach müsstest Du mit grep (oder was auch immer) lediglich nach "#define" gefolgt von irgendwas (\\ lassen wir jetzt mal aus) suchen und das Ergebnis in die Datei B schreiben. Falls nicht, dann fehlen noch Details zu dem Problem.
Nach kurzem Blick in dein configfile würde ich sagen die defines alleine helfen dir nicht weiter.. Ich würde eher nach den #ifdef Zeilen suchen und die passenden defines zur Steuerung des Preprocessor irgendwo ganz oben anlegen. Die Anpassung des Suchausdrucks überlassen ich dir als kleine Übung.
Gern ein genauerer Beschrieb:
> von Datei A (configuration.h - alt) in Datei B (configuration.h - neu) schreibt.
In der neuen config sind andere Werte der Defines, diese sollen durch
Werte der Datei A ersetzt werden, ohne dass ich was manuell kopiere.
Ablauf:
- Finde das erste #Define mit Name X in Datei A und dessen Wert Y
- Suche in Datei B den Namen X und ersetze den Wert durch Y
- Wiederholung bis das letzte define in Datei A gefunden wurde, oder der
Name in Datei B nicht vorhanden sei.
***
-Grep kann ich unter Windows auf die schnelle nicht nutzen, aber es ist
schon ein gutes tool. (Die Ausgabe ist halt im Text format und nicht im
CSV)
- "^[ \t]{0,}#define"
Werd ich mal morgen probieren über VM.
:
Bearbeitet durch User
CygWin installiere ich als erstes, damitCygWin installiere ich als erstes, damit > -Grep kann ich unter Windows auf die schnelle nicht nutzen, aber es ist > schon ein gutes tool. dies NICHT passieren kann. Ich kann ohne (PC)REs keine Tastatur anfasse, da würde ich sterben...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.