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

Программа кодирования текста методом замены слов

14.02.2013, 22:33. Показов 1908. Ответов 4
Метки нет (Все метки)

Доброго времени суток.Поскольку с бэйсиком знаком лишь поверхностно то,прошу Вашей помощи в написании программы для кодирования/шифровки текста методом замены одного слова другим.
Позвольте примерно описать логику работы.Берётся текст из файла "А.тхт",слова из него сравнимаются со словами соответствиями записанными в файле "В.тхт",при совпадении происходит замена,в противном случае пропускается без изменений,результат записывается в файл "С.тхт".
Надеюсь на Вашу помощь,благодарю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2013, 22:33
Ответы с готовыми решениями:

Нужна программа зашифровки текста(файла) методом прямой замены (на с++)
Кому несложно скиньте исходник пожалуста.

программа кодирования текста
Всем добрый день :) Есть такая программа,по кодированию текста в файле, с помощью ключа,который...

Расшифровка текста методом замены
Частотный анализ символов показал, что скорее всего, использована простая замена букв кириллицы:...

Шифрования текста методом замены
Мне надо, чтобы эта программа, шифровала текст, на русском или английском языке (для каждого есть...

4
4961 / 1633 / 409
Регистрация: 25.04.2010
Сообщений: 4,497
Записей в блоге: 1
15.02.2013, 01:23 2
кодирования/шифровки текста методом замены одного слова другим
ok
Прога эта выполняет 3 функции:
  • Позволяет создать файлы "A.TXT" и "B.TXT"
  • Зашифровать то что в "A.TXT" используя "B.TXT" в файл "C.TXT вашим методом.
  • Дешифровать "C.TXT" вашим методом и отобразить результат на экран."
Во вложении внизу сообщения прога и тестовые данные.

QBasic/QuickBASIC
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
DO
CLS
 LOCATE 5
 PRINT "Deistvie:"
 
 DO: Kb$ = INKEY$
 IF Kb$ = CHR$(0) + "H" AND Vib > 0 THEN Vib = Vib - 1
 IF Kb$ = CHR$(0) + "P" AND Vib < 3 THEN Vib = Vib + 1
   IF Vib = 0 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 7, 5: PRINT "- Vvesti dannye v faily A.TXT i B.TXT"
   IF Vib = 1 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 8, 5: PRINT "- Vipolnit shifrovku v C.TXT"
   IF Vib = 2 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 9, 5: PRINT "- Vipolnit deshifrovku faila C.TXT"
   IF Vib = 3 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 10, 5: PRINT "- Vihod"
 LOOP UNTIL Kb$ = CHR$(13)
 
SELECT CASE Vib
   CASE 0
OPEN "a.txt" FOR OUTPUT AS #1
OPEN "b.txt" FOR OUTPUT AS #2
 CLS
 INPUT "Vvedi predlojenye: ", p$
 PRINT #1, p$
 INPUT "Vvedi kolichestvo slov \ zamen: ", n%
 PRINT #2, n%
 FOR i% = 1 TO n%
    PRINT "  Vvedi slovo N" + CHR$(248); i%;
    INPUT ": ", sl$
    INPUT "  Vvedi zamenu: ", zm$
    PRINT #2, sl$
    PRINT #2, zm$
 NEXT
CLOSE
PRINT : PRINT "Sohraneno v A.TXT i B.TXT !!!"
PRINT "Lubaya knopka - obratno v menu..."
WHILE INKEY$ = "": WEND
   CASE 1
OPEN "a.txt" FOR INPUT AS #1
OPEN "b.txt" FOR INPUT AS #2
OPEN "c.txt" FOR OUTPUT AS #3
  CLS
  INPUT #1, p$
  INPUT #2, n%
  REDIM slv$(n%)
  FOR i% = 1 TO n%
     INPUT #2, slv$(i%)
     INPUT #2, zam$(i%)
  NEXT
  o$ = p$
  FOR i% = 1 TO n%
    k% = 1
    DO: k% = INSTR(k%, p$, slv$(i%))
      IF k% = 0 THEN
         EXIT DO
      ELSE
         Lch$ = LEFT$(p$, k% - 1)
         Rch$ = RIGHT$(p$, LEN(p$) - (k% - 1) - LEN(slv$(i%)))
         p$ = Lch$ + zam$(i%) + Rch$
      END IF
      k% = k% + 1
    LOOP UNTIL k% = 0
  NEXT
PRINT "Ishodnoe predlojenye:"; CHR$(13); "  "; o$
PRINT "Shifrovannoe predlojenye:"; CHR$(13); "  "; p$
PRINT #3, p$
CLOSE
PRINT : PRINT "Sohraneno v C.TXT !!!"
PRINT "Lubaya knopka - obratno v menu..."
WHILE INKEY$ = "": WEND
   CASE 2
OPEN "c.txt" FOR INPUT AS #1
OPEN "b.txt" FOR INPUT AS #2
  INPUT #1, p$
  INPUT #2, n%
  REDIM slv$(n%)
  FOR i% = 1 TO n%
     INPUT #2, slv$(i%), zam$(i%)
  NEXT
  FOR i% = 1 TO n%
    k% = 1
    DO: k% = INSTR(k%, p$, zam$(i%))
      IF k% = 0 THEN
         EXIT DO
      ELSE
         Lch$ = LEFT$(p$, k% - 1)
         Rch$ = RIGHT$(p$, LEN(p$) - (k% - 1) - LEN(zam$(i%)))
         p$ = Lch$ + slv$(i%) + Rch$
      END IF
      k% = k% + 1
    LOOP UNTIL k% = 0
  NEXT
CLOSE
PRINT : PRINT "Rasshifrovka:"; CHR$(13); "  "; p$; CHR$(13)
PRINT "Lubaya knopka - obratno v menu..."
WHILE INKEY$ = "": WEND
   CASE ELSE: COLOR 7, 0: CLOSE : END
END SELECT
LOOP
Вложения
Тип файла: zip SHIFR.zip (1.4 Кб, 11 просмотров)
1
0 / 0 / 0
Регистрация: 14.02.2013
Сообщений: 3
15.02.2013, 23:18  [ТС] 3
Премного Вам благодарен.

Добавлено через 9 часов 0 минут
Позвольте уточнить небольшой нюанс.Программа прекращает кодирование сталкиваясь в тексте с запятой,кодируется и сохраняется текст только до запятой.Внести запятую в а.тхт через программу не получается,запрашивается новый ввод.
Почему так происходит?
0
4961 / 1633 / 409
Регистрация: 25.04.2010
Сообщений: 4,497
Записей в блоге: 1
16.02.2013, 06:58 4
Поправил.
QBasic/QuickBASIC
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
DO
CLS
 LOCATE 5
 PRINT "Deistvie:"
 
 DO: Kb$ = INKEY$
 IF Kb$ = CHR$(0) + "H" AND Vib > 0 THEN Vib = Vib - 1
 IF Kb$ = CHR$(0) + "P" AND Vib < 3 THEN Vib = Vib + 1
   IF Vib = 0 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 7, 5: PRINT "- Vvesti dannye v faily A.TXT i B.TXT"
   IF Vib = 1 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 8, 5: PRINT "- Vipolnit shifrovku v C.TXT"
   IF Vib = 2 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 9, 5: PRINT "- Vipolnit deshifrovku faila C.TXT"
   IF Vib = 3 THEN COLOR 15, 1 ELSE COLOR 7, 0
   LOCATE 10, 5: PRINT "- Vihod"
 LOOP UNTIL Kb$ = CHR$(13)
 
SELECT CASE Vib
   CASE 0
OPEN "a.txt" FOR OUTPUT AS #1
OPEN "b.txt" FOR OUTPUT AS #2
 CLS
 LINE INPUT "Vvedi predlojenye: ", p$
 PRINT #1, p$
 INPUT "Vvedi kolichestvo slov \ zamen: ", n%
 PRINT #2, n%
 FOR i% = 1 TO n%
    PRINT "  Vvedi slovo N" + CHR$(248); i%;
    INPUT ": ", sl$
    INPUT "  Vvedi zamenu: ", zm$
    PRINT #2, sl$
    PRINT #2, zm$
 NEXT
CLOSE
PRINT : PRINT "Sohraneno v A.TXT i B.TXT !!!"
PRINT "Lubaya knopka - obratno v menu..."
WHILE INKEY$ = "": WEND
   CASE 1
OPEN "a.txt" FOR INPUT AS #1
OPEN "b.txt" FOR INPUT AS #2
OPEN "c.txt" FOR OUTPUT AS #3
  CLS
  LINE INPUT #1, p$
  INPUT #2, n%
  REDIM slv$(n%)
  FOR i% = 1 TO n%
     INPUT #2, slv$(i%)
     INPUT #2, zam$(i%)
  NEXT
  o$ = p$
  FOR i% = 1 TO n%
    k% = 1
    DO: k% = INSTR(k%, p$, slv$(i%))
      IF k% = 0 THEN
         EXIT DO
      ELSE
         Lch$ = LEFT$(p$, k% - 1)
         Rch$ = RIGHT$(p$, LEN(p$) - (k% - 1) - LEN(slv$(i%)))
         p$ = Lch$ + zam$(i%) + Rch$
      END IF
      k% = k% + 1
    LOOP
  NEXT
PRINT "Ishodnoe predlojenye:"; CHR$(13); "  "; o$
PRINT "Shifrovannoe predlojenye:"; CHR$(13); "  "; p$
PRINT #3, p$
CLOSE
PRINT : PRINT "Sohraneno v C.TXT !!!"
PRINT "Lubaya knopka - obratno v menu..."
WHILE INKEY$ = "": WEND
   CASE 2
OPEN "c.txt" FOR INPUT AS #1
OPEN "b.txt" FOR INPUT AS #2
  LINE INPUT #1, p$
  INPUT #2, n%
  REDIM slv$(n%)
  FOR i% = 1 TO n%
     INPUT #2, slv$(i%), zam$(i%)
  NEXT
  FOR i% = 1 TO n%
    k% = 1
    DO: k% = INSTR(k%, p$, zam$(i%))
      IF k% = 0 THEN
         EXIT DO
      ELSE
         Lch$ = LEFT$(p$, k% - 1)
         Rch$ = RIGHT$(p$, LEN(p$) - (k% - 1) - LEN(zam$(i%)))
         p$ = Lch$ + slv$(i%) + Rch$
      END IF
      k% = k% + 1
    LOOP
  NEXT
CLOSE
PRINT : PRINT "Rasshifrovka:"; CHR$(13); "  "; p$; CHR$(13)
PRINT "Lubaya knopka - obratno v menu..."
WHILE INKEY$ = "": WEND
   CASE ELSE: COLOR 7, 0: CLOSE : END
END SELECT
LOOP
Почему так происходит?
Потому что есть просто INPUT и есть LINE INPUT, второй читает строку полностью.
INPUT видя запятую, думает что вводим 2 переменные, а ан самом деле одну, из-за этого и
просит повторить ввод заново, т.е. из-за несоответствия кол-ва переменных, введённым данным.
1
0 / 0 / 0
Регистрация: 14.02.2013
Сообщений: 3
16.02.2013, 10:59  [ТС] 5
Благодарю.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2013, 10:59
Помогаю со студенческими работами здесь

Шифрование текста методом замены
Добрых времени суток. Делаю шифрование текста который вводится в текст бокс. Если убрать цикл...

Данные строкового типа(программа для введения текста, его кодирования и вывода результата)
Последняя просьба! Придумать і сложить программу для введения текста, его кодирования и вывода...

Шифрование текста методом замены букв
1.разработать алгоритм и программу для зашифрованного текста.используя замену следующих символов:а...

Шифрование текста методом табличной замены
Способ шифрования текста состоит в табличной замене каждого символа другим символом. Выбрать ...

Шифрование текста методом замены букв
Помогите написать код: при нажатии на кнопку в окне memo должны меняться символы, например: из...

Шифрование текста методом замены букв
Ребята, помогите. Завтра сдавать отчет, а я похерил исходники. Осталась сама программа, а...


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

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

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