1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
|
|
1 | |
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы)08.05.2011, 13:31. Показов 4107. Ответов 14
Метки нет (Все метки)
всем привет!
уважаемые, не могли бы вы помочь с задачкой? Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы). заранее огромное спасибо!
0
|
08.05.2011, 13:31 | |
Ответы с готовыми решениями:
14
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы) Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы) Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы) Сжать файл (убрать пробелы) |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
08.05.2011, 14:27 | 2 | |||||
0
|
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
|
|
05.06.2011, 16:02 [ТС] | 3 |
добрый день!
уважаемые программисты, не могли бы вы помочь? есть тут у меня программка, так вот хотелось бы ее немного подсократить. вот условие: Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы). А вот программка: Код
Program My10; uses crt; var f:file of char; a:char; n,i,j,k:integer; begin clrscr; randomize; assign(f,'file1'); rewrite(f); write('Количество символов n='); readln(n); writeln('Введите ',n,' символов, в том числе пробелы'); for i:=1 to n do begin write('символ ',i,'='); readln(a); write(f,a); end; writeln('Исходный файл:'); reset(f); while not eof(f) do begin read(f,a); write(a,' '); end; writeln; close(f); reset(f); k:=0;i:=0; while i<=filesize(f)-2-k do{проверяем до предпоследнего} begin seek(f,i); read(f,a); if a=' ' then{если пробел} begin k:=k+1;{считаем} for j:=i to filesize(f)-2 do{сдвигаем конец файла на 1 вверх} begin seek(f,j+1); read(f,a); seek(f,j); write(f,a); end; end else i:=i+1; end; seek(f,filesize(f)-k-1);{проверяем последний из неудаленных} read(f,a); if a=' ' then k:=k+1;{если пробел, добавляем удаленных} seek(f,filesize(f)-k);{встаем в последний} truncate(f);{обрезаем файл} close(f); reset(f); if filesize(f)=0 then write('Все элементы удалены') else begin writeln('Измененный файл:'); reset(f); for i:=0 to filesize(f)-1 do begin read(f,a); write(a,' '); end; end; close(f); readln end.
0
|
Mobile Software Engineer
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
|
|
05.06.2011, 16:06 | 4 |
тоесть нужно в файле поудалять пробелы?
0
|
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
|
|
05.06.2011, 16:13 [ТС] | 5 |
да. сама программа у меня есть, я выше ее написал, она работает, но просто длинная, а мне надо, чтоб была покороче)))
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
05.06.2011, 16:49 | 6 |
F. Alonso, Когда будешь сам писать программы, а не сдирать, то может и короче напишешь.
Вот что на твой просветленный взгляд здесь лишнее?
0
|
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
|
|
05.06.2011, 16:50 [ТС] | 7 |
Puporev, лишнего тут ничего, но нужно сократить, потому и прошу) разве нельзя ее просто укоротить?
0
|
Mobile Software Engineer
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
|
|
05.06.2011, 16:54 | 8 |
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
05.06.2011, 16:55 | 9 |
Нет, нельзя.
Добавлено через 49 секунд Убери uses crt; clrscr; randomize; очень укоротится....
0
|
Mobile Software Engineer
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
|
|||||||||||
05.06.2011, 16:55 | 10 | ||||||||||
можно еще вот так
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
05.06.2011, 16:59 | 11 |
Не, чтобы коротко и вроде правильно нужно не не удалять пробелы, а просто при просмотре их не выводить...
0
|
Mobile Software Engineer
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
|
|
05.06.2011, 17:05 | 12 |
Puporev,
Добавлено через 2 минуты создайте обычный текстовый файл и считываете символы, но как строку(string), а потом просто удалите из неё пробелы
0
|
298 / 298 / 150
Регистрация: 07.05.2011
Сообщений: 592
|
||||||
05.06.2011, 17:24 | 13 | |||||
Проверено в PascalABC.Net. К сожалению, Вы не указали автора изначальной программы, авторские права, etc.
0
|
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
|
|
05.06.2011, 17:26 [ТС] | 14 |
0
|
298 / 298 / 150
Регистрация: 07.05.2011
Сообщений: 592
|
|
05.06.2011, 17:29 | 15 |
Вопрос возник из-за Вашей полемики в форуме. Если авторство Ваше - принимайте поздравления. Если она откуда-то скачана, принято ссылаться на автора или сайт или учебник.
0
|
05.06.2011, 17:29 | |
05.06.2011, 17:29 | |
Помогаю со студенческими работами здесь
15
Символьный файл содержит пробелы. Нужно сосчитать его без прробелов Открыть файл, путь к которому содержит пробелы и передается в переменной Убрать лишние(повторяющиеся) пробелы, и записать в файл Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |