AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

strtohex

Ein Thema von ReVenGer · begonnen am 12. Jun 2007 · letzter Beitrag vom 13. Jun 2007
Antwort Antwort
Seite 2 von 4     12 34   
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#11

Re: strtohex

  Alt 12. Jun 2007, 16:26
Zitat von halinchen:
@Der_Unwissende: Schon klar, das meine Lösung nicht optimal ist. Wie immer . Nein Spaß bei Seite. Sollte ja nur ein Anschauungsmaterial sein.
Schon klar, hab auch gerade noch einen Fehler korrigiert (den ich gemacht habe, ReadBuffer hat keinen Rückgabewert). Wollte es nur kurz erwähnen, da es eben funktionieren würde und schon bei einer Datei von > 1 MByte in echt langes Warten ausarten dürfte. Da kommt sonst schnell die Frage, wie man das denn schneller tun könnte.
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!
  Mit Zitat antworten Zitat
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#12

Re: strtohex

  Alt 12. Jun 2007, 16:51
Ich hab da wohl noch nen denkfehler drin.

Delphi-Quellcode:
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;
und aufgerufen wird es so

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.
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#13

Re: strtohex

  Alt 12. Jun 2007, 16:57
Delphi-Quellcode:
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;
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.
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: strtohex

  Alt 12. Jun 2007, 17:02
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);
  Mit Zitat antworten Zitat
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#15

Re: strtohex

  Alt 12. Jun 2007, 17:05
Bekomme immer die meldung 'incompatible types intger and string"
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#16

Re: strtohex

  Alt 12. Jun 2007, 17:12
Zitat von ReVenGer:
Bekomme immer die meldung 'incompatible types intger and string"
an welcher Stelle?

[edit] ich hab jeden Code ausprobiert. Bei mir gehen alle[/edit]
  Mit Zitat antworten Zitat
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#17

Re: strtohex

  Alt 12. Jun 2007, 17:20
bei der übergabe zum memo,label, etc.

wie rufst du denn die function auf?
  Mit Zitat antworten Zitat
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#18

Re: strtohex

  Alt 12. Jun 2007, 20:22
bei der übergabe zum memo,label, etc.

wie rufst du denn die function auf?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.753 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: strtohex

  Alt 12. Jun 2007, 20:38
Dann zeige uns doch einmal wie Du es jetzt hast?
So ist nur raten angesagt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#20

Re: strtohex

  Alt 12. Jun 2007, 20:45
jetzt hab ich nen streamread error.. ich bau das jetzt nochmal komplett um.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:53 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