2009-04-09 10 views
1

Ich habe ein Tool, das Variablen für eine Simulation erstellt. Der aktuelle Workflow beinhaltet das manuelle Kopieren dieser Variablen in die Simulations-Eingabedatei. Die Eingabedatei ist eine Standardflachdatei, d. H. Nicht binär oder XML. Ich möchte das Hinzufügen der Variablen zu der flachen Eingabedatei automatisieren.Was ist der beste Weg, um die Mitte einer vorhandenen Flat-Datei zu bearbeiten?

Die Variablen kopieren über vorhandene Variablen in der Datei, z.

Neue Variablen: Länge 10 Höhe 20 Tiefe 30

Alte Variablen: ... Gewicht 100 Alter 20 Länge 10 Höhe 20 Tiefe 30 ...

Möchte die alten Variablen über die neue Variable kopieren lassen. Sie sind 200 Zeilen in die flache Eingabedatei.

Danke für irgendwelche Einblicke.

P.S. Dies ist unter Windows.

+0

Ich denke, Sie sind besser dran, die ganze Datei neu zu schreiben. – mpen

+0

@Mark, würde ich zustimmen - ich denke, das "wie" das Umschreiben der Datei ist die Frage, die beantwortet werden muss. – ninesided

Antwort

1

Wenn Sie festgefahren sind, stecken Sie fest und verwenden die altmodische Art, sie zu aktualisieren: Lesen Sie vom Original, schreiben Sie in die temporäre Datei, schreiben Sie entweder die ursprüngliche Zeile oder ändern Sie die Daten und schreiben Sie diese. Um Daten hinzuzufügen, schreiben Sie sie in die temporäre Datei an der entsprechenden Stelle. Um Daten zu löschen, kopieren Sie sie einfach nicht aus der Originaldatei.

Schließen Sie schließlich beide Dateien und benennen Sie die temporäre Datei in den ursprünglichen Dateinamen um.

Alternativ könnte es Zeit sein, über eine kleine Datenbank nachzudenken.

+0

Ich ging mit diesem Ansatz. Ich las die Datei in eine temporäre Variable ein, ging in die Mitte der Datei, änderte das Bit, das ich bearbeiten musste, und schrieb die Datei dann erneut aus. Scheint gut zu funktionieren, besonders da ich ganze Zeilen und nicht Teilzeilen ersetze. – JustADude

0

Für so etwas würde ich eine einfache template engine betrachten. Sie würden eine Basisvorlage mit vordefinierten Markertokens anstelle von Variablenwerten haben und dann einfach die für Ihre Engine erforderlichen Werte zusammen mit der Vorlage übergeben und die resultierende Datei ausgeben, die alle vorhanden und korrekt ist. Es gibt eine Reihe von Open Source template engines available in Java, die Ihre Bedürfnisse erfüllen würde, ich stelle mir vor, solche Dinge sind auch in Ihrer Sprache der Wahl verfügbar. Sie könnten sogar ohne allzu große Schwierigkeiten selbst rollen.

Verwandte Themen