Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
Сам себе *****
 Аватар для Inside
31 / 31 / 7
Регистрация: 18.10.2009
Сообщений: 236

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

16.11.2009, 16:07. Показов 4869. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан символьный файл f. Получить файл g, образованный из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми)

Помогите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.11.2009, 16:07
Ответы с готовыми решениями:

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

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

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

19
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
16.11.2009, 16:26
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
f,g:text;
s:string;
begin
----------
----------
while not eof(f) do
begin
readln(f,s);
for i:=1 to length(s) do
if s[i]=upcase(s[i]) then 
s[i]:=lowcase(s[i]);
writeln(g,s);
end;
 
end;
как то так Открыть закрыть файл я думаю вы сами сможете
1
Сам себе *****
 Аватар для Inside
31 / 31 / 7
Регистрация: 18.10.2009
Сообщений: 236
16.11.2009, 16:29  [ТС]
Без проблем,спасибо!
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
16.11.2009, 16:31
Цитата Сообщение от John_Pa9JIbHuK Посмотреть сообщение
if s[i]=upcase(s[i]) then
s[i]:=lowcase(s[i]);
дополнение к предыдущему ответу: в TP7(turbo pascal) функции LowCase и UpCase работают только с латинскими буквами, поэтому для работы с русскими буквами используйте функцию Ord.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
16.11.2009, 17:15
Цитата Сообщение от Inside Посмотреть сообщение
Дан символьный файл f.
Это значит типизированный файл file of char, и никаких строк там нет.
0
Сам себе *****
 Аватар для Inside
31 / 31 / 7
Регистрация: 18.10.2009
Сообщений: 236
08.12.2009, 23:51  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program rgr4;
uses crt;
var
f,g:text;
s:string;i:integer;
begin
assign(f,'f');
reset(f);
assign(g,'g');
[COLOR="Red"]reset(g);[/COLOR]
while not eof(f) do
begin
readln(f,s);
for i:=1 to length(s) do
if s[i]=upcase(s[i]) then
s[i]:=lowcase(s[i]);
writeln(g,s);
end;
close(f);
close(g);
end.
Не удаётся найти указанный файл...Почему?
0
57 / 57 / 26
Регистрация: 05.12.2009
Сообщений: 106
09.12.2009, 03:29
Inside,
Цитата Сообщение от Inside Посмотреть сообщение
assign(f,'f');
reset(f);
assign(g,'g');
если не ошибаюсь, то когда связываете файл, нужно указывать имя файла и его расширение.
т.е
Pascal
1
2
3
assign(f,'f.txt');
reset(f);
assign(g,'g.txt');
1
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
09.12.2009, 03:33
Inside, к тому же Вы в файл пишете, а у Вас он открыт только для чтения. Т.е. 10 строку надо заменить на
Pascal
1
rewrite(g);
1
Сам себе *****
 Аватар для Inside
31 / 31 / 7
Регистрация: 18.10.2009
Сообщений: 236
09.12.2009, 12:11  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program rgr4;
uses crt;
var
f,g:text;
s:string;i:integer;
begin
assign(f,'f.txt');
reset(f);
assign(g,'g.txt');
rewrite(g);
while not eof(f) do
begin
readln(f,s);
for i:=1 to length(s) do
if s[i]=upcase(s[i]) then
s[i]:=lowcase(s[i]);
writeln(g,s);
end;
close(f);
close(g);
end.
Программа сразу завершается,без ввода каких-либо символов.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
09.12.2009, 12:27
Inside, насколько я вижу, то Вы тут ничего и не вводите... На экране и не должно быть ничего(судя по Вашей программе)
0
3318 / 1380 / 110
Регистрация: 28.04.2009
Сообщений: 4,822
09.12.2009, 13:15
Скорей всего в папке с программой должен появиться файл g.txt с результом.
0
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 7
22.08.2010, 13:35
Цитата Сообщение от Inside Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program rgr4;
uses crt;
var
f,g:text;
s:string;i:integer;
begin
assign(f,'f.txt');
reset(f);
assign(g,'g.txt');
rewrite(g);
while not eof(f) do
begin
readln(f,s);
for i:=1 to length(s) do
if s[i]=upcase(s[i]) then
s[i]:=lowcase(s[i]);
writeln(g,s);
end;
close(f);
close(g);
end.
Здравствуйте. Я работаю во Free Pascal IDE 2.4.0., и при компиляции вылезает ошибка: "Error: Identifier not found "lowcase". Хотя upcase находит, странно. Может, кто подскажет, надо где-то вынести упоминание?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.08.2010, 13:55
auto_san4ez, Это ерунда написана, в Паскале нет функции LowCase, нужно переводить прописные в строчные вручную, с помощью таблицы символов, как это делать написано здесь.
Конвертация строк
1
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 7
22.08.2010, 14:57
Puporev, спасибо. Но дело в том, что из файла f в файл g не заменяются все большие буквы на малые, они просто копируются. Например, я в файле f ввожу: "Я пОшЁл ГуЛяТЬ". При запуске проги в файл g записывается тоже самое, а не ожидаемое "я пошёл гулять".
Вот прога:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program pr8;
uses crt;
var
f,g:text;
s:string;i:byte;
begin
assign(f,'D:\f.txt');
reset(f);
assign(g,'D:\g.txt');
rewrite(g);
while not eof(f) do
begin
readln(f,s);
for i:=1 to length(s) do
if s[i] in ['A'..'Z','А'..'П'] then s[i]:=chr(ord(s[i])+32)
else if s[i] in ['Р'..'Я'] then s[i]:=chr(ord(s[i])+80)
else if s[i]='Ё' then s[i]:='ё';
writeln(g,s);
end;
close(f);
close(g);
end.
И как у вас здесь написано: Конвертация строк приведение к нижнему регистру в вышеуказанном коде осуществлено, но почему-то получается копирование символов, а не замена больших букв малыми. Подскажите, что не так?
update: на латинских символах работает, т.е. заменяется, на русских - копируется.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.08.2010, 15:20
auto_san4ez, Процедуры написаны не для файлов в кодировке Win. Когда вы из Паскаля читаете эти файлы, то русские буквы воспринимаются в кодировке Dos совсем не так. Поэтому, если вы хотите так преобразовывать текстовые файлы с русским текстом, то вам нужно при чтении строку сначала переконвертировать из ANSI в ASCII, перевести в нижний регистр, снова переконвертировать в ASCII и записать в файл. Все это есть в той же теме. В задании у первого автора были типизированные файлы, которые создаются программно, там все равно, русские или латинские буквы.
1
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 25
11.11.2010, 14:33
Почему выскакивает такая ошибка?

Error 40: Boolean expression expected.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses crt;                                                                     
var f,g:text;                                                                 
    i:integer;                                                                
    s:string;                                                                 
begin                                                                         
clrscr;                                                                       
assign(f,'D:\pascal\files\bolchie.txt');                                      
reset(f);                                                                     
assign(g,'D:\pascal\files\bolchie1.txt');                                     
rewrite(g);                                                                   
while not eof(f) do                                                           
 begin                                                                        
  readln(f,s);                                                                
  for i:=1 to length(s) do                                                    
  if s[i]{в этом месте}:=upcase(s[i]) then                                                  
  s[i]:=lowcase(s[i]);                                                        
  writeln(g,s);                                                               
 end;                                                                         
 close(f);                                                                    
 close(g);                                                                    
readln;
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.11.2010, 14:37
Ну правильно по синтаксису писать так
Pascal
1
if s[i]=upcase(s[i]) then
а по сути надо смотреть...
0
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 25
11.11.2010, 14:41
теперь здесь пишет неизвестный идентификатор:
s[i]:=lowcase(s[i]);
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.11.2010, 14:54
cbdemon, А ты вообще тему читал? В особенности пост №13?
1
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 25
11.11.2010, 15:09
Спасибо, что то я не обратил внимание... )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2010, 15:09
Помогаю со студенческими работами здесь

Получить файл j образованный из файла f заменой всех его прописных (больших) букв одноименными строчными
Дан символьный файл f, получить файл j образованый из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми)

Получить файл j образованный из файла f заменой всех его прописных (больших) букв одноименными строчными
Дан символьный файл f, получить файл j образованый из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми)

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

Дан символьный файл f, получить файл j образованный из файла f заменой всех его прописных(больших) букв одноименными строчными(малыми).
Дан символьный файл f, получить файл j образованный из файла f заменой всех его прописных(больших) букв одноименными...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru