Was einen Ansatz für die Analyse einer Datei mit fester Länge Datensätze, wenn das Datensatz-layout ist nicht bekannt, erst zur Laufzeit?
Möchte ich parse eine Datei basierend auf einer Datensatz-layout in einer anderen Datei.
Grundsätzlich gibt es eine definition-Datei, die eine Komma-getrennte Liste der Felder und deren Längen. Es gibt viele von diesen, wird eine neue geladen werden jedes mal, wenn ich das Programm starte.
firstName,text,20
middleInitial,text,1
lastName,text,20
salary,number,10
Dann werde ich Anzeige einer leeren Tabelle mit dem mitgelieferten Spaltenüberschriften, und eine option zum hinzufügen von Daten durch klicken auf eine Schaltfläche oder was auch immer - ich habe noch nichts entschieden.
Möchte ich auch haben eine option, um beide laden Daten aus einer Datei, oder speichern Sie die Daten in eine Datei, mit der Datei-passend zu den beschriebenen format in die Definitionsdatei.
Beispielsweise, eine Datei zu laden (oder von der save-Funktion) für die obige definition Datei könnte wie folgt Aussehen.
Adam DSmith 50000
Brent GWilliams 45000
Harry TThompson 47500
Welche Art von Muster hier ganz nützlich sein könnte, und kann mir jemand von Zeigern eine grobe Anleitung, wie die Struktur, wie die Daten intern gespeichert und modelliert.
Würde ich mag zu denken, ich kann meinen Weg finden um die java-Dokumentation in Ordnung, aber wenn jemand kann mir irgendwo zu Beginn der Suche, es würde sehr geschätzt werden!
Dank
- Sie haben keine Kontrolle über das format (Auflösung) dieser Dateien? Aus deinem Beispiel bin ich zu verstehen, gibt es eine vordefinierte maximale Länge für jedes Feld, mit dem Rest aufgefüllt mit Leerzeichen? Warum sind Sie nicht durch Kommas oder Tabulatoren getrennt ist, wie üblich, mit flach - /csv-Dateien?
- Ja, ich habe die volle Kontrolle über die definition von Dateien, aber Sie werden erzeugt, basierend auf der Datenquelle die Felder fester Länge und den import - /export-Methoden, die für das system nur unterstützen, Feste Breite-Datei-Formate, nicht getrennte Formate.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So klingt es wie mir, dass Sie eine howToParse Datei und infoToParse-Datei mit den Anweisungen zum analysieren von Daten und Informationen zu analysieren, die in diesen Dateien jeweils.
Erste, ich würde Sie Lesen, in der howToParse-Datei und erstellen Sie eine Art von dynamischen Parser-Objekt. Es sieht aus, wie jede Zeile in dieser Datei ist eine andere ParsingStep Objekt. Dann brauchen Sie nur zu Lesen die Zeile, die gespeichert werden, wie ein String-Objekt und teilt die ParsingStep in seinen 3 teilen: Feldname, Datentyp, Länge der Daten.
Dann würden Sie haben, wie zum Parsen einer Zeile, dann brauchen Sie nur zu analysieren, durch die andere Datei und speichern Sie die Informationen aus dieser Datei, die wahrscheinlich in ein array.
Dann nur der andere code ist nur sicher, dass der parser die Analyse in der richtigen Reihenfolge.
Persönlich, ich möchte hinzufügen, einige Fehler zu überprüfen, die in der parse-Schritte nur für den Fall der infoToParse Datei ist nicht im richtigen format.
Hoffe, das hilft.