Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
FreakyLikeMe
1

Многоязычный словарь-переводчик

21.05.2014, 22:41. Показов 429. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане. Получил вот такое задание: текстовый файл-словарь содержит 3 колонки слов(выражений), разделенных знаком «=». Необходимо для любого, заданного пользователем, слова(выражения) из заданной колонки выводить «перевод» из остальных колонок этой строки. Задачу попытался решить и получился следующий код. Дело в том, что программа отлично работает для различных слов(кириллицы и латиницы) и цифр, например, если в исходном файле содержится 0001=philips=телефон и ввести ключевое слово "телефон", то программа выводит "0001=philips". Но если в исходном файле будет, например, аа=бб=аа, то ясно, что он выведет "бб=аа". Но из условия нужно, чтобы программа для любого, заданного пользователем, слова из заданной колонки выводила перевод, т.е мы может имели ввиду вторую "аа", а не первую.
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
program perevodchik
 
uses crt;
 
var
  key, key2, s, tmp: string;
  f, f2: Text;
  l:     integer;
 
  procedure first(var s: string);           {Приведение к нижнему регистру}
  var
    i: byte;
  begin
    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] := 'ё';
  end;
 
  procedure second(var s: string);       {Конвентирование из ANSI в ASCII}
  var
    i: integer;
  begin
    for i := 1 to length(s) do
      if Ord(s[i]) in [192..239] then
        s[i] := chr(Ord(s[i]) - 64)
      else if Ord(s[i]) in [240..255] then
        s[i] := chr(Ord(s[i]) - 16)
      else if Ord(s[i]) = 168 then
        s[i] := chr(Ord(240))
      else if Ord(s[i]) = 184 then
        s[i] := chr(Ord(241));
  end;
 
begin
  writeln('Добрый день. Введите, пожалуйста, ключевое слово');
  Read(key);
  First(key);
  key2 := '=' + key + '=';
  Assign(f, 'E://file.txt');
  reset(f);
  while not EOF(f) do
  begin
    readln(f, s);
    second(s);
    tmp := s + '=';
    First(tmp);
    tmp := '=' + tmp;
    l   := pos(key2, tmp);
    if l = 1 then
    begin
      Delete(s, 1, length(key) + 1);
      writeln(s);
    end;
    if (l <> 0) and (l <> 1) then
    begin
      Delete(s, l, length(key) + 1);
      if s[length(s)] = '=' then
        Delete(s, length(s), 1);
      writeln(s);
    end;
  end;
  readkey;
end.
Добавлено через 9 часов 46 минут
Может быть можно сделать так, чтобы программа проверяла дальше в данной строке "слово-ключ" и при его нахождении выводила что-то типа " 'Введенное слово-ключ встречается два раза' ,вся строка полностью). Но пока не получается реализовать.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2014, 22:41
Ответы с готовыми решениями:

Переводчик, словарь
Нужно сделать переводчик с одного языка на другой и наоборот. На форме 2 radioButton (выбор...

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

Курсовая - переводчик (словарь) на С++
Доброго времени суток! Меня зовут Алексей, я студент 2го курса колледжа по специальности...

Словарь переводчик (dictionary)
Нужно сделать переводчик с одного языка на другой и наоборот(через Dictionary). В моем коде если...

0
21.05.2014, 22:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2014, 22:41
Помогаю со студенческими работами здесь

Словарь-переводчик. Использование TrayIcon
Не могу запустить программу. Компилятор упирается в строку frmMain.TrayIcon1.Active := false; с...

Написать программу словарь-переводчик
Помогите пожалуйста, всё уже облазил. Мне нужно создать программу типа словарь, если вводишь...

Словарь-Переводчик. вывод в textBox
Вроде всё компилируется нормально, но выводить не хочет, помогите разобраться в чём ошибка, заранее...

Словарь-переводчик. вывод в textBox
Вроде всё компилируется нормально, но выводить не хочет, помогите разобраться в чём ошибка, заранее...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru