Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117

Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы)

08.05.2011, 13:31. Показов 4373. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет!
уважаемые, не могли бы вы помочь с задачкой?
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы).
заранее огромное спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.05.2011, 13:31
Ответы с готовыми решениями:

Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы)
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы). В текстовом файле, написать текст и из него убрать пробелы. Как...

Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы)
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы). Помогите с написанием программы. Не знаю Delphi.

Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы)
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы).

14
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
08.05.2011, 14:27
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
05.06.2011, 16:02  [ТС]
добрый день!
уважаемые программисты, не могли бы вы помочь? есть тут у меня программка, так вот хотелось бы ее немного подсократить.
вот условие:
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы).
А вот программка:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
05.06.2011, 16:06
тоесть нужно в файле поудалять пробелы?
0
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
05.06.2011, 16:13  [ТС]
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
тоесть нужно в файле поудалять пробелы?
да. сама программа у меня есть, я выше ее написал, она работает, но просто длинная, а мне надо, чтоб была покороче)))
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
05.06.2011, 16:49
F. Alonso, Когда будешь сам писать программы, а не сдирать, то может и короче напишешь.
Вот что на твой просветленный взгляд здесь лишнее?
0
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
05.06.2011, 16:50  [ТС]
Puporev, лишнего тут ничего, но нужно сократить, потому и прошу) разве нельзя ее просто укоротить?
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
05.06.2011, 16:54
Цитата Сообщение от F. Alonso Посмотреть сообщение
randomize;
зачем?)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
05.06.2011, 16:55
Нет, нельзя.

Добавлено через 49 секунд
Убери
uses crt;
clrscr;
randomize;
очень укоротится....
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
05.06.2011, 16:55
Цитата Сообщение от F. Alonso Посмотреть сообщение
разве нельзя ее просто укоротить
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var f:file of char;
a:char;
n,i:integer;
begin
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;
end.
просто укоротил)
можно еще вот так
Pascal
1
2
3
4
5
6
var f:file of char;
a:char;
n,i:integer;
begin
...........
end.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
05.06.2011, 16:59
Не, чтобы коротко и вроде правильно нужно не не удалять пробелы, а просто при просмотре их не выводить...
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
05.06.2011, 17:05
Puporev,

Добавлено через 2 минуты
создайте обычный текстовый файл и считываете символы, но как строку(string), а потом просто удалите из неё пробелы
0
298 / 298 / 150
Регистрация: 07.05.2011
Сообщений: 592
05.06.2011, 17:24
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Program My10;
{ Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы). }
uses 
  crt;
var 
  f:file of char;
  a:char;
  n,i,j,k:integer;
  s: string;
begin
  clrscr;
  assign(f,'file1');
  rewrite(f);
 
  write('Количество символов n=');
  readln(n);
  for i:= 1 to n do
    begin
      readln(a);
      write(f,a);
    end;
 
  writeln('Исходный файл:');
  seek(f,0);
  while not eof(f) do
    begin
      read(f,a);
      write(a);
    end;
  writeln;
 
  n:= filesize(f);
  i:=0;
  j:=0;
  
  while i<n do{проверяем до последнего}
    begin
      seek(f,i);
      read(f,a);
      if a<>' ' then{если не пробел}
        begin
          seek(f,j);
          write(f,a);
          inc(j);
        end;
      inc(i);
    end;
  truncate(f);{обрезаем файл}
 
  seek(f,0);
  if eof(f) then 
    write('Все элементы удалены')
  else
    begin
      writeln('Измененный файл:');
      for i:=0 to filesize(f)-1 do
        begin
          read(f,a);
          write(a);
        end;
    end;
  writeln;
  close(f);
  readln
end.
Добавлено через 1 минуту
Проверено в PascalABC.Net. К сожалению, Вы не указали автора изначальной программы, авторские права, etc.
0
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
05.06.2011, 17:26  [ТС]
lamed, спасибо огромное!

Добавлено через 1 минуту
Цитата Сообщение от lamed Посмотреть сообщение
Проверено в PascalABC.Net. К сожалению, Вы не указали автора изначальной программы, авторские права, etc.
не понял.
0
298 / 298 / 150
Регистрация: 07.05.2011
Сообщений: 592
05.06.2011, 17:29
Вопрос возник из-за Вашей полемики в форуме. Если авторство Ваше - принимайте поздравления. Если она откуда-то скачана, принято ссылаться на автора или сайт или учебник.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2011, 17:29
Помогаю со студенческими работами здесь

Сжать файл (убрать пробелы)
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; #define n 50 using namespace std; int main ()...

Символьный файл содержит пробелы. Нужно сосчитать его без прробелов
Доброго времени суток! Не пойму, как можно сосчитать символьную строку без пробелов. Например, вводите &quot;Аполон Василий...

Открыть файл, путь к которому содержит пробелы и передается в переменной
Public LogFileName '... private sub '... ' програмка задает имя и путь к файлу с произвольным расширением, примерно так: FolderWORK...

Убрать лишние(повторяющиеся) пробелы, и записать в файл
помоги, пожалуйста, доработать программу Надо убрать лишние(повторяющиеся) пробелы, и записать в файл using namespace std; int...

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru