AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DFM-Datei binär?

Ein Thema von alcaeus · begonnen am 25. Feb 2005 · letzter Beitrag vom 28. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

DFM-Datei binär?

  Alt 25. Feb 2005, 11:34
Hallo allerseits,

ich habe hier eine dfm-Datei welche wohl Binär abgespeichert wird. Mein Delphi kann die Datei ganz normal lesen, aber auf einem anderen Computer kommt immer die Fehlermeldung "Invalid stream format". Weiß jemand wie ich die Datei (ohne alles neu zu machen) ins Textformat umwandeln kann? Ich hab zwar schon maximovs BinE probiert, leider ohne Erfolg.
Hat irgendjemand eine Idee?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 11:40
In Delphi gibt es irgendwo eine Option, wo man auswählen kann, als was gespeichert werden soll.

Du kannst aber auch ganz einfach die Datei in deinem Delphi öffnen, dann mir Rechts auf das entspechende Formular klicken, "Als Text anzeigen" auswählen und diesen Text dann mit 'nem Editor als Textdatei (allerdings mit .dfm) abspeichern und dann beide Dateien austauschen

(später speicher Delphi die Datei als das ab, als was sie geöffnet wurde)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#3

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 11:46
Zitat von alcaeus:
Weiß jemand wie ich die Datei (ohne alles neu zu machen) ins Textformat umwandeln kann? Ich hab zwar schon maximovs BinE probiert, leider ohne Erfolg.
Hat irgendjemand eine Idee?
Im BIN-Ordner der Delphi-Installation befindet sich ein Kommandozeilentool namens convert.exe (nicht mit dem Windows-Tool zum Konvertieren des Dateisystems verwechseln). Wenn Du die passende Delphi-Version nicht (mehr) hast, kannst Du ja mal hier fragen ob es jemand übernimmt...

Gruß Nico
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 11:48
Zitat von himitsu:
In Delphi gibt es irgendwo eine Option, wo man auswählen kann, als was gespeichert werden soll.
Ja, habs jetzt gefunden: Rechtsklick aufs Formular, und dann "Text DFM" auswählen. Ich hab die Checkbox sicherlich schon 1 Million mal gesehn, aber die wär mir wirklich nicht aufgefallen

Danke euch allen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 13:49
Zitat von alcaeus:
ich habe hier eine dfm-Datei welche wohl Binär abgespeichert wird. Mein Delphi kann die Datei ganz normal lesen, aber auf einem anderen Computer kommt immer die Fehlermeldung "Invalid stream format".
Diese Fehlermeldung kommt normalerweise nur wenn eine "ältere" Delphi Version das Binärformat einer "neueren" Delphi Format versucht zu lesen. (z.B. binäre D7 Dfm in D5 öffnen)
"Neuere" Delphi Versionen sollten aber immer noch das binäre Format der "älteren" Delphi Versionen lesen können.

Für dieses Problem gibt es das Tool DFMCleaner in der JVCL (jvcl\devtools\DFMCleaner)

dc.txt
DFMCleaner is a tool to remove unsupported properties from DFMs. If you save a dfm file in one version of Delphi and want to use it in an earlier version, chances are there are some unsupported properties in it, generating an error when the form is opened in Delphi. What's even worse, if the dfm is part of a design-time package, Delphi will install the package without errors but when you try to access the form at design-time (f ex if the form is used by a property editor), Delphi generates an AV instead.

Command-line:

dc.exe <options> <filemask> <filemask>

where <options> can be:
-i - replace in-line (output overwrites input). If not given, output uses input's filename but with a "txt" extension
-s - recurse into sub-folders
-f<filename> - read skiplist from <filename>, REQUIRED. Do not preceed filename with spaces!

<filemask> can be a filename or a filemask with wildcards. Also supports relative paths (like ..\source\*.dfm and source\*.dfm). Filemasks that contain spaces must be enclosed in single or double quotes

The output file is only written if it is different from the input. Input DFM's can be in either text or binary format but the output is always written in text format.

The skiplist has the following format:
Each row contains the name of a property to remove, preceeded by it's classname or a "*". A "*" means "any class".
Examples:
*.DesignSize - remove all DesignSize properties
TPageControl.TabIndex - remove TabIndex for TPageControl

Note that the tool cannot derive inheritance from the dfm, so all affected classes must be named explicitly, i.e if you want to remove TabIndex for TPageControl and all descendants, you must name them on one row each:
TPageControl.TabIndex
TJvPageControl.TabIndex
TPageControlEx.TabIndex
etc...

The skiplist file doesn't have to be sorted: it is sorted internally.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#6

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 13:55
Zitat von alcaeus:
Hallo allerseits,

ich habe hier eine dfm-Datei welche wohl Binär abgespeichert wird. Mein Delphi kann die Datei ganz normal lesen, aber auf einem anderen Computer kommt immer die Fehlermeldung "Invalid stream format". Weiß jemand wie ich die Datei (ohne alles neu zu machen) ins Textformat umwandeln kann? Ich hab zwar schon maximovs BinE probiert, leider ohne Erfolg.
Hat irgendjemand eine Idee?

Greetz
alcaeus
Moin,

könntest du die datei mal anhängen. Mich würde nämlich mal interessieren warum die binär inkompatibel sind. Bzw. ob das historisch bedingt ist, denn zum konvertieren benutze ich ja auch nur die aktuellen standard delphi streamin-routinen. Oder, wenn sensible daten, dann vielleicht die ersten 100 bytes.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#7

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 13:58
Was hat es denn für Vorteile die Dfm Datei binär und nicht als Text zu speichern?


MfG Pr0g
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 13:59
und dann wäre da auch noch JConvert aus dem JVCL Packet (jvcl\devtools\JConvert)

readme.txt
JConvert is a command-line tool to convert dfm files between text and binary format.

It differs from Borland's tool in two ways:

1. It doesn't create a new file unless the dfm was actually converted from one format to the other.
This is essential when working with VCS systems like CVS because you only have to commit the files that were actually translated. If you convert a lot of dfm's this can save you some bandwidth and the need to commit files that appears to have changed but in reality hasn't

2. You can use the -c switch to check how many files would have been converted
This is great when you want to know if all your dfm's are in the right format without actually change them
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#9

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 14:00
Zitat von Pr0g:
Was hat es denn für Vorteile die Dfm Datei binär und nicht als Text zu speichern?


MfG Pr0g
Theoretisch: Wenn du viele bilder importiert hast, dann ist die DFM doppelt so klein, da sonst alle binärdaten ins hex-format konvertiert werden.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: DFM-Datei binär?

  Alt 25. Feb 2005, 14:09
Zitat von Pr0g:
Was hat es denn für Vorteile die Dfm Datei binär und nicht als Text zu speichern?
Per default werden *.dfm Dateien in neueren Delphi Versionen immer als Text gespeichert.
Ab Delphi 5 (glaube ich) hatte man die Möglichkeit zwischen Binär- und Text-Format zu wählen.

Delphi 1 z.B. konnte nur binär speichern.

Daher können auch die aktuellen Versionen noch mit den binären Format umgehen.
(Sonst könnte man ja kein "altes Projekt" mehr öffnen.)

Intern im Speicher arbeitet Delphi mit dem Binärformat.

Der Vorteil wäre dann eine kürzere Ladezeit, da Delphi das Textformat nicht in das binäre umwandel muß (, der aber so klein ist, das er nicht ins Gewicht fällt).

Wenn Du ein Versionsverwaltungssystem einsetzt, würde ich Dir auf jeden Fall raten *.dfm Dateien als Text zu speichern, da es nur dann sinnvoll ist Delta Informationen zu bilden und ein Diff bzw. Merge eines Branches möglich wird.

Ich hoffe das beantwortet Deine Frage und verwirrt dich nicht zu sehr
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz