Присвоение файла другому файлу в Паскале - PullRequest
0 голосов
/ 31 мая 2018

Предположим, у меня есть файл с информацией о сотрудниках (сотрудники повторяются в этом файле).Я должен создать новый файл того же типа (с той же информацией), но единственное изменение, которое я должен сделать, это то, что мне нужно накопить в переменной сумму, которая является общей для каждого сотрудника (зарплата). Когда сотрудники повторяют первый файл , я должен накапливать зарплату в переменной и затем загружать ее в новый файл, конечно, проверяя, изменился ли сотрудник в первом файле.

После этого мне нужно «заменить» первый файл новым (со всей обновленной информацией).Я не знаю, как это сделать.Вот мой код:

     Assign(firstFile, 'employeesFile');
     createFirstFile(firstFile);  //this creates the 'old' file
     Assign(NEWfile, 'NEWEmployeesFile');
     updateInformation(firstFile, NEWfile); //this creates the new file, with updated information

Что мне делать дальше?Я применил этот код, но он выдает сообщение об ошибке:

Assign (firstFile, NEWfile);

ОШИБКА: несовместимый тип por arg no.2: получил файл, ожидаемый символ

1 Ответ

0 голосов
/ 02 июня 2018

Ошибка в том, что вторым параметром должна быть строка (имя файла, связанное с переменной типа Файл ).

Предположим, у вас уже есть два файла, и если вам нужно сделать замену, вы должны: 1- Удалить исходный файл.2- Переименуйте второй файл с тем же именем файла, что и предыдущий (удаленный) файл.

1-

Erase(FirstFile);

стирает назначенный файл в переменной «FirstFile».Будьте осторожны: переменная файла должна быть назначена, но не открыта.См. https://www.freepascal.org/docs-html/rtl/system/erase.html.

2-

Rename(NEWFile,'employeesFile');

переименовывает назначенный файл в новое имя, указанное во втором параметре.Вы не можете переименовать, если имя назначения уже существует.Еще раз: переменная файла должна быть назначена, но не открыта.См. https://www.freepascal.org/docs-html/rtl/system/rename.html для получения дополнительной информации.

...