2016-03-30 7 views
2

Ich habe eine veraltete VB-Anwendung, die noch etwas Leben darin hat, und ich möchte es in eine andere Sprache übersetzen.Extrahieren von Zeichenfolgen für die Übersetzung von VB6-Code

Ich plane, ein Ruby-Skript zu schreiben, möglicherweise unter Verwendung eines Parsers, um alle Zeichenfolgen aus den drei Millionen Zeilen der Quelle zu extrahieren, sie durch Konstanten zu ersetzen und sie in eine Zeichenfolgenressourcendatei zu verschieben.

Kennt jemand ein Skript/eine Bibliothek, die verwendet werden könnte, um die Zeichenfolgen intelligent zu extrahieren?

Antwort

1

Mir ist kein existierendes Standardwerkzeug bekannt, das Sie verwenden könnten. Wir haben ein solches Tool bei meiner Arbeit entwickelt und es hat gut funktioniert. Das FRM-Dateiformat ist ziemlich einfach (obwohl nur briefly documented). Wir haben ein Werkzeug geschrieben, das (1) alle Zeichenketten aus den Steuerdefinitionen extrahiert und (2) den Code generiert hat, um sie während der Laufzeit während neu zu laden.

+0

Danke für die Antwort @Mark, hast du irgendeine Intelligenz eingebaut, was für Strings ausgewählt wurden? – pingu

+0

Nicht sicher, was du meinst. Wir haben sichergestellt, dass alle relevanten Eigenschaften aus den Entwurfszeitdefinitionen oben in den FRM-Dateien extrahiert werden. Es gab auch Zeichenfolgen im Laufzeitcode (z. B. unten in FRM-Dateien und in ganzen .BAS-Dateien). Wir haben diese manuell extrahiert (mühsam), obwohl wir ein Add-In für die VB6-IDE geschrieben haben, um diesen Prozess zu erleichtern - wir können mit der rechten Maustaste auf einen String klicken und ihn automatisch (1) zur externen Übersetzungsdatei hinzufügen und (2) ersetzen im Code mit dem Code zum Laden der Übersetzung. – MarkJ