![]() |
Re: strtohex
Zitat:
Bei meinem ersten Programm, dass da mal größere Dateien (> 100 MByte) öffnen musste war das dann der Unterschied zwischen 1 Minute Ladezeit und < 1 Sekunde. Waren dann noch ein zwei andere Stellen, wo ich das Speicherkopieren in Schleifen durch Move ersetzt habe, macht natürlich einiges aus! |
Re: strtohex
Ich hab da wohl noch nen denkfehler drin.
Delphi-Quellcode:
und aufgerufen wird es so
function StringToHex(str :string) : string;
var fs:TFileStream; i : Integer; b : Byte; begin fs := TFileStream.Create('test.gam', fmOpenRead); try For i := 0 to fs.Size do begin fs.ReadBuffer(b,sizeof (b)); //oder fs.ReadByte(b); <-- bin mir nichtt sicher str := Str + '|' + IntToHex(b,2); end; finally fs.Free; end; end;
Delphi-Quellcode:
label3.caption:=stringtohex(str);
war jetzt nur damit es schnell geht nen label. die datei die ich einlese hat nur 30kB. von daher nichts großes, deshalb habe ich mich auhc für die kleine variante entschieden. aber das programm erzeugt einen error. |
Re: strtohex
Delphi-Quellcode:
Allerdings solltest du dir bewusstsein, das es vielleicht besser ist, den Spielstand immer im Speicher zu haben (z.B als TMemoryStream). Den sonst musst du dich so blöd mit dem Trennstrich rumärgern.
function StringToHex : string;
var fs:TFileStream; i : Integer; b : Byte; begin result := ''; fs := TFileStream.Create('test.gam', fmOpenRead); try For i := 0 to fs.Size do begin fs.ReadBuffer(b,sizeof (b)); //oder fs.ReadByte(b); <-- bin mir nichtt sicher result := result + '|' + IntToHex(b,2); end; finally fs.Free; end; end; |
Re: strtohex
Delphi-Quellcode:
var
fs: TFileStream; lpBuffer: array of Byte; // temporär s: string; x: Integer; begin // entweder so, oder du ließt es in Blöcken aus und parst sie schon gleich ... fs := TFileStream.Create('c:\tmp.txt', fmOpenRead); try if (fs.Size > 0) then begin SetLength(lpBuffer, fs.Size); fs.Read(lpBuffer[0], fs.Size); end; finally fs.Free; end; // brauchst nicht - nur ausgabe s := ''; for x := Low(lpBuffer) to High(lpBuffer) do begin s := s + IntToHex(lpBuffer[x], 2) + ' '; end; ShowMessage(s); |
Re: strtohex
Bekomme immer die meldung 'incompatible types intger and string"
|
Re: strtohex
Zitat:
[edit] ich hab jeden Code ausprobiert. Bei mir gehen alle[/edit] |
Re: strtohex
bei der übergabe zum memo,label, etc.
wie rufst du denn die function auf? |
Re: strtohex
bei der übergabe zum memo,label, etc.
wie rufst du denn die function auf? |
Re: strtohex
Dann zeige uns doch einmal wie Du es jetzt hast?
So ist nur raten angesagt. Grüße Klaus |
Re: strtohex
jetzt hab ich nen streamread error.. ich bau das jetzt nochmal komplett um.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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