Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////// Проверка указанного пути ////////////////////////////////
- Function InputPathToFile(): String;
- Var
- Path: String;
- IsCorrect: Boolean;
- Begin
- Write('Укажите путь к файлу: ');
- Repeat
- IsCorrect := True;
- Readln(Path);
- If Not FileExists(Path) Then
- Begin
- Write('По указанному пути файл не найден! Укажите правильный путь: ');
- IsCorrect := False;
- End
- Else
- If ExtractFileExt(Path) <> '.txt' Then
- Begin
- Write('Ошибка, неправильный тип файла! Укажите правильный путь: ');
- IsCorrect := False;
- End;
- Until IsCorrect;
- InputPathToFile := Path;
- End;
- ///////////////////////////////////////////////////////////////////////////////
- ///////////////////////////// Ввод из файла ///////////////////////////////////
- Function FillSequenceFromFile(Const Size: Integer; Const Path: String): TArr; //пользовательский тип
- Var
- Sequence: TArr;
- IsCorrect: Boolean;
- InputFile: TextFile;
- I: Integer;
- Begin
- SetLength(Sequence, Size);
- Writeln('Происходит чтение последовательности из файла...');
- AssignFile(InputFile, Path);
- Repeat
- IsCorrect := True;
- Try
- Try
- Reset(InputFile);
- Readln(InputFile);
- For I := Low(Sequence) To High(Sequence) Do
- Begin
- Read(InputFile, Sequence[I]);
- If (IsCorrect And ((Sequence[I] < MIN_VALUE) Or (Sequence[I] > MAX_VALUE))) Then
- Begin
- Writeln('Ошибка при чтении последовательности! Введите последовательность с консоли!');
- IsCorrect := False;
- Sequence := FillSequenceFromConsole(Size); //в вашем случае это будет возврат на стадию
- End; //ввода пути к файлу
- End;
- Finally
- Close(InputFile);
- End;
- Except
- Writeln('Ошибка при чтении последовательности! Введите последовательность с консоли!');
- IsCorrect := False;
- Sequence := FillSequenceFromConsole(Size); //в вашем случае это будет возврат на стадию ввода пути к файлу
- End;
- Until IsCorrect;
- FillSequenceFromFile := Sequence;
- End;
- //////////////////////////////////////////////////////////////////////////////
- ////////////////////////////// Запись в файл //////////////////////////////////
- Procedure OutputSequenceInFile(Const Sequence: TArr; Path: String);
- Var
- OutputFile: TextFile;
- IsCorrect: Boolean;
- I: Integer;
- Begin
- Writeln('Вывод начальной последовательности в файл...');
- Repeat
- IsCorrect := True;
- AssignFile(OutputFile, Path);
- Try
- Try
- Append(OutputFile);
- For I := Low(Sequence) To High(Sequence) Do
- Write(OutputFile, Sequence[I], ' '); //можно и #32(Space по ASCII), можно и #9(Tab по ASCII)
- Write(OutputFile, #13);
- Finally
- Close(OutputFile);
- End;
- Except
- Writeln('Ошибка! Измените параметры файла или укажите новый путь!');
- IsCorrect := False;
- Path := InputPathToFile();
- End;
- Until IsCorrect;
- Writeln('Данные успешно записаны в файл!');
- End;
- //////////////////////////////////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement