IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Замена букв в текстовом файле
ВанXelsing
сообщение 20.06.2004 20:50
Сообщение #1





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Помогите с написанием проги, для получения зачета, до понедельника срочно нужно.
Задание:Надо написать прогу которая читает текст из одного файла и меняет(кодирует) каждую букву на следующую букву алфавита, при этом должен использоваться еще один текстовый файл, в котором написанно какие буквы из текста меняются на другие. Т.е. вид примерно такой:
а:=б
б:=в
в:=г
ну и.т.д. Я попытался сделать, но не получается, символы из файла, где содержится выше указзанный тип кодировки, не распазнаются как текст, а получаются место букв всякие сердечки и квадратики и.т.д. Хелп кто знает как это пишется.
Вот код моей проги, которую я попробовал написать.

Код

uses CRT;
var
   F,fs:text;        переменных}
   Buf:array[1..4096] of Char;
   St,sts:String[255];
   str:string;
   i,y:longint;
begin
 ClrScr;
 str:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 Assign(fs,'C:\shifr.txt'
 reset(fs);
 while not eof(fs) do begin
 readln(fs,sts);
end;
 Assign(f,'C:\Text.txt');
 SetTextBuf(f,Buf);
 Reset(f);
  While not EOF(F)do
   begin
    readln(F,St);
for i:=1 to Length(St) do begin
 if St[i]='a' then St[i]:=Sts[y];
    write(ST[i]);
 end;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
BlackShadow
сообщение 20.06.2004 21:16
Сообщение #2


Гость






Код

Const
 Chars="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Var
 f:File Of Char;
 c:Char;
Begin
 Assign(f,'In.Txt');
 Reset(f);
 While Not Eof(f) Do
 Begin
   Read(f,c);
   If Pos(c,Chars) <> 0 Then
     If c='Z' Then
       Write('A')
     Else
      Write(Char(Byte(c)+1))
   Else
     Writer(c)
 Wns;
 Close(f)
End.

Если я правильно понял условия и нигде не описался...
Учти с русскими буквами такая тема не пройдёт - у них разрыв между "п" и "р" - надо проверку вставлять.
 К началу страницы 
+ Ответить 
ВанXelsing
сообщение 21.06.2004 9:11
Сообщение #3





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Практически так, только надо чтобы паскаль брал условия замены букв из второго текстового файла, т.е. типа кодировки получается. Первый файл-это текст, второй файл -это условия замены.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
ВанXelsing
сообщение 21.06.2004 9:12
Сообщение #4





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Но и за этот вариант СПАСИБО!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BlackShadow
сообщение 21.06.2004 10:52
Сообщение #5


Гость






Так бы сразу и сказал...
Код

Var
 CodeTable:Array['a'..'z'] Of Char;
 c:Char;
 f:File Of Char;
Begin
 Assign(f,'ReCode.Txt');
 Reset(f);
 For c:='a' To 'z' Do
   Read(f,CodeTable[c]);
 Close(f);
 Assign(f,'In.Txt');
 Reset(f);
 While Not Eof(f) Do
 Begin
   Read(f,c);
   If c In ['a'..'z'] Then
     Write(CodeTable[c])
   Else
     Write(c)
 End;
 Close(f)
End.

CodeTable.Txt должен состоять из 26 последовательноидущих букв. Например:
Цитата
BCDEFGHIJKLMNOPQRSTUVWXYZA
 К началу страницы 
+ Ответить 
ВанXelsing
сообщение 21.06.2004 15:28
Сообщение #6





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Спасибо большое, зачет сдал, век не забуду!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BlackShadow
сообщение 21.06.2004 15:36
Сообщение #7


Гость






Это тебе спасибо - дал нам с Олегом для очередной дискуссии на тему кто больший извращенец smile.gif
 К началу страницы 
+ Ответить 
Altair
сообщение 21.06.2004 16:48
Сообщение #8


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


smile.gif :D lol.gif rolleyes.gif B) :P


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BlackShadow
сообщение 21.06.2004 16:55
Сообщение #9


Гость






smile.gif
Жизненный цикл обычного программера:
:p12: :p1: :p10: :p8:
 К началу страницы 
+ Ответить 
Altair
сообщение 21.06.2004 17:02
Сообщение #10


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Насчет смайлов.
Как вам вот этот:

НАЖМИТЕ, чтобы посмотреть

Сообщение отредактировано: Oleg_Z - 21.06.2004 17:05


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.08.2025 8:36
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"