home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1995 December / SOFM_Dec1995.bin / pc / os2 / vpascal / examples / test / testwdos.pas < prev   
Pascal/Delphi Source File  |  1995-10-31  |  3KB  |  80 lines

  1. {█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█}
  2. {█                                                       █}
  3. {█      Virtual Pascal Examples. Version 1.0.            █}
  4. {█      WinDos unit test example.                        █}
  5. {█      ─────────────────────────────────────────────────█}
  6. {█      Copyright (C) 1995 B&M&T Corporation             █}
  7. {█      ─────────────────────────────────────────────────█}
  8. {█      Written by Vitaly Miryanov                       █}
  9. {█                                                       █}
  10. {▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀}
  11.  
  12. program TestDos;
  13.  
  14. uses WinDos, Use32;
  15.  
  16. var
  17.   I: Integer;
  18.   SR: TSearchRec;
  19.   FileName: array[0..fsPathName] of Char;
  20.  
  21. procedure TestFileSplit(FileName: PChar);
  22. var
  23.   Dir:  array[0..fsDirectory] of Char;
  24.   Name: array[0..fsFileName] of Char;
  25.   Ext:  array[0..fsExtension] of Char;
  26. begin
  27.   FileSplit(FileName, Dir, Name, Ext);
  28.   WriteLn('Full name: ',FileName, ' Dir="',Dir, '" Name="',Name, '" Ext="',Ext,'"');
  29. end;
  30.  
  31. begin
  32.   { FindFirst/FindNext/FindClose }
  33.   WriteLn('List of all files and directories in the current directory');
  34.   WriteLn('          Name       Size');
  35.   FindFirst('*.*', faAnyFile, SR);
  36.   while DosError = 0 do
  37.   begin
  38.     WriteLn(SR.Name:14, SR.Size:11);
  39.     FindNext(SR);
  40.   end;
  41. {$IFDEF OS2}
  42.   FindClose(SR);
  43. {$ENDIF}
  44.  { FileSearch/GetEnvVar }
  45.   FileSearch(FileName, 'cmd.exe', GetEnvVar('Path'));
  46.   if FileName[0] = #0
  47.     then WriteLn('CMD.EXE is not found')
  48.     else WriteLn('CMD.EXE full path is ', FileName);
  49.  { FileExpand }
  50.  WriteLn('Fully qualified name for the "..\.\QQ" is ', FileExpand(FileName, '..\.\qq'));
  51.  WriteLn('Fully qualified name for the "QQ"      is ', FileExpand(FileName, 'qq'));
  52.  WriteLn('Fully qualified name for the "\QQ"     is ', FileExpand(FileName, '\qq'));
  53.  WriteLn('Fully qualified name for the "C:QQ"    is ', FileExpand(FileName, 'c:qq'));
  54.  { FileSplit }
  55.  TestFileSplit('D:\DIR\FILENAME.EXT');
  56.  TestFileSplit('D:\DIR.EXT\FILENAME');
  57.  TestFileSplit('DIR\FILENAME.EXT');
  58.  TestFileSplit('\FILENAME.EXT');
  59.  TestFileSplit('FILENAME.EXT');
  60.  TestFileSplit('FILENAME');
  61.  { CreateDir }
  62.  CreateDir('qq');
  63.  if DosError <> 0 then WriteLn('Error creating directory, Error Code = ', DosError);
  64.  { SetCurDir }
  65.  ChDir('qq');
  66.  if DosError <> 0 then WriteLn('Cannot change current directory, Error Code = ', DosError);
  67.  { GetCurDir }
  68.  WriteLn('Current directory: ', GetCurDir(FileName, 0));
  69.  { RemoveDir }
  70.  ChDir('..');
  71.  RemoveDir('qq');
  72.  if DosError <> 0 then WriteLn('Cannot remove directory ''qq'', Error Code = ', DosError);
  73.  { GetArgCount/GetArgStr }
  74.  WriteLn('The following parameters have been passed');
  75.  WriteLn('-----------------------------------------');
  76.  WriteLn('PROGRAM NAME: ', GetArgStr(FileName, 0, fsPathName));
  77.  for I := 1 to GetArgCount do
  78.  WriteLn('ARG[', I, '] = ', GetArgStr(FileName, I, fsPathName));
  79. end.
  80.