Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiformat .dat dateien
ratalert
29.04.2009, 10:37
Hallo zusammen,
ich wollte die Inhalte der .dat dateien vom FMS32(pro) mit einem selbstgeschriebenen Programm verarbeiten, jedoch verstehe ich nicht was diese Dateien für ein seltsames Format haben.
1.) Sind das Tabs zwischen den Einträgen, wenn ja wie kann ich die zählen
2.) Warum sind da ein haufen komischer Sonderzeichen?
Bspw.:
635011011/10/1 ELW
Hallo zusammen,
ich wollte die Inhalte der .dat dateien vom FMS32(pro) mit einem selbstgeschriebenen Programm verarbeiten, jedoch verstehe ich nicht was diese Dateien für ein seltsames Format haben.
1.) Sind das Tabs zwischen den Einträgen, wenn ja wie kann ich die zählen
2.) Warum sind da ein haufen komischer Sonderzeichen?
Bspw.:
635011011/10/1 ELW
Dieses Sonderzeichen wie du es nennst, entsteht meißtens dann wenn dein Editor das ursprüngliche Zeichen nicht richtig deuten kann.
Daher können vielleicht auch die Abstände kommen.
Hallo,
@ratalert
in dem Thread "Übergabe an Access" hab ich mal was zu Deinem Vorhaben gepostet, vielleicht kannst Du es gebrauchen.
Gruß Ralf
ratalert
29.04.2009, 18:14
ich habs versucht mit UniRed, der Editor kann verschiedenste Fileformate lesen aber keines passt...
ratalert
29.04.2009, 18:29
@Ralf:
ich habe gefunden was du damals gepostet hast. nur bin ich was vb angeht echt schlecht, kannst du mir bitte kurz sagen was du hier beim dateieinlesen machst?
Dateiname = "C:\Programme\Heirue-Soft\FMS32-Pro\Fahrzeug.dat"
Satzlaenge = 515
Dateiposition = 1
Set FMS = CurrentDb.OpenRecordset("Fahrzeuge")
Open Dateiname For Binary As 1
Dateilaenge = LOF(1)
Saetzeanzahl = Dateilaenge / Satzlaenge
For Zaehler = 1 To Saetzeanzahl
Eingang = String(Satzlaenge, " ")
Get 1, Dateiposition, Eingang
Dateiposition = Dateiposition + Satzlaenge
FMS.AddNew
FMS!Kennung = Left$(Eingang, 8)
FMS!Rufname = Mid$(Eingang, 9, 30)
FMS!Bezeichnung = Mid$(Eingang, 39, 40)
FMS.Update
Next Zaehler
Close 1
FMS.Close
Set FMS = Nothing
Und eine Tabelle "Ton5" mit den Feldern "Tonfolge" und "Klartext"
Dim Dateiname As String
Dim Dateilaenge As Long
Dim Satzlaenge As Long
Dim Saetzeanzahl As Long
Dim Dateiposition As Long
Dim Zaehler As Long
Dim Eingang As String
Dim FMS As DAO.Recordset
Dateiname = "C:\Programme\Heirue-Soft\FMS32-Pro\TON5.dat"
Satzlaenge = 323
Dateiposition = 1
Set FMS = CurrentDb.OpenRecordset("Ton5")
Open Dateiname For Binary As 1
Dateilaenge = LOF(1)
Saetzeanzahl = Dateilaenge / Satzlaenge
For Zaehler = 1 To Saetzeanzahl
Eingang = String(Satzlaenge, " ")
Get 1, Dateiposition, Eingang
Dateiposition = Dateiposition + Satzlaenge
If Left$(Eingang, 1) < "9" Then
FMS.AddNew
FMS!Tonfolge = Left$(Eingang, 5)
FMS!Klartext = Mid$(Eingang, 6, 44)
FMS.Update
End If
Next Zaehler
Close 1
FMS.Close
Set FMS = Nothing
@ratalert
Hallo,
ich weiß ja nicht, in welcher Programmiersprache Du arbeitest und in welchem Format Du die Daten speichern willst, mein Beispiel schreibt die Daten in eine Tabelle einer Access-Datenbank.
Die DAT-Dateien haben kein Satzendezeichen, sondern sind fortlaufend geschrieben. In der Fahrzeug.dat belegt ein Fahrzeug 515 Zeichen, dann fängt ein neues Fahrzeug an.
::Dateiname = "C:\Programme\Heirue-Soft\FMS32-Pro\Fahrzeug.dat"
::Satzlaenge = 515
::Dateiposition = 1
Öffnen der Tabelle "Fahrzeuge" in der akt. Datenbank
::Set FMS = CurrentDb.OpenRecordset("Fahrzeuge")
Öffnen der Fahrzeug.dat, LOF liest die Länge (Anzahl Zeichen) der Datei, geteilt durch 515 ergibt die Anzahl der Sätze (Fahrzeuge)
::Open Dateiname For Binary As 1
::Dateilaenge = LOF(1)
::Saetzeanzahl = Dateilaenge / Satzlaenge
Eine Schleife mit Anzahl der Fahrzeuge
::For Zaehler = 1 To Saetzeanzahl
Die Var. Eingang wird mit 515 Leerzeichen belegt
::Eingang = String(Satzlaenge, " ")
Jetzt werden 515 Zeichen geholt
::Get 1, Dateiposition, Eingang
In der Tabelle "Fahrzeuge" wird ein neuer Satz angefügt
::FMS.AddNew
In das Feld "Kennung" der Tabelle "Fahrzeuge" werden die linken 8 Zeichen aus Fahrzeug.dat geschrieben.
::FMS!Kennung = Left$(Eingang, 8)
In das Feld "Rufname" werden 30 Zeichen ab Pos. 9 geschrieben.
::FMS!Rufname = Mid$(Eingang, 9, 30)
In das Feld "Bezeichnung" werden 40 Zeichen ab Pos. 39 geschrieben.
::FMS!Bezeichnung = Mid$(Eingang, 39, 40)
Die Tabelle "Fahrzeuge" wird endgültig geschrieben
::FMS.Update
In der Fahrzeug.dat wird der Zeiger 515 Zeichen weitergeschoben
::Dateiposition = Dateiposition + Satzlaenge
und das Spiel beginnt von vorne
::Next Zaehler
In der Fahrzeug.dat ist noch mehr gespeichert, z. B. der letzte Status mit Datum und Uhrzeit, aber das habe ich nicht berücksichtigt, weil ich es nicht brauche.
Man muß natürlich nicht Access verwenden, nach gleichem Schema kann man auch TXT oder CSV erzeugen.
Gruß Ralf
ratalert
30.04.2009, 02:59
danke für die aufschlüsselung. ist dein vb script leicht so abänderbar dass es aus fahrzeuge.dat und 5ton.dat eine kommerseperierte csv erzeugen kann?
Natürlich geht das auch, nur den "Schreiben-Teil" anpassen.
Aber wenn Du Excel hast, lade Dir hier aus dem Forum das Programm e!fms-pro runter. Damit kannst Du DAT-Dateien in Excel öffnen und entsprechend speichern. Das liest auch die Daten aus, die ich nicht berücksichtigt habe.
Gruß Ralf
ratalert
14.07.2009, 19:09
Hi,
für FMS und ZVEI hab ich das jetzt hingebracht aber für POGSAG noch nicht.
Weiss da jemand wie's zu lesen ist?
Viele Grüße,
ratalert
Powered by vBulletin® Version 4.2.3 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.