FreeXP

CVS daily diff

FreeXP CVS-Server cvs-list at freexp.de
Mit Aug 30 05:36:30 CEST 2006


Index: freexp/freexp.pas
===================================================================
RCS file: /server/cvs/freexp/freexp.pas,v
retrieving revision 1.1
retrieving revision 1.7
diff -u -r1.1 -r1.7
--- freexp/freexp.pas	20 Apr 2006 07:20:42 -0000	1.1
+++ freexp/freexp.pas	29 Aug 2006 20:40:44 -0000	1.7
@@ -7,10 +7,19 @@
 { wurden, auch in anderen Programmen als FreeXP verwenden zu      }
 { können.                                                         }
 { --------------------------------------------------------------- }
-{ $Id: freexp.pas,v 1.1 2006/04/20 07:20:42 mw Exp $ }
+{ $Id: freexp.pas,v 1.7 2006/08/29 20:40:44 mw Exp $ }
 { Unit freexp }
 unit freexp;
 {$I-}
+
+{$IFDEF VER70 }
+  {$DEFINE BP}
+{$ELSE}
+  {$IFDEF VER80 }
+    {$DEFINE BP}
+  {$ENDIF }
+{$ENDIF }
+
 interface
 
 const FMRead       = $00;     { Konstanten für Filemode }
@@ -26,9 +35,16 @@
 procedure fm_rw;                                { Filemode Read/Write     }
 Function Hex(const l:longint; const n:byte):string;      { Hex-Zahl mit n Stellen       }
 Function  existf(var f):boolean;                { Datei vorhanden ?       }
+Function  exist(const n:string):boolean;         { Datei vorhanden ?       }
 
 implementation
 
+{$IFNDEF WINDOWS }
+uses dos;
+{$ELSE }
+uses windos,strings;
+{$ENDIF }
+
 procedure fm_ro;      { Filemode ReadOnly }
 begin
   filemode:=fmRead;
@@ -75,9 +91,55 @@
   if ioresult = 0 then ;
 end;
 
+function exist(const n:string):boolean;
+var
+  {$IFNDEF WINDOWS }
+  sr : searchrec;
+  {$ELSE }
+  sr : Tsearchrec;
+  sp : Array[0..255] of Char;
+  {$ENDIF }
+  ex : boolean;
+begin
+  {$IFNDEF WINDOWS }
+  FindFirst(n,$27,sr);
+  {$ELSE }
+  StrPCopy(sp,n);
+  FindFirst(sp,$27,sr);
+  {$ENDIF }
+  ex:=(doserror=0);
+  while not ex and (doserror=0) do
+  begin
+    FindNext(sr);
+    ex:=(doserror=0);
+  end;
+  {$IFNDEF BP }
+  FindClose(sr);
+  {$ENDIF }
+  exist:=ex;
+end;
+
 end.
 {
   $Log: freexp.pas,v $
+  Revision 1.7  2006/08/29 20:40:44  mw
+  MW: - Und noch ein Bugfix.
+
+  Revision 1.6  2006/08/29 20:23:31  mw
+  MW: - Und noch eine Sonderbehandlung für Win16 und OS2.
+
+  Revision 1.5  2006/08/29 20:00:50  mw
+  MW: - Sonderbedingung für Win16 und OS2
+
+  Revision 1.4  2006/08/29 18:53:40  mw
+  MW: - Sauberes Maskieren von FindClose()
+
+  Revision 1.3  2006/08/29 18:46:46  mw
+  MW: - Wieder nutzbar.
+
+  Revision 1.2  2006/08/29 18:27:45  mw
+  MW: - Weitere Existensfunktion übernommen.
+
   Revision 1.1  2006/04/20 07:20:42  mw
   MW: - Neue Unit FreeXP:
         Diese Unit enthält Routinen die dazu dienen von FreeXP modifizierte
@@ -85,5 +147,3 @@
         FreeXP zu kompilieren.
 
 }
-
-



Mehr Informationen über die CVS-List Mailingliste