AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Umwandlung Big Endian nach Little Endian
Thema durchsuchen
Ansicht
Themen-Optionen

Umwandlung Big Endian nach Little Endian

Ein Thema von jryan · begonnen am 1. Dez 2003 · letzter Beitrag vom 3. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
jryan

Registriert seit: 25. Nov 2003
19 Beiträge
 
Delphi 7 Architect
 
#1

Umwandlung Big Endian nach Little Endian

  Alt 1. Dez 2003, 15:02
Hallo alle zusammen!

Ich stehe vor dem Problem, das ich eine Datei habe, in der Zahlenwerte binär im Big Endian Format abgelegt sind. Beim Einlesen dieser Daten per TFileStream.ReadBuffer erhalte ich in meiner Buffervariable natürlich eine falsche Zahl.
Gibt es eine schnelle Variante (evtl. neue TStream-Komponente) die die Konvertierung für mich erledigt? (so das ich in meiner Buffervariable den richtigen Wert habe)

MfG
-jryan
  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: Umwandlung Big Endian nach Little Endian

  Alt 1. Dez 2003, 15:32
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif und ein herzliches Willkommen in unsserer Gemeinde.

Schau mal in der OH nach:

LoadFromStream (Methode von IXMLDocument)
TXMLEncodingType (Typ)


http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
jryan

Registriert seit: 25. Nov 2003
19 Beiträge
 
Delphi 7 Architect
 
#3

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 07:09
Hallo himitsu!

Danke für den Hilfeversuch, aber leider hat dieses Problem nichts mit XML zu tun sondern ist eine völlig andere Baustelle.
Es geht mir dabei wirklich darum eine reine Binärdatei in Delphi einzulesen und zu bearbeiten. Diese Binärdatei ist, dabei aber wie gesagt BigEndian codiert.

-jryan
  Mit Zitat antworten Zitat
Rainer_Unger

Registriert seit: 2. Dez 2003
Ort: Heidelberg
17 Beiträge
 
#4

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 07:41
Hallo,

rechne die Dinger doch um. Hab das Ganze mit little Endian gemacht. Überhaupt kein Problem. Nur High und low Byte vertauschen.

Rainer
Ich weiss was ich kann und vor allem auch was ich nicht kann!
Du auch?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 08:12
Ich hatte mir nur gedacht, dass du dir dieses XML-Zeug für deine Zwecke mißbrauchen könntest.

Wenn nicht, bleibt dir nichts anderes als es selber umzuwandeln, wie Rainer schon sagte.

Den Aufbau kannst du in etwa aus den Typennamen in "TXMLEncodingType (Typ)" entnehmen.


http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
jryan

Registriert seit: 25. Nov 2003
19 Beiträge
 
Delphi 7 Architect
 
#6

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 09:43
Tja dann muss ich mir wohl doch selber was ausdenken! Ich hatte bloss gedacht, das es evtl. schon irgendwas vordefiniertes gibt und warum sollte man das Rad jedesmal neu erfinden!

-jryan
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 09:49
Hallo jryan,

mit einer "schnelle Variante" meinst Du sicher eine, die wenig Änderungen an Deinem Programm erforderlich macht, oder?
Du könntest einen "Dekorierer" (Hier im Forum suchendecorator pattern) entwickeln, der von TStream erbt, die Methoden ReadBuffer, WriteBuffer, Seek, etc. überschreibt und an einen aggregiertes Exemplar von TStream (in Deinem Fall ein TFileStream) delegiert.
Mit dieser Lösung kannst Du einfach ein Exemplar dieser Klasse überall dort verwenden, wo Du bisher mit mit Stream gearbeitet hast, ohne Dein Programm weiter anpassen zu müssen (ggf musst Du Dir Gedanken über die Freigabe des aggregierten Objekts Gedanken machen. Vielleicht hilft ein Blick auf TObjectList in der OH).
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 09:53
Wie wäre es einfach mit einer Funktion die das High- und Low-Word vertauscht? Gibt es ad nicht sogar einen ASM Befehl?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#9

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 10:01
Hi, falls Du eine Delphi3000 Mitgliedschaft hast, dann findest Du hier Deine Lösung: http://www.delphi3000.com/articles/article_1325.asp

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Rainer_Unger

Registriert seit: 2. Dez 2003
Ort: Heidelberg
17 Beiträge
 
#10

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 12:26
Hallo,

das ist so einfach, darüber lohnt es sich doch noch nicht einmal Ansatzweise Gedanken zu machen.
Mit 2 Zeilen Code ist das erledigt. Wieviel Zeit brauchst du für das neue Konstrukt?
Wie oft brauchtst du Big Endian?

Rainer
Ich weiss was ich kann und vor allem auch was ich nicht kann!
Du auch?
  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 16:10 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