0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 32
1

Переписать текстовый файл в другой, вставляя в конец каждой строки число, количество слов

06.04.2013, 17:43. Показов 1723. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
переписать текстовый файл в другой, вставляя в конец каждой строки число, количество слов
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2013, 17:43
Ответы с готовыми решениями:

Переписать текстовый файл в другой вставляя в конец каждой строки число-количество цифровых символов
Переписать текстовый файл в другой вставляя в конец каждой строки число-количество цифровых...

Переписать текстовый файл в другой вставляя в конец каждой строки число
переписать текстовый файл в другой вставляя в конец каждой строки число - количество слов,не...

Дан текстовый файл F. Переписать файл F в файл G, вставляя в конец каждой строки ее порядковый номер.
решите)

Распечатать текстовый файл, вставляя в конец каждой строки ее порядковый номер
Составить программу, которая построчно печатает содержимое непустого текстового файла, вставляя в...

10
30 / 30 / 19
Регистрация: 08.06.2010
Сообщений: 63
06.04.2013, 18:04 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  inp, outp: text;
  i, count: integer;
begin
  assign(inp, 'inp'); assign(outp, 'outp');
  reset(inp); rewtrite(outp);
  while not eof(inp) do begin
    readln(inp, s);
    for i:=1 to length(s) do
      if (s[i] = ' ') then inc(count);
    inc(count);
    writeln(outp, s);
  end;
  writeln(outp, count);
  close(inp); close(outp);
end.
1
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 32
07.04.2013, 17:35  [ТС] 3
не работает

Добавлено через 7 минут
Нужно считать в каждой строке количество слов и в конце каждой строки вставить число - кол-во слов именно этой строки. Если подряд 2 пробела стоят, тогда как быть?
0
30 / 30 / 19
Регистрация: 08.06.2010
Сообщений: 63
07.04.2013, 22:43 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  inp, outp: text;
  i, count: integer;
  s: string;
  firstSpace: boolean;
 
begin
  assign(inp, 'inp'); assign(outp, 'outp');
  reset(inp); rewtrite(outp);
  firstSpace:=true;
  while not eof(inp) do begin
    readln(inp, s); count:=0;
    for i:=1 to length(s) do begin
      if (s[i] = ' ') and (firstSpace) then begin inc(count); firstspace:=false; end;
      if s[i] <> ' ' then firstspace:=true;
    end;
    inc(count);
    writeln(outp, s + ' ' + count);
  end;
  writeln(outp, count);
  close(inp); close(outp);
end.
1
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 32
13.04.2013, 01:20  [ТС] 5
Не всегда правильно считает. Если в строке только пробелы - то выводит что 1 слово.
Немного переделал:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  inp, outp: text;
  i,count: integer;
  s:string;
begin
  assign(inp, 'd:\inp.txt'); assign(outp, 'd:\outp.txt');
reset(inp); rewrite(outp);
  while not eof(inp) do
  begin
    readln(inp, s);
    for i:=2 to length(s) do
      if (s[i] = ' ')and(s[i-1]<>' ') then inc(count);
      if count<>0 then
    writeln(outp,s, count+1)
    else
    writeln(outp,s, ' 0');
    count:=0;
  end;
  close(inp); close(outp);
end.
но не правильно считает, если в строке только 1 слово, что изменить?
0
30 / 30 / 19
Регистрация: 08.06.2010
Сообщений: 63
13.04.2013, 10:38 6
Pascal
1
if ((s[i] = ' ') or (i = length(s))) and(s[i-1]<>' ') then inc(count);
1
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 32
13.04.2013, 12:06  [ТС] 7
как быть, если в строке только одна буква , например "А" без пробела, прога пишет что 0, а если 2 буквы "ты" тогда хорошо считает
0
30 / 30 / 19
Регистрация: 08.06.2010
Сообщений: 63
13.04.2013, 22:19 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  inp, outp: text;
  i, count: integer;
  s: string;
  firstLetter: boolean;
 
begin
  assign(inp, 'inp'); assign(outp, 'outp');
  reset(inp); rewtrite(outp);
  while not eof(inp) do begin
    readln(inp, s); count:=0; firstLetter:=true;
    for i:=1 to length(s) do begin
      if (s[i] <> ' ') and (firstLetter) then begin inc(count); firstLetter:=false; end;
      if (s[i] = ' ') and (s[i+1] <> ' ') then firstLetter:=true;
    end;
    writeln(s, ' ', count);
  end;
  close(inp); close(outp);
end.
2
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 8
22.05.2013, 16:35 9
ZzzzoOk,
а как можно
Цитата Сообщение от ZzzzoOk Посмотреть сообщение
while not eof(inp) do begin
* * readln(inp, s); count:=0; firstLetter:=true;
заменить на repeat?
пробовал так:
repeat
readln(inp,s); count:=0;
firstletter:=true;
until(eof(inp));

но после запуска программы у меня почему-то в файле outp.txt показывает правильно лишь последнюю строчку
помоги, пожалуйста
0
30 / 30 / 19
Регистрация: 08.06.2010
Сообщений: 63
23.05.2013, 01:29 10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Slava22-12,

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  inp, outp: text;
  i, count: integer;
  s: string;
  firstLetter: boolean;
 
begin
  assign(inp, 'inp'); assign(outp, 'outp');
  reset(inp); rewrite(outp);
  repeat
    readln(inp, s); count:=0; firstLetter:=true;
    for i:=1 to length(s) do begin
      if (s[i] <> ' ') and (firstLetter) then begin inc(count); firstLetter:=false; end;
      if (s[i] = ' ') and (s[i+1] <> ' ') then firstLetter:=true;
    end;
    writeln(outp, s, ' ', count);
  until eof(inp);
  close(inp); close(outp);
end.
1
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 8
23.05.2013, 11:39 11
спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2013, 11:39
Помогаю со студенческими работами здесь

Дан текстовый файл f. Переписать компоненты файла f в файл g, вставляя в начало каждой строки по одному пробелу
помогите решить задачу, у самой только получилось чтоб программа копировался f в g, program...

Переписать файл 'F.txt' в файл 'G.txt', вставляя в конец каждой строки ее порядковый номер
Не успеваю, очень срочно на завтра надо 4. Дан текстовый файл 'F.txt'. Переписать файл 'F.txt' в...

Переписать текст в файл g, вставляя в начало каждой строки столько пробелов, сколько в нем однобуквенных слов
Дано текстовый файл f. Переписать текст в файл g, вставляя в начало каждой строки столько пробелов,...

Переписать текстовый файл в другой, вставляя после каждого слова число, равное длине слова
Есть программа, выполняет: переписать текстовый файл в другой,вставляя после каждого слова...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru