Решите задачу на PascalABC.net; 70 баллов!!!! Дано целое число K и текстовый файл. Удалить из каждой строки файла первые K символов(Если длина строки меньше K, то удалить из неё все символы) Решение на PascalABC.net
BobbyFresnel
Могу, конечно. Операция s?[k+1:] требует выполнить "безопасный срез" строки s. Срез вида [p:] возвращает часть строки, начиная с символа номер p и до ее конца. Но если p находится за пределами строки, возникает ошибка. Значок "?" - признак "безопасности" среза, когда вместо возникновения ошибки срез не выполняется и возвращается исходная строка.
BobbyFresnel
Безопасный срез еще называеют "мягким". Подробнее о срезах Вы можете прочитать в книге http://pascalabc.net/downloads/OsipovBook/КнигаДляСайта.pdf на стр. 180-183 и 222-223
Answers & Comments
begin
var k := ReadInteger('K =');
var a := ReadAllLines('test1.txt').Select(s -> s?[k + 1:]).ToArray;
WriteAllLines('test2.txt', a);
Print('Работа завершена')
end.