Text file converter

This tool allows you to convert text files from one to another, making them compatible with different programs and operating systems.

Linux most likely uses UTF-8 and Windows uses ANSI

program convtext;

{$APPTYPE CONSOLE}
//source code for convtext
{$R *.res}
{$RESOURCE CONVTEXT-RES.RES}
uses
  System.SysUtils,
  windows,
  classes;

var sl:tstringlist;
hf1,hf2:thandle;
function typeStr(stype:string):Tencoding;
begin
  if comparetext('ansi',stype)=0 then
  result:=tencoding.ANSI else
  if comparetext('ascii',stype)=0 then
  result:=tencoding.ASCII else
  if comparetext('unicode',stype)=0 then
  result:=tencoding.Unicode else
  if comparetext('utf-7',stype)=0 then
  result:=tencoding.UTF7 else
  if comparetext('utf-8',stype)=0 then
  result:=tencoding.UTF8 else
  raise Exception.Create('Unknown Format Specified');
end;

begin
  try
  if paramcount<3 then
  begin
    writeln('Changes the encoding of a text file');
    writeln('Usage: ',extractfilename(paramstr(0)),
    ' input_file output_flle [in_format] out_format');
    writeln('Supported Formats:');
    writeln('ANSI');
    writeln('ASCII');
    writeln('Unicode');
    writeln('UTF-7');
    writeln('UTF-8');
    writeln;
    write('Press enter to quit...');
    readln;
    exitprocess(0);
  end;
  sl:=tstringlist.Create;
  if paramcount=4 then
  sl.LoadFromFile(paramstr(1),TypeStr(paramstr(3)))else
  sl.LoadFromFile(paramstr(1));
  sl.SaveToFile(paramstr(2),typestr(paramstr(paramcount)));
  writeln(syserrormessage(0));
  hf1:=createfile(pchar(paramstr(1)),generic_read,0,nil,open_existing,
  file_attribute_normal,0);
  hf2:=createfile(pchar(paramstr(2)),generic_read,0,nil,open_existing,
  file_attribute_normal,0);
  writeln('Original filesize: ',getfilesize(hf1,nil),' bytes');
  writeln('Converted filesize: ',getfilesize(hf2,nil),' bytes');
  writeln('Converted Percentage: ',round(100*(getfilesize(hf2,nil)/getfilesize(hf1,nil))),'%');
  closehandle(hf1);
  closehandle(hf2);
    { TODO -oUser -cConsole Main : Insert code here }
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

Published by Justin Roeder

I am an electronics engineer and computer programmer that has autism. I learned by myself

Leave a comment

Your email address will not be published. Required fields are marked *