Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program L24D;
- {$APPTYPE CONSOLE}
- uses
- System.SysUtils, Math;
- type
- TDArray = array of Integer;
- function CheckFileName(FileName: String): Boolean;
- var Ans: Boolean;
- i: Integer;
- begin
- Ans := True;
- i:=1;
- while (i <= Length(FileName))And Ans do
- begin
- if(FileName[i] In ['\', '/', ':', '*', '?', '"', '<', '>', '|']) then
- begin
- Ans := False;
- Writeln('\/:*?"<>| are forbidden characters...');
- end;
- Inc(i);
- end;
- if Length(FileName)=0 then
- begin
- Ans := False;
- Writeln('File name is empty');
- end;
- CheckFileName := Ans;
- end;
- function ReadInput(var B: Integer): Boolean;
- var Option: Char;
- ErrorPos: Integer;
- FileName, RawInput: String;
- InFile: TextFile;
- KeepReadFileName, KeepReadCosole: Boolean;
- begin
- Writeln('[1] Read data from file');
- Writeln('[2] Read data from console');
- Writeln('[~] Close');
- Readln(Option);
- case Option of
- '1':
- begin
- KeepReadFileName := True;
- while KeepReadFileName do
- begin
- Writeln('Enter file name: ');
- Readln(FileName);
- if(CheckFileName(FileName))then
- begin
- AssignFile(InFile, FileName);
- if(FileExists(FileName))then
- begin
- KeepReadFileName := False;
- Reset(InFile);
- //----------------------------------
- while ErrorPos <> 0 do
- begin
- Read(InFile, RawInput);
- Val(RawInput, B, ErrorPos);
- end;
- CloseFile(InFile);
- ReadInput := True;
- //-----------------------------------
- end
- else
- Writeln('No such file...');
- end;
- end;
- end;
- '2':
- begin
- KeepReadCosole := True;
- while KeepReadCosole do
- begin
- while(ErrorPos <> 0)do
- begin
- Writeln('Enter number system base: ');
- Readln(RawInput);
- Val(RawInput, B, ErrorPos);
- end;
- KeepReadCosole := False;
- end;
- ReadInput := True;
- end;
- else
- ReadInput := False;
- end;
- end;
- procedure WriteInput(var A: TDArray);
- var Option: Char;
- ErrorPos, i: Integer;
- FileName, RawInput: String;
- OutFile: TextFile;
- KeepReadFileName, KeepReadOption: Boolean;
- begin
- Writeln('[1] Write data to file');
- Writeln('[2] Write data to console');
- KeepReadOption:=True;
- while KeepReadOption do
- begin
- Readln(Option);
- if(Option = '1')then
- begin
- KeepReadOption := False;
- KeepReadFileName := True;
- while KeepReadFileName do
- begin
- Writeln('Enter file name: ');
- Readln(FileName);
- if(CheckFileName(FileName))then
- KeepReadFileName := False;
- end;
- //==============================
- AssignFile(OutFile, FileName);
- if(FileExists(FileName))then
- begin
- KeepReadOption:=True;
- Writeln('Do you want to clear file? [Y/N]: ');
- while KeepReadOption do
- begin
- Readln(Option);
- if(UpperCase(Option)='Y')then
- begin
- Rewrite(OutFile);
- KeepReadOption := False;
- end
- else
- if UpperCase(Option)='N' then
- begin
- KeepReadOption := False;
- Append(OutFile);
- end;
- end;
- end
- else
- Rewrite(OutFile);
- //----------------------------------
- if A[0]=-1 then
- Writeln(OutFile, '-1')
- else
- for i := 0 to Length(A)-1 do
- Writeln(OutFile, A[i]);
- Writeln('Done.');
- CloseFile(OutFile);
- //-----------------------------------
- end
- else
- if Option = '2' then
- begin
- KeepReadOption:=False;
- if A[0]=-1 then
- Writeln('-1')
- else
- for i := 0 to Length(A)-1 do
- Writeln(A[i]);
- end;
- end;
- end;
- procedure Main();
- var
- B: Integer;
- DigitArray: TDArray;
- Close: Boolean;
- begin
- while ReadInput(B) do
- begin
- try
- SetLength(DigitArray, B);
- if (B = 1) Or (B = 2) Or (B = 3) Or (B = 6) then
- begin
- DigitArray[0] := -1;
- WriteInput(DigitArray);
- end
- else
- if (B = 4) then
- begin
- DigitArray[0] := 2;
- DigitArray[1] := 1;
- DigitArray[2] := 0;
- DigitArray[3] := 1;
- WriteInput(DigitArray);
- end
- else
- if (B = 5) then
- begin
- DigitArray[0] := 1;
- DigitArray[1]:= 2;
- DigitArray[2] := 0;
- DigitArray[3] := 0;
- DigitArray[4] := 2;
- WriteInput(DigitArray);
- end
- else
- begin
- DigitArray[0] := 2;
- DigitArray[1] := 1;
- DigitArray[b - 5]:= 1;
- DigitArray[b - 1] := b - 4;
- WriteInput(DigitArray);
- end;
- except
- on EInOutError do
- Writeln('Input Error');
- end;
- end;
- end;
- begin
- Main;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement