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

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

26.12.2014, 16:07. Показов 882. Ответов 7
Метки нет (Все метки)

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

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

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

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

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

7
4 / 4 / 1
Регистрация: 12.12.2014
Сообщений: 14
26.12.2014, 17:36 2
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
Program Count;
Var
  buf: String;
  kol: Word;
  F  : Text;
  G  : Text;
Begin
 
  Assign(F, 'Y:\SourceFile.txt');
  Assign(G, 'Y:\ResultFile.txt');
 
  Reset  (F);
  Rewrite(G);
 
  While Not Eof(F) do
  Begin
    ReadLn(F, buf);
    kol := Length(buf);
    kol := kol + Ord('0');
    buf := buf + Chr(kol);
    WriteLn(G, buf);
  End;
 
  Close(F);
  Close(G);
 
End.
Как - то так. А смайлики были скорее всего из-за отсутствия строки
Pascal
1
kol := kol + Ord('0');
0
204 / 141 / 57
Регистрация: 25.12.2014
Сообщений: 445
26.12.2014, 17:50 3
Цитата Сообщение от LDaniel Посмотреть сообщение
1
kol := kol + Ord('0');
И что это такое? К числу "длина строки" добавляется 48, потом это превращается в символ и выводится в конец.
Думаю, имелось в виду "просмотреть всю строку символов, посчитать сколько в ней цифр (символов '0'..'9') и вывести это количество в виде числа в конец строки". PTIZZA , так?
0
4 / 4 / 1
Регистрация: 12.12.2014
Сообщений: 14
26.12.2014, 18:23 4
Так, это я пошутил вот исправленный вариант:
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
Program Count;
Var
  buf : String;
  kol : Word;
  i   : Word;
  F   : Text;
  G   : Text;
  mnoj: set of char;
Begin
 
  Assign(F, 'Y:\SourceFile.txt');
  Assign(G, 'Y:\ResultFile.txt');
 
  Reset  (F);
  Rewrite(G);
 
  mnoj := ['0'..'9'];
 
  While Not Eof(F) do
  Begin
    ReadLn(F, buf);
    kol := 0;
    For i:= 1 to Length(buf) do
    If buf[i] in mnoj then Inc(kol);
    kol := kol + Ord('0');
    buf := buf+ ' Count = ' + Chr(kol);
    WriteLn(G, buf);
  End;
 
  Close(F);
  Close(G);
 
End.
P.S. Насколько я понимаю, указывать нужно количество цифр в каждой строке, в конце этой строки, нет?
0
204 / 141 / 57
Регистрация: 25.12.2014
Сообщений: 445
26.12.2014, 18:44 5
Так лучше, но наверно вместо
Цитата Сообщение от LDaniel Посмотреть сообщение
kol := kol + Ord('0'); buf := buf+ ' Count = ' + Chr(kol); WriteLn(G, buf);
имелось в виду
Pascal
1
WriteLn(G, buf,kol);
или
Pascal
1
WriteLn(G, buf,' Count = ',kol);
0
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 5
26.12.2014, 19:11  [ТС] 6
Нужно посчитать сколько цифровых элементов в строке и в конце строки написать
Например: 26 декабря 1991 года распался СССР и приписывается 6

хммм, а я делал по другому)
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
var
   f1,f2:text;
   s:string;
   res:integer;
const
   digits:set of char =  ['0'..'9'];
 
function CD (s:string):integer;
   var
   i,count:integer;
   begin
      count:=0;
      for i:=1 to length(s) do
      if (s[i] in digits) then
      count:=count+1;
      CD:=count;
      end;
 
begin
 
     assign(f1, paramstr(1));
     reset(f1);
     assign(f2, paramstr (2)); rewrite(f2);
 
   while not eof(f1) do begin
 
     while not eoln(f1) do  begin
      readln(f1,s);
      res:=cd(s);
      end;
 
      readln(f1);
      writeln(f2);
      write(f2,s, ' ', res);
   end;
 
 close(f1);
 close(f2);
end.
Добавлено через 6 минут
И да, LDaniel спасибо, все отлично)
но я предпочитаю делать через параметры, этот моментик под себя исправил
0
4 / 4 / 1
Регистрация: 12.12.2014
Сообщений: 14
26.12.2014, 19:19 7
В функцию eoln() , насколько помню, надо строку, а не файловую переменную передавать. И потом в функции CD есть же for i:=1 to length(s) зачем ещё раз проверять, что строка не закончилась?
0
204 / 141 / 57
Регистрация: 25.12.2014
Сообщений: 445
26.12.2014, 19:34 8
Цитата Сообщение от LDaniel Посмотреть сообщение
В функцию eoln() , насколько помню, надо строку, а не файловую переменную передавать.
Нет, именно файловую переменную. "End of line" - в текстовом файле мы дочитали до конца текущей строки. Хотя, действительно, непонятно зачем здесь это? readln(f1,s); читает строку и переходит на следующую.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2014, 19:34
Помогаю со студенческими работами здесь

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

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

Переписать в новый файл все его строки, вставив в конец каждой строки количество символов в ней
Задание: using System; using System.Collections.Generic; using System.Linq; using...

Переписать в новый файл output1.txt все его строки, вставив в конец каждой строки ее номер и количество символов в ней
Дан тектсовый файл input.txt. Необходимо:  переписать в новый файл output1.txt все его строки,...


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

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

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