Операция '+' не применима к типам integer и string - PascalABC.NET
Формулировка задачи:
Привет,помогите пожалуйста ,проблема в 46 строке
Что изменить?
Код паскаль:
program orginizer; const filename = 'zametki.txt'; type date = record dd: string[2]; mm: string[2]; yyyy: string[4]; z: string[100]; end; procedure vvoddannix; var item : date; f: File of date; begin write('День : '); readln(item.dd); write('Месяц : '); readln(item.mm); write('Год : '); readln(item.yyyy); write('Напоминание : '); readln(item.z); assign(f, filename); if not fileExists(filename) then begin rewrite(f); end; reset(f); seek(f, FileSize(f)); write(f, item); close(f); end; procedure poisk (dd, mm, yyyy, z: string); var i: integer; item : date; f: File of date; begin assign(f, filename); if not fileExists(filename) then begin rewrite(f); end; reset(f); i := 1; writeln('Список записей'); while not eof(f) do begin read(f, item); if (dd = '') and (mm = '') and (yyyy = '') and (z = '') then begin writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z); i := i + 1; end else if (dd <> '') then begin if (pos(dd, item.dd) > 0) then begin writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z); i := i + 1; end; end else if (mm <> '') then begin if (pos(mm, item.mm) > 0) then begin writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z); i := i + 1; end; end else if (yyyy <> '') then begin if (pos(yyyy, item.yyyy) > 0) then begin writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z); i := i + 1; end; end else if (z <> '') then begin if (pos(z, item.z) > 0) then begin writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z); i := i + 1; end; end end; close(f); end; procedure izmenenie; var index: integer; item : date; f: File of date; begin poisk('', '', '',''); writeln('Номер записи для изменения: '); readln(index); assign(f, filename); if not fileExists(filename) then begin rewrite(f); end; reset(f); write('День : '); readln(item.dd); write('Месяц : '); readln(item.mm); write('Год : '); readln(item.yyyy); write('Напоминание : '); readln(item.z); seek(f, index - 1); write(f, item); close(f); end; procedure ydalenie; var i, index: integer; item : date; f,f2: File of date; begin poisk('', '', '',''); writeln('Номер записи для удаления: '); readln(index); assign(f, filename); assign(f2, 't' + filename); rewrite(f2); if not fileExists(filename) then begin rewrite(f); end; reset(f); reset(f2); i := 1; while not eof(f) do begin read(f, item); if index <> i then begin write(f2, item); end; i := i + 1; end; close(f); close(f2); DeleteFile(filename); rename(f2, filename); end; procedure Menu; begin writeln('------------------'); writeln ('Введите пункт меню:'); writeln('1: Просмотр записей'); writeln('2: Добавление записи'); writeln('3: Изменение записи'); writeln('4: Удаление записи'); writeln('5: Поиск по дню'); writeln('6: Поиск по месяцу'); writeln('7: Поиск по году'); writeln('8: Поиск по напоминанию'); writeln('0: Выход'); write('Действие: '); end; var punkt: integer; s: string; begin punkt := 1; while 1=1 do begin Menu; readln(punkt); case punkt of 1: poisk('', '','', ''); 2: vvoddannix; 3: izmenenie; 4: ydalenie; 5: begin writeln('Введите день:'); readln(s); poisk(s, '', '',''); end; 6: begin writeln('Введите месяц:'); readln(s); poisk('', s, '',''); end; 7: begin writeln('Введите год'); readln(s); poisk('', '', s,''); end; 8: begin writeln('Введите Напоминание'); readln(s); poisk('', '','', s); end; 0: exit; end; end; end.
Решение задачи: «Операция '+' не применима к типам integer и string»
textual
Листинг программы
Действие: 2 День : kk Месяц : kk Год : kkkk Напоминание : 98789798