AGB  ·  Datenschutz  ·  Impressum  







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

Offset Block aus Datei extrahieren

Ein Thema von fringer · begonnen am 25. Feb 2018 · letzter Beitrag vom 1. Mär 2018
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Offset Block aus Datei extrahieren

  Alt 25. Feb 2018, 13:52
Mit Delphi-Referenz durchsuchenTStream.CopyFrom non aktueller Position x Bytes in anderen Stream kopieren
oder mit Delphi-Referenz durchsuchenTStream.Read bzw. besser Delphi-Referenz durchsuchenTStream.ReadBuffer x Bytes z.B. in ein Array kopieren

am Ende dann die Position nochmal an den Teil-Anfang setzen und die Daten wieder zurückschreiben. (CopyFrom, Write, WriteBuffer)
[edit] Wenn man diesen Datenblock in der Datei wieder überschreiben will.


Tipp der nichts mit dem Problem zu tun hat: https://www.embarcadero.com/de/products/delphi/starter
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Feb 2018 um 10:24 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.122 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Offset Block aus Datei extrahieren

  Alt 25. Feb 2018, 17:32
Arrays sind eher kompliziert hier. Wenn er das nur speichern und nichts damit machen will, ist er mit TMemoryStream oder TFileStream schon gut beraten.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
fringer

Registriert seit: 25. Feb 2018
15 Beiträge
 
#3

AW: Offset Block aus Datei extrahieren

  Alt 26. Feb 2018, 10:18
Vielen Dank erst mal für eure Antworten und Tipps. Für mich ist das Thema „Streams“ Neuland und ich versuche es so gut es geht zu verstehen aber es gelingt mir noch nicht sonderlich gut.

Ich habe das ganze gestern noch einmal mit TFileStream probiert und komme auch wieder nur bis zu dem selben Punkt wie mit TMemoryStream. Ich kann eine Datei in einen Stream öffnen, dann die Position festlegen wo er beginnen soll und dann komme ich leider wieder nicht weiter.
Ich verstehe die Theorie von himitsu kann sie aber nicht anwenden. Wie schreibe ich denn die Syntax wenn ich von dieser Startposition (Hex Offset $0x003E1000) in einen neuen String bis zur Endposition (Hex Offset $0x003E37FF) kopiere. Oder ist mein Denkfehler das ich immer diese Hexwerte verwenden möchte?

Ich möchte natürlich nicht das ihr mir mein Programm schreibt, wäre es aber möglich einen etwas detaillierteren psyeudocode für mich zu formulieren, ich möchte das wirklich gern verstehen. Das wäre klasse.

Vielen Dank im Voraus schon mal.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.505 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Offset Block aus Datei extrahieren

  Alt 26. Feb 2018, 10:34
kurzen pseudocode einfach so ins Blaue:

statt Deinem "........"

dest := TMemoryStream.Create;
try
dest.CopyFrom(ms, count)
dest.SaveToFile(...)
finally
dest.Free();
end;
  Mit Zitat antworten Zitat
fringer

Registriert seit: 25. Feb 2018
15 Beiträge
 
#5

AW: Offset Block aus Datei extrahieren

  Alt 1. Mär 2018, 11:26
Hallo,
ich wollte mich noch mal bedanken! Mein Vorhaben konnte ich nun realisieren und so langsam werde ich mit dem Thema "Streams" warm.
Danke für die vielen kleinen Tipps. Ich habe jetzt wieder eine kleine Sache: und zwar möchte ich eine bestimmte Byte-Sequenz im Stream suchen lassen
und mir dann die Anfangsposition wiedergeben lassen.

Ich denke ich bekomme das hin, habe hier mal ein Beispiel gefunden -> http://www.delphipages.com/forum/showthread.php?t=20735
Wäre das der richtige Lösungsansatz?

Viele Grüße,
fringer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Offset Block aus Datei extrahieren

  Alt 1. Mär 2018, 14:24
Für eine neuen Problemstellung/Frage mach bitte einen neuen Thread auf.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 06:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz