Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 08.03.2017
Сообщений: 23

Вывод текста в окно вывода

20.03.2017, 15:15. Показов 3505. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
программа сжимает последовательности одинаковых символов ,цифр или пробелов при условии что их больше 5 .
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
{Кодирование}
procedure Compression(inFile: text; outFile: text);
var
   sym, tmp : Char;
   num : Byte;
   ext : Boolean;
begin
 
     {флаг выхода}
     ext := True; 
     {считать первый символ}
     Read(inFile,sym);
     {продолжать пока флаг выхода True}
     while ext = True do
     begin
          {если встретился служебнвый символ, то повторяем его}
          if sym = '%' then
          begin
               Write(outFile, sym);
               Write(outFile, sym);
               continue;
          end;
 
          num := 1;
          {подсчитываем повторения символов до 255}
          while num < 255 do
          begin
               {если конец файла то на выход}
               if (EOF(inFile)) then
               begin
                    ext := False; break;
               end;
               {сиытать символ и сравнить}
               Read(InFile, tmp);
               if sym <> tmp  then break;
               {счетчик сиволов + 1}
               Inc(num);
          end;
 
          {если счетчик более 4 повторений}
          if num > 4 then
          begin
               Write(outFile, '%'); {пишем служебный}
               Write(outFile, sym); {сам символ}
               Write(outFile, Char(num)); {число повторений}
               Write(outFile, '%'); {закрыть служебным}
          end
          else {иначе выписываем символы сколько и и встретилось}
          begin         
              {пока не 0}
              while num > 0 do
              begin
                   Write(outFile, sym);
                   Dec(num); {декремент счетчика}
              end;
          end;
          {взять текущий символ}
          sym := tmp;
     end;
end;
 
{Раскодирование}
procedure Decompression(inFile: text; outFile: text);
var
   sym, tmp, s : Char;
   num : Byte;
   ext : Boolean;
begin
 
     ext := True; 
     Read(inFile, sym); { считать символ}
 
     while ext = True do
     begin
          {если конец файла, обозначить флаг выхода в False}
          if EOF(inFile) then
          begin
               ext := False;
          end;
          
          {считываем симывол если не конец файла}
          if ext = True then 
            Read(inFile, tmp)
          else tmp := Char(0);
          {если это служебные символы}
          if (sym = '%') and (tmp = '%') then
          begin
               Write(outFile, sym); {запишем один раз}
               continue;
          end;
          {иначе если служебный, то выписываем повторения}
          if sym = '%' then
          begin
               Read(inFile, s);
               num := Ord(s); {взять число повторнеий}
               while num > 0 do
               begin
                    Write(outFile, tmp); {записыфваем символ}
                    num := num - 1;
               end;
               Read(inFile, tmp); {считываем 2 раза за служебного сивола, который закрывает}
               Read(inFile, tmp);
          end
          else Write(outFile, sym); 
 
          sym := tmp; {взять текущий символ}
     end;
end;
 
 
var
   ch: char;
   path: String;
   inFile, outFile: text;
 
begin
 
Writeln('Algorithm RLE');
 
     Writeln('Input path to source file:');
     Readln(path);  {путь к файлу}
     Assign(inFile,path); {назначить файл}
     if not FileExists(path) then {проверить существование}
     begin
          Writeln('File not success!'); exit;
     end 
     else Reset(inFile);
       
     {файл для записи}
     Writeln('Input path to result file:'); Readln(path);
     Assign(outFile,path); 
     Rewrite(outFile);  
 
     Writeln();
     Writeln('1 - Compression');
     Writeln('2 - Decompression');
     Readln(ch); {выбор алгоритма}
 
     if ch = '1' then
         Compression(inFile, outFile)
     else
         Decompression(inFile, outFile);
 
     {закрыть файлы} 
     Close(inFile);
     Close(outFile);
end.
Программа считывает текст из текстового документа , а после кодирует или декодирует текст в новый текстовый документ . Нужно чтобы текст который она считала выводился в окно вывода , как из исходного файла , так и из файла с результатом .
Вложения
Тип файла: rar RLE.rar (2.2 Кб, 5 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2017, 15:15
Ответы с готовыми решениями:

Функция вывода текста на всплывающее окно
Подскажите как можно реализовать функцию вывода текста на всплывающее окно при нажатие на кнопку Напечатать. Чтобы было примерно так: ...

Вывод текста, запрет растягивания окна, окно ввода текста
Здравствуйте. Заранее извиняюсь за создание очередной темы, но решения в поиске я не нашел. Я научился делать вывод текста с помощью...

Консольный вывод в окно вывода
Люди подскажите, где есть настройка регулирующая, куда будет происходить вывод консольного приложения: в открывающееся окно cmd.exe или в...

3
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
21.03.2017, 06:15
Цитата Сообщение от DvDinner Посмотреть сообщение
Нужно чтобы текст который она считала выводился в окно вывода , как из исходного файла , так и из файла с результатом .
это вставь в 128 строку и после 146
Pascal
1
     writeln(path,':');   System.IO.File.ReadAllLines(path).Println(NewLine);
Добавлено через 3 минуты
кстати в процедуре кодирования - ошибка, если файл такого вида "%%%%%FFFFFFFFFFFFFFFFFFF" то идет зацикливание
0
0 / 0 / 0
Регистрация: 08.03.2017
Сообщений: 23
21.03.2017, 07:35  [ТС]
вставил ,но выдаёт ошибку
Миниатюры
Вывод текста в окно вывода  
0
0 / 0 / 0
Регистрация: 08.03.2017
Сообщений: 23
21.03.2017, 07:43  [ТС]
Извините , разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.03.2017, 07:43
Помогаю со студенческими работами здесь

Вывод текста на консольное окно
Всем привет! подскажите пожалуйста, во время вывода текста как перевести курсор на следующую строку?

Вывод текста в дочернее окно
Как сделать что бы текст с информацией о типе диска выводился в дочернее окно? Вот код: //Создание окон #include...

Вывод текста в окно, кодировка
Подскажите пожалуйста как решить проблему? Пытаюсь вывести текст в окно следующим образом: case WM_PAINT: { PAINTSTRUCT ps; ...

Вывод текста в окно OpenGL - С++
Как вывести целое предложение или матрицу в окно OpenGL

Вывод текста, занимающего все окно
Необходимо от левого верхнего до нижнего правого угла рабочей области окна вывести текст так , чтобы он полностью помещался в окне при...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru