![]() |
String wird nur Teilweise ausgelesen
Delphi-Quellcode:
Soll einen 15 Stelligen String ausgeben die in der datei so aussieht
Function Getx30Platform (Name : String):TBC;
var Buf30:Array[0..30]of Char; Imei : String; FS :TFileStream; i : Integer; begin FS := TFileStream.Create(Name,fmopenreadwrite); FS.Position := $2fe82; FS.ReadBuffer(Buf30,30); Imei := StrToHex(Buf30); FS.Free; end; //funze Zitat:
Zitat:
|
Re: String word nur Teilweise ausgelesen
3 Möglichkeiten:
1) Die Datei ist nach '6' zu ende. 2) Das Zeichen '.' nach '6' wird nur im Hex-Editor als '.' angezeigt, und ist eigentlich ein #0. Damit wird der String terminiert. 3) Was auch immer StrToHex macht, es macht es falsch. Da mein Delphi die Funktion nicht kennt, lässt sich schwer etwas in diese Blackbox hineinraten. Darüber hinaus liest du 30 Zeichen aus, sprichst aber nachher von 15. Ich vermute, dass StrToHex diese Hexerei vollbringen soll. Zudem wird nicht klar, ob dein zu kurzer String nachher in Buf30 oder Imei steht. |
Re: String wird nur Teilweise ausgelesen
Möglichkeit 2 sollte es sein
StrtoHex macht das
Delphi-Quellcode:
Tut aber nix zur sache weil es wie gesagt auf die stringterminierung hinausläuft nur wie umgehe ich die
function StrToHex(AStr: String): String;
var i: Integer; begin result := ''; for i:=1 to StrLen(Pchar(AStr)) do begin Result := Result+' '+IntToHex(Ord(AStr[i]),2); end; end; |
Re: String wird nur Teilweise ausgelesen
Delphi-Quellcode:
function MoreStrToHex(s: string): string;
var i: integer; begin result := ''; for i := 1 to length(s) do result := result + inttohex(chr(s[i]), 2); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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 by Thomas Breitkreuz