Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Suche in Delphi funktionen wie in C (https://www.delphipraxis.net/83423-suche-delphi-funktionen-wie-c.html)

nitschchedu 2. Jan 2007 15:55


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;

RavenIV 2. Jan 2007 16:26

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...

jbg 2. Jan 2007 16:28

Re: Suche in Delphi funktionen wie in C
 
Da gäbe es auch noch FileOpen/FileRead/FileWrite//FileSeek/FileClose.

RavenIV 2. Jan 2007 16:30

Re: Suche in Delphi funktionen wie in C
 
Zitat:

Zitat von jbg
Da gäbe es auch noch FileOpen/FileRead/FileWrite//FileSeek/FileClose.

Mit Einsatz der Delphi-Hilfe würde er diese Funktionen auch finden...

nitschchedu 2. Jan 2007 16:39

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.

Luckie 2. Jan 2007 16:56

Re: Suche in Delphi funktionen wie in C
 
Ihr habt die Streams vergessen. ;)

DGL-luke 2. Jan 2007 17:02

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(MSDN-Library durchsuchenCreateFile).
Wenn das aber ein C-eigener Datentyp ist, wirds schwerer.

nitschchedu 2. Jan 2007 17:52

Re: Suche in Delphi funktionen wie in C
 
Hier ist die Ganze Function mal
Code:
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;
}
wobei SteamHandle_t vom type Integer ist.

Was mir nun noch kopfschmerzen bereitet ist cszMode (PChar) zur funktion FileOpen --> LongWord :wall:
Wie mache ich das nun ???

Der_Unwissende 2. Jan 2007 17:58

Re: Suche in Delphi funktionen wie in C
 
Zitat:

Zitat von nitschchedu
Was mir nun noch kopfschmerzen bereitet ist cszMode (PChar) zur funktion FileOpen --> LongWord :wall:
Wie mache ich das nun ???

Hi,
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

nitschchedu 2. Jan 2007 18:11

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 23:45 Uhr.
Seite 1 von 2  1 2      

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