![]() |
Suche in Delphi funktionen wie in C
Hallo alle zusammen ich suche die funktionen fopen fread un fwrite wie in C in Delphi für eine Dll die ein Programm benutzt das in C geschrieben ist.
Ich müsste das übersetzten aus dem C Übersetzten
Code:
FILE *f = fopen(cszName,cszMode);
... return (SteamHandle_t)f; |
Re: Suche in Delphi funktionen wie in C
Du hast drei Möglichkeiten, um auf Dateien zuzugreifen.
a) die Delphi eigenen Funktionen, die mit Dateivariablen arbeiten (siehe AssignFile, Read, Write, usw. in der Delphi-Hilfe) b) die Delphi eigenen Funktionen, die mit Dateinamen arbeiten (DeleteFile, FileCreate, usw.) c) direkt mit den Funktionen der Windows-API (CopyFile, MoveFile, usw. aus dem MSDN) Musst Du Dir halt mal anschauen, was Dir am Besten liegt... |
Re: Suche in Delphi funktionen wie in C
Da gäbe es auch noch FileOpen/FileRead/FileWrite//FileSeek/FileClose.
|
Re: Suche in Delphi funktionen wie in C
Zitat:
|
Re: Suche in Delphi funktionen wie in C
Ok werde es ausprobieren danke ! .
Ausserdem wenn ich gewusst hätte wie es in Delphi heist hätte ich es in der Hilfe gesucht. |
Re: Suche in Delphi funktionen wie in C
Ihr habt die Streams vergessen. ;)
|
Re: Suche in Delphi funktionen wie in C
Du übergibst da den Datentyp "FILE". Wenn das ein Windows-Dateihandle ist, sollte es nicht so schwer sein, das zu übersetzen(
![]() Wenn das aber ein C-eigener Datentyp ist, wirds schwerer. |
Re: Suche in Delphi funktionen wie in C
Hier ist die Ganze Function mal
Code:
wobei SteamHandle_t vom type Integer ist.
STEAM_API SteamHandle_t STEAM_CALL SteamOpenFile( const char *cszName, const char *cszMode, TSteamError *pError )
{ FILE *f = fopen(cszName,cszMode); ErrnoToSteam(pError,(NULL==f)?errno:0); dprintf("SteamOpenFile(%s,%s)=%p\n",cszName,cszMode,f); return (SteamHandle_t)f; } Was mir nun noch kopfschmerzen bereitet ist cszMode (PChar) zur funktion FileOpen --> LongWord :wall: Wie mache ich das nun ??? |
Re: Suche in Delphi funktionen wie in C
Zitat:
ein char* ist einfach nur ein Zeiger auf ein Byte-Array in C (wird zumidenst einfach so verwendet). Damit musst du etwas unschön casten. Wichtig ist halt, was du eigentlich hier übergibst, in der Regel wird es nur ein Zeiger auf ein LongWord (Array[0..3] of Byte) sein, dass hier einfach nur anders interpretiert wird. Ob du die 4 Byte nur einzeln indexieren kannst oder sie als einen Wert nimmst ist dem Speicher egal, hier ist nur die Startposition wichtig (Beim char* und ^LongWord die gleiche) und wie viele Bytes das Datum hat (auch in beiden Fällen 4 Byte), was nun mit diesem Datum passiert ist dir ab der Stelle egal. Gruß Der Unwissende |
Re: Suche in Delphi funktionen wie in C
Was meinst du mit dem Datum mir geht es um Mod wie die Datei geöffnet wird. in C wird da r, w, a, r+ usw. und in Delphi sind das Constanten mit zahlen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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