Решите задачу на PascalABC.net; 70 баллов!!!!
Дано целое число K и текстовый файл. Удалить из каждой строки файла первые K символов(Если длина строки меньше K, то удалить из неё все символы)
Решение на PascalABC.net

Ответы

Ответ дал: BobbyFresnel
1

begin

 var k := ReadInteger('K =');

 var a := ReadAllLines('test1.txt').Select(s -> s?[k + 1:]).ToArray;

 WriteAllLines('test2.txt', a);

 Print('Работа завершена')

end.


LRSM: Можете объяснить действие " s?[k + 1:] " ?
BobbyFresnel: Могу, конечно. Операция s?[k+1:] требует выполнить "безопасный срез" строки s. Срез вида [p:] возвращает часть строки, начиная с символа номер p и до ее конца. Но если p находится за пределами строки, возникает ошибка. Значок "?" - признак "безопасности" среза, когда вместо возникновения ошибки срез не выполняется и возвращается исходная строка.
BobbyFresnel: Безопасный срез еще называеют "мягким". Подробнее о срезах Вы можете прочитать в книге http://pascalabc.net/downloads/OsipovBook/КнигаДляСайта.pdf на стр. 180-183 и 222-223
Вас заинтересует