pascal comment {***************************************************************
pascal comment *
pascal comment * Unit Name: pndefs
pascal comment * Purpose : Various Definitions and functions...
pascal comment * Author : Simon Steele
pascal comment * Copyright: This Source Code is Copyright © 1998-2000 Echo
pascal comment * Software and Simon Steele. Please read the license
pascal comment * agreement at www.pnotepad.org/press/psidx.html.
pascal comment **************************************************************}
pascal code unit pndefs;
pascal blank
pascal code interface
pascal blank
pascal code uses SysUtils;
pascal blank
pascal code function CreatePNFile(filename : string; Text : pChar) : Boolean;
pascal code function StripNewLines(aString: string): string;
pascal code procedure ConvertTypes(filename : string);
pascal blank
pascal code const strFileTypes : PChar = ('.txt');
pascal code strOpenTypes : PChar = ('%2|Text files (*.txt)|*.txt|0|0|0|LOG files (*.log)|*.log|0|0|0|Executable Files (*.exe, *.com, *.dll)|*.exe;*.com;*.dll|0|0|0');
pascal code sepChar = '|';
pascal code verChar = '%';
pascal code CurrFileVer = '2';
pascal blank
pascal code implementation
pascal blank
pascal code function CreatePNFile(filename : string; Text : pChar) : Boolean;
pascal code var F : TextFile;
pascal code begin
pascal comment {$I-}
pascal code AssignFile(F, filename);
pascal code Rewrite(F);
pascal code Write(F, Text);
pascal code CloseFile(F);
pascal code If IOResult <> 0 Then Result := False
pascal code Else Result := True;
pascal comment {$I+}
pascal code end;
pascal blank
pascal code function StripNewLines(aString: string): string;
pascal code var i : longint;
pascal code begin
pascal code result := '';
pascal code i := 1;
pascal code while i <= length(aString) do
pascal code begin
pascal code if aString[i] = #13 then result := result + ' ' else
pascal code if aString[i] <> #10 then result := result + aString[i];
pascal code inc(i);
pascal code end;
pascal code end;
pascal blank
pascal code procedure ConvertTypes(filename : string);
pascal code var t : TextFile;
pascal code s : string;
pascal code ps : string; {part of string}
pascal code Part : integer;
pascal code ipos : integer;
pascal code OutStr : string;
pascal code const Desc = 1;
pascal code Files = 2;
pascal code Parser = 3;
pascal code Unix = 4;
pascal code begin
pascal comment // This assumes that it is being passed one of the old style type definition
pascal comment // files. We'll set the status on the main form to indicate this as well...
pascal code OutStr := VerChar + CurrFileVer;
pascal code if not fileexists(filename) then
pascal code begin
pascal code CreatePNFile(filename, strOpenTypes);
pascal code exit;
pascal code end;
pascal code Assignfile(t, FileName);
pascal code Reset(t);
pascal code repeat
pascal code Readln(t, s)
pascal code until (Length(s) > 0) or EOF(t);
pascal code CloseFile(t);
pascal code if s = '' then Exit;
pascal code part := Desc;
pascal code repeat
pascal code iPos := Pos(SepChar, s);
pascal code if (iPos = 0) and (Length(s) > 0) then
pascal code begin
pascal code ps := s;
pascal code s := '';
pascal code end else
pascal code ps := Copy(s, 1, ipos - 1);
pascal code s := Copy(S, ipos + 1, Length(s));
pascal code case part of
pascal code Desc : begin
pascal code OutStr := OutStr + SepChar + ps;
pascal code part := Files;
pascal code end;
pascal code Files : begin
pascal code OutStr := OutStr + SepChar + ps;
pascal code part := Parser;
pascal code end;
pascal code Parser : begin
pascal code OutStr := OutStr + SepChar + ps + SepChar + '0' + SepChar + '0';
pascal code part := Desc;
pascal code end;
pascal code end;
pascal code until Length(s) < 1;
pascal code Assignfile(t, filename);
pascal code Rewrite(t);
pascal code Write(t, OutStr);
pascal code CloseFile(t);
pascal code end;
pascal blank
pascal code end.