AGB  ·  Datenschutz  ·  Impressum  







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

Words falschrum gespeichert

Ein Thema von Neutral General · begonnen am 17. Feb 2008 · letzter Beitrag vom 18. Feb 2008
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Words falschrum gespeichert

  Alt 17. Feb 2008, 14:15
Hi,

Ich habe ein Problem. Ich lese eine Datei aus in der die meisten Daten in Words gespeichert sind. Das Problem ist das die Words genau falschrum gespeichert sind. Das heißt wenn in der Datei irgendwo steht:

3D 02

und ich dann dieses Word einlesen per Memory/FileStream dann steht in meinem Word

$023D



Und da so ziemlich die ganze Datei in Words gespeichert ist,ist das ganze ziemlich nervig. Habe mir zwar eine Funktion gebaut die die Words umdreht aber das ist mir eigentlich ein bisschen zu lästig...

Gibts da nicht irgendeine gute Lösung?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Words falschrum gespeichert

  Alt 17. Feb 2008, 14:22
Zitat von Neutral General:
Gibts da nicht irgendeine gute Lösung?
Die Datei auf einem Rechner mit korrekter Endianness auslesen Sprich: Nein
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Words falschrum gespeichert

  Alt 17. Feb 2008, 14:24



Ich hasse diese Dateien ...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

Re: Words falschrum gespeichert

  Alt 17. Feb 2008, 15:12
Zitat von Neutral General:
Hi,

Ich habe ein Problem. Ich lese eine Datei aus in der die meisten Daten in Words gespeichert sind. Das Problem ist das die Words genau falschrum gespeichert sind. ...
Hallo,

in Wirklichkeit gibt es in Dateien garkeine Words. Es gibt nur Bytes und daraus zusammengesetzte kundenspezifische Daten, die muss nur das Programm verstehen, das sie auch geschrieben hat.

Im Speicher gibt es bekanntlich Big Endian und Little Endian-Systeme, aber das hat nicht direkt was mit deinem Problem zu tun, es ist nur relativ wahrscheinlich, dass eine Standardfunktion in der gleichen Weise schreibt wie die Daten im Speicher stehen, muss aber nicht so sein. Bei ausführbaren Daten (EXE) ist es aber so, sonst wären sie schlecht blockweise einzulesen.

Da Intel Little Endian ist (Low Byte zuerst) sind deine Daten auch nicht "falschherum", sofern das überhaupt eine sinnvolle Bewertung ist, und sofern sie überhaupt so in der Datei stehen - dass solltest du mal mit einem Hex Editor untersuchen.

Gruss Reinhard
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Words falschrum gespeichert

  Alt 17. Feb 2008, 15:31
Moin Michael,

Zitat von Neutral General:
Das Problem ist das die Words genau falschrum gespeichert sind. Das heißt wenn in der Datei irgendwo steht:

3D 02

und ich dann dieses Word einlesen per Memory/FileStream dann steht in meinem Word

$023D


Was, für den Fall, dass es sich wirklich um Words handelt, auch völlig korrekt ist.

Zitat von Neutral General:
Habe mir zwar eine Funktion gebaut die die Words umdreht...
Das wäre dann wiederum falsch
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Words falschrum gespeichert

  Alt 17. Feb 2008, 15:57
Zitat von Reinhard Kern:
Zitat von Neutral General:
Hi,

Ich habe ein Problem. Ich lese eine Datei aus in der die meisten Daten in Words gespeichert sind. Das Problem ist das die Words genau falschrum gespeichert sind. ...
Hallo,

in Wirklichkeit gibt es in Dateien garkeine Words. Es gibt nur Bytes und daraus zusammengesetzte kundenspezifische Daten, die muss nur das Programm verstehen, das sie auch geschrieben hat.

Im Speicher gibt es bekanntlich Big Endian und Little Endian-Systeme, aber das hat nicht direkt was mit deinem Problem zu tun, es ist nur relativ wahrscheinlich, dass eine Standardfunktion in der gleichen Weise schreibt wie die Daten im Speicher stehen, muss aber nicht so sein. Bei ausführbaren Daten (EXE) ist es aber so, sonst wären sie schlecht blockweise einzulesen.

Da Intel Little Endian ist (Low Byte zuerst) sind deine Daten auch nicht "falschherum", sofern das überhaupt eine sinnvolle Bewertung ist, und sofern sie überhaupt so in der Datei stehen - dass solltest du mal mit einem Hex Editor untersuchen.

Gruss Reinhard
Ja mir ist schon klar das es in Wirklichkeit keine Words in Dateien gibt. Aber in der Dateispezifikation von diesen 3D2 Dateien steht halt als was welche Daten aufgewasst werden sollten. Habe mir die Datei im Hex-Editor angeguckt sonst würde ich es ja nicht sagen können

Im Hexeditor sind die ersten beiden Bytes

$3D $02

In meinem Programm muss ich nachdem ich ausgelesen habe auf $023D testen damit ich true bekomme. Habe auch diese Datei mit einem anderen Programm geöffnet. Und das ich die Words umdrehn muss wurde mir bestätigt. Z.b. sagt mir das andere Programm das in der Datei 29 Meshes gespeichert sind. Wenn ich die Datei lade sind es angeblich 7424 Meshes. Drehe ich das Word um steht 29 drin
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#7

Re: Words falschrum gespeichert

  Alt 18. Feb 2008, 02:04
Zitat von Neutral General:
Im Hexeditor sind die ersten beiden Bytes
$3D $02
Also sind die Daten von einem Big Endian System geschrieben worden (oder Byte für Byte). Kamma machen nix ausser eben byteweise lesen und umdrehen. Bei 32 und 64 bit Typen tritt das Problem in erweiterter Form auf.

Vorsicht: das gilt nur, wenn es eben auch Words sein sollen. Wenn du in der ganzen Datei gerade und ungerade Bytes vertauschst, muss das nicht richtig sein. Strings sind z.B. nicht betroffen!

Gruss Reinhard
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Words falschrum gespeichert

  Alt 18. Feb 2008, 02:37
Zitat von Reinhard Kern:
Also sind die Daten von einem Big Endian System geschrieben worden (oder Byte für Byte). Kamma machen nix ausser eben byteweise lesen und umdrehen. Bei 32 und 64 bit Typen tritt das Problem in erweiterter Form auf.
Ich kann auch als Doppel-Byte einlesen (also Word) und dann drehen. Oder ich lese Byte-weise ein und bau entsprechend gleich anders zusammen.

Zitat von Reinhard Kern:
Strings sind z.B. nicht betroffen!
Diese Aussage trifft nur zu, wenn es sich um Strings handelt, welche ein Byte pro Zeichen nutzen. Wenn es sich um WideString, UTF-16, UTF-32 etc handelt, dann tritt hier wieder das gleiche "Problem" auf.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:06 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