AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Unbekanntes Dateiformat einlesen

Ein Thema von ryLIX · begonnen am 3. Dez 2008 · letzter Beitrag vom 1. Mär 2010
Antwort Antwort
Seite 1 von 5  1 23     Letzte » 
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 12:32
Moin liebe DP User,
es geht sich um folgendes Problem.
Ich habe einen ganzen Haufen ein Dateien deren Format ich nicht kenne.
Es scheinen typisierte Dateien zu sein da der aufbau immer bzw so gut wie immer gleich ist.

Ich habe nun von einem Bekannten ein Programm bekommen mit dem man diese Dateien ins Txt-Format umwandeln kann.
Dem Anwendungsicon nach zu Urteilen ist es eine Exe die mit Delphi erstellt wurde.

Nun suche ich nach einer Möglichkeit dieses Programm quasi nach zu schreiben bzw die kovertierung Funktion.
Da ich diese gern in einem eigenen Programm verwenden möchte.

Leider komm ich nicht weiter :/
Die Datei scheint im Unicode Format vorzuliegen da sie sich nicht in ein Memo laden lässt (hab keine TNT Komponenten installiert).

Nun war mein erster Ansatz diese Datei über einen FileStream einzulesen aber wie gehts dann weiter?

Noch kurz was zu Zweg der ganzen Sache:
Die Dateien enthalten Informationen über Parameter und Schlüsselwörter die zur Fahrzeugcodierung verwendet werden.
Damit is nicht Tachojustierung oder so gemeint sondern Daten zur Ausstattung o.ä . des Fahrzeugs.
Um mit der Software zur Codierung besser arbeiten zu können würde ich gerne die Schlüsselwörter und deren Parameter im Klartext darstellen.

Ich habe mal ein Paket angehängt was 4 Dateien enthält jeweils 2 Originale und die Konvertierte Version dazu damit man sich vorstellen kann was ich meine.


Vielleicht hat jemand eine Idee oder Möglichkeit wie man diese Dateien konvertiert.

P.S.: Ich habe versucht den Programmierer des Programms zu erreichen um dort die Routine zu erfragen hababer leider keine Antwort erhalten.
Angehängte Dateien
Dateityp: rar e46_917.rar (7,3 KB, 36x aufgerufen)
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 13:03
Hallo,

was es ist, weiß ich nicht: Kein Dbase (wenn auch Ähnlichkeiten vorhanden zu sein scheinen) kein Unicode.
Die Texte aus den Textdateien sind in den Binärdateien zu finden. Die einzelnen Zeichen zwischen den vielen Hex-Nullen spiegeln die Werte wieder, die in den Textdateien zu finden sind. Der "Kopf" der Dateien scheint bis etwa zu der Stelle zu gehen, an der der Dateiname in der Binärdatei steht. Bei hexadezimaler Betrachtung scheinen die Daten in der nächsten Zeile zu beginnen.

Versuch' mal, anhand der Textdateien, die Binärdateien zu lesen. Hex-Null ist immer das Ende (oder der Anfang?) eines neuen Wertes, tippe aber eher auf eine feste Satzlänge, das könntest Du dann mit 'nem Record lesen.
Die "Menge" der jeweils zu lesenden Bytes kannst Du eventuell auch den Textdateien entnehmen (ob 1 Byte, 2 oder wieviel auch immer).

PARZUWEISUNG_FSW : {00000000},00000000,0001,0608,{},(00 01),{68},{} findest Du in der Datei LSZ.C26 ab der Adresse 04d0, zwei aufeinanderfolgende Bytes musst Du dabei wohl in umgekehrter Reihenfolge lesen.
Probier mal, ob Du anhand dieser (unvollständigen) Info's den Inhalt der Datei LSZ.C26.txt in der Datei LSZ.C26 von "Hand" nachvollziehen kannst. Wenn das geht, solltest Du in der Lage sein, entsprechende Leseroutinen zu schreiben. Ist aber mit Sicherheit mehr Aufwand als so mal "eben" machen.
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 14:08
Wie nahpets/stephan schon geschrieben hat, ist es "einfach" nur Arbeit und Zeit die man investieren muss. Dadurch dass dir bereits eine Textversion zur Verfügung steht, sollte es nicht mehr so schwer fallen, die Binärdaten in Längen-, Anzahl-, Typen- und Wertangaben zu zerlegen. Im ersten Block scheinen die "Funktionen" definiert zu werden (Index -> Name, Parameteranzahl/-typen/-namen) und im zweiten Block scheinen die "Aufrufe" (per "Funktions"-Index) zu stehen.

Da hilft nur ein (langer) Blick mit einem handelsüblichen Hex-Editor.
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 15:39
Danke schon mal für Antworten.
Da werd ich wohl erstmal die Grundlagen lernen müssen über die Filestreams usw.

Wenn ihr eventuell ein paar gute Links zu dem Thema habt wäre ich dankbar

Hatte beim Delphi-Treff zwei Tutorials gefunden zu typisierten Dateien und Binärdateien.
Aber bin mir noch nicht so sicher ob mich das weiter bringt.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 16:00
Hallo,
nein, fange nicht an zu Programmieren, versuche zuerst die Dateien soweit zu analysieren, dass Du eine möglichst genau Vorstellung von ihrem Aufbau hast. Lass Dir Zeit dabei.

Ich würde versuchen, mir einen Record zu bauen, der eventuell so aussehen könnte:
Delphi-Quellcode:
type
  TMyRecord = record
    a: Byte;
    b: Word;
    c: Array[1..10] of char;
    // ... bis er alles enthält, was auch in den Textdateien steht.
  end;
Wenn Du dann weißt, wie groß ein Satz ist, kannst Du eventuell mit BlockRead an's lesen gehen oder dann nochmal nachfragen, was am sinnvollsten ist. Bei einer festen Satzstruktur kannst Du sicherlich anders vorgehen, als wenn Du eine flexible Satzlänge zu verarbeiten hast. Je genauer Du diese "Vorarbeit" machst, um so einfacher wird es nachher, es ist immer ärgerlich, wenn man eine Lösung fast fertig hat und sie dann auf ein paar Exoten doch nicht zutriff und man nochmal von vorne anfangen muss. Momentan tippe ich noch darauf, dass es sich um eine typisierte Datei handelt (Sprich: Struktur erarbeiten, dann weiterschauen).
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 16:20
Ok Danke für den Hinweis.

Ich hatte Angefangen den "Header" zu analysieren wobei mir aufgefallen ist das ein Zeichen dort regelmäßig vorkommt.
Und zwar immer dann wenn in der Textdatei ein Zeilenumbruch ist.
Code:
0300
Also ein Zeichen + Hex Null
Das zieht sich bis zur letzten Zeile die hat aber wiederrum diesen Abschluss nicht.

Da suche ich noch nach einem eindeutigem Zeichen.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 16:57
Hallo,

schön, dass heißt doch, dass Du in der Lage bist, bei einer Datei festzustellen, wieviele Spalten die Datenbanktabelle hat. Die Namen der Spalten bekommst Du auch heraus, wie hören die Namen auf, alle mit 00? Was steht da bis zum nächsten Spaltennamen? Läßt sich daraus die Länge einer Spalte oder der Datentyp ableiten?
Hast Du irgendeine Software, die auf diese Dateien zugreift und Dir "durch Anschauen der Bedienoberfläche" irgendwelche weiteren Hinweise geben kann.
Wie muss man den Definitionsbereich der Textdatei interpretieren? Ist da jede Zeile als Satzart zu bewerten, wieviele Fahrzeuge sind in einer Datei, eins oder mehrere?
Sind die Köpfe aller Textdateien identisch?
Die beiden Textdateien, die Du uns da gezeigt hast, scheinen auf unterschiedliche "Speicherarten" der Daten hinzuweisen, einmal Block und einmal Frei, was immer das jetzt genau bedeuten mag. Die Dateien mit Block scheinen mir systematischer zu sein. Stürz Dich zuerst mal nur auf einen Typ, wähl' Dir davon ein paar Dateien aus und vergleiche sie mit Totalcommander, oder Windiff oder was Dir da immer am liebsten ist, suche systematische Übereinstimmungen und systematische Unterschiede.

Hinter den Spaltennamen steht irgendwo nochmal der Dateiname, davor gibt es ein $FFFF, ist das das von die gesuchte "Ende"?

Insgesamt: eine sportliche Fleißarbeit

P.S.: Prüfe jede von Dir gefundene Regel an mehreren Dateien. Deine 03 könnte auch ein Hinweis auf die Länge des Wertes oder den Datentyp sein.
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#8

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 17:09
Dann werd ich mal das große Vergleichen anfangen

Noch kurz zu den Dateien:
Die Dateien gehören jeweils zu einem Fahrzeug bzw Modellreihe.
Die Angehängten Dateien sind Dateien zu zwei Steuergeräten für ein Fahrzeug.
Es gibt noch Dateien mit den Schlüsselwörtern bzw Parameterwörtern die anscheinend mehr wie der Header aufgebaut sind.
Ich muss da aber noch genauer reinschauen.

Insgesamt habe ich über 1000 Dateien zur verfügung um das Format zu entschlüsseln.
Ich denke das sollte reichen
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 17:16
Hallo,

Okay, Du geht's mit 'nem fröhlichen Optimismus daran, dass ist sehr hilfreich.
Wünsche Dir viel Erfolg.
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Unbekanntes Dateiformat einlesen

  Alt 3. Dez 2008, 17:35
hallo,
habe sowas auch frueher machen muessen. Als erstes habe ich immer versucht, die Satzlaenge rauszubekommen. Die Struktur ist dann ein kleineres Uebel. Aber nach den ersten 10 erfolgreich dekodierten Dateien..geht es flott Viel Glueck!
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf