Delphi-PRAXiS
Seite 2 von 2     12   

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)

jbg 2. Jan 2007 18:14

Re: Suche in Delphi funktionen wie in C
 
Zitat:

Zitat von Der_Unwissende
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.

Da wird "r", "w", "rw" und ein paar andere Werte übergeben und kein verklausoliertes LongWord.
"r" => fmOpenRead
"w" => fmCreate
"rw" => fmOpenReadWrite


Der Rest hier:
Zitat:

  • 'r' Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.
  • 'r+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
  • 'w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.
  • 'w+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
  • 'a' Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
  • 'a+' Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.


Robert Marquardt 2. Jan 2007 18:20

Re: Suche in Delphi funktionen wie in C
 
fopen, fread und fwrite sind Funktionen der C Runtime Library und keine API Funktionen. Man kann sie deshalb nicht direkt in Delphi verwenden.
Man koennte aber diese Funktionen aus der MSVCRT.DLL (Microsoft Visual C Runtime) aufrufen.

nitschchedu 3. Jan 2007 15:52

Re: Suche in Delphi funktionen wie in C
 
Habe mal Nachgedacht und will es so versuchen

Delphi-Quellcode:
TMod = record
 case Integer of
 0: (CMod: PChar);
 1: (DMod: PLongWord);
end;
Da kann ich nun das so setzten

Delphi-Quellcode:
var
 Mod: TMod;
 Handle: Integer;
begin
 Mod.CMod := cszMode;

 Handle := FileOpen(.., Mod.DMod);
.....
end;
Was meint ihr Geht das so ?

Luckie 3. Jan 2007 15:54

Re: Suche in Delphi funktionen wie in C
 
Warum benutzt du nicht einfach die von Delphi definierten Konstanten:
Delphi-Quellcode:
  fmOpenRead      = $0000;
  fmOpenWrite     = $0001;
  fmOpenReadWrite = $0002;

  fmShareCompat   = $0000;
  fmShareExclusive = $0010;
  fmShareDenyWrite = $0020;
  fmShareDenyRead = $0030;
  fmShareDenyNone = $0040;

jbg 3. Jan 2007 16:12

Re: Suche in Delphi funktionen wie in C
 
Zitat:

Zitat von nitschchedu
Was meint ihr Geht das so ?

Habe ich doch schon geschrieben: "Da wird "r", "w", "rw" und ein paar andere Werte übergeben und kein verklausoliertes LongWord.". Mit dem Union der dir den Typecast abnimmt bekommst du nur Datenschrott mit dem FileOpen nichts anfangen kann.

nitschchedu 3. Jan 2007 19:01

Re: Suche in Delphi funktionen wie in C
 
An sich keine Schlechte Idee aber da das hauptprogramm nicht von mir ist und ich nur Pchar als Parameter bekomme kann ich die Konstanten nicht nehmen.

jbg 3. Jan 2007 19:09

Re: Suche in Delphi funktionen wie in C
 
Wie wäre es, wenn du die PChars mittels If-Anweisung in die passenden Konstanten umwandelst?

nitschchedu 3. Jan 2007 20:28

Re: Suche in Delphi funktionen wie in C
 
Hast recht habe wohl anscheinendt keine Wahl. Danke Erstmal für eure Hilfe.

nitschchedu 11. Jan 2007 17:22

Re: Suche in Delphi funktionen wie in C
 
Ich mach das jetzt so wie es mir

Zitat:

Zitat von Robert Marquardt
fopen, fread und fwrite sind Funktionen der C Runtime Library und keine API Funktionen. Man kann sie deshalb nicht direkt in Delphi verwenden.
Man koennte aber diese Funktionen aus der MSVCRT.DLL (Microsoft Visual C Runtime) aufrufen.

empfohlen hat.

da kommt nun eine Variable wo ich mir nicht ganz sicher bin

Code:
typedef unsigned __int64    size_t;
ich tippe mal nur Int64 aber ich frage mal euch ob das stimmt ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.
Seite 2 von 2     12   

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