AW: C++ zu Delphi funktion umschreiben
Mit
Delphi-Quellcode:
funktionierts.
lstrlen(PAnsiChar(@mem[pos]))
Jetzt habe ich noch eine zweite Funktion, die habe ich auch schon selber in Delphi übersetzt. Aber leider funktioniert, das noch nicht. Könnte mir jemand sagen wo ich hier den Fehler habe? Die If Bedingung wird garnicht abgearbeitet.
Code:
char parse_id(char *path)
{ FILE *fp; char str2; int n; fopen_s(&fp, path, "rb"); if (fp != NULL) { unsigned len; unsigned char *mem=NULL; fseek(fp, 0, SEEK_END); len=ftell(fp); mem= (unsigned char *) malloc(len+16); if(!mem) {fclose(fp);} memset(mem, 0, len+16); fseek(fp, 0, SEEK_SET); fread((void *) mem, len, 1, fp); fclose(fp); for(n=0x20;n<0x200;n+=0x20) { if(!strcmp((char *) &mem[n], "TITLE_ID")) { n= (mem[n+0x12]<<8) | mem[n+0x13]; memcpy(&str2, &mem[n], 16); } return str2; } } } }
Delphi-Quellcode:
function GetID(Files: string): AnsiString;
var stream : TFileStream; mem: TByteDynArray; title_id: AnsiString; str: word; I, n: integer; begin stream := TFileStream.Create(Files,fmOpenRead); SetLength(mem,stream.Size); stream.read(mem[0],stream.Size); n:=32; for I := 0 to 16 do begin if lstrcmpA(@mem[n], 'TITLE_ID') = 0 then begin n:= (mem[n+18] shl 8) or mem[n+19]; Move(mem[n], title_id, 16); Result:=title_id; end; n:=n+32; end; |
AW: C++ zu Delphi funktion umschreiben
Ok hab das Problem gelöst.
So funktionierts:
Delphi-Quellcode:
Vielen, Vielen Dank nochmal.
function GetID(Files: string): AnsiString;
var stream : TFileStream; mem: TByteDynArray; title_id: AnsiString; str: word; I: integer; n: word; begin stream := TFileStream.Create(Files,fmOpenRead); SetLength(mem,stream.Size); stream.read(mem[0],stream.Size); n:=32; for I := 1 to 16 do begin if lstrcmpA(@mem[n], 'TITLE_ID') = 0 then begin n:= (mem[n+18] shl 8) or mem[n+19]; SetString(title_id, PAnsiChar(@mem[n]), lstrlen(PAnsiChar(@mem[n]))); Result:=title_id; break; end; inc(n, 32); end; Stream.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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