program Hoi; { Description: Test file to test the consistency of the following Functions: AppPath, DirectoryExists, FileExists, ExeExt, DirectorySeperator, OpenFile, CreateFile, RewriteFile, WriteFileString, ReadFileString, SetFileCharPointer, FileSize, EndOfFile, FileContents. Notes: Needs: GetFiles. Bugs: Using ./test as TestPath crashes on Linux. Usage: Run it. Set the TestPath to a different directory if you are on Windows. :) } Const TestPath = './test'; fsFromBeginning = 0; // offset must be pos or 0 fsFromCurrent = 1; // offset pos or neg fsFromEnd = 2; // offset only neg or 0 var s, s2: string; myFile, myFile2: Integer; begin s := apppath; Writeln('Our current path is: ' + s); { If DirectoryExists(s) Then writeln('Directory ' + s + ' exists.'); } { If FileExists(s + DirectorySeperator + 'Cogat' + ExeExt) Then writeln('We exist!'); } myFile := CreateFile(TestPath); WriteFileString(myFile, 'wat'); WriteFileString(myFile, 'watnumber2'); CloseFile(myFile); myFile := OpenFile(TestPath, False); ReadFileString(myFile, s2, 2); writeln('s2: ' + s2); CloseFile(myFile); myFile := CreateFile(TestPath + '2'); WriteFileString(myFile, 'wat222'); CloseFile(myFile); // TestPath now contains; 'watwatnumber2'. We will make it write 'number', // and then 2. myFile := OpenFile(TestPath, False); SetFileCharPointer(myFile, 6, fsFromBeginning); ReadFileString(myFile, s2, 6); writeln('s2: ' + s2); s2 := ''; SetFileCharPointer(myFile, -1, fsFromEnd); ReadFileString(myFile, s2, 1); writeln('s2: ' + s2); CloseFile(myFile); // myFile2 should be -1. myFile := RewriteFile(TestPath, False); myFile2 := RewriteFile(TestPath, False); writeln(inttostr(myFile) + ' : ' + inttostr(myFile2)); // myFile2 should be -1. myFile2 := OpenFile(TestPath, False); writeln(inttostr(myFile) + ' : ' + inttostr(myFile2)); // Now, we will test EndOfFile, and FileSize. While Not EndOfFile(myFile) Do Begin ReadFileString(myFile, s2, 1); Writeln(s2); End; CloseFile(myFile); //Writeln(FileContents(TestPath)); writeln('wat'); end.