Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Елочка
2 / 2 / 0
Регистрация: 26.03.2011
Сообщений: 112
#1

Определить в каком из rtf-файлов есть определенное слово "привет"?

19.08.2011, 16:49. Просмотров 805. Ответов 1
Метки нет (Все метки)

даны файлы с расширением .rtf
Как можно определить в каком из этих файлов есть определенное слово "привет".

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2011, 16:49
Ответы с готовыми решениями:

Необработанное исключение в "0x77913ab3" в "x": 0xC0000005: Нарушение прав доступа при чтении "0xdddddddd"
вот код, нужно найти 3 минимальных положительных числа в массиве. При размере...

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

Расшифровать слово закодированное в "Белом звуке"
Добрый день форум! В универе дали песенку,так называемую "Белый звук",в...

"Copy", "Paste", "Delete" в контекстном меню
Доброго времени суток. Есть контекстное меню с кнопками "Создать файл/папку",...

Есть ли в C++ функция типа "ничего не делать n времени"?
А то такой код: // цикличное повторение блока { ttime++; ...

1
xAtom
917 / 742 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
19.08.2011, 20:59 #2
Лучший ответ Сообщение было отмечено Елочка как решение

Решение

Елочка, вот накидал по-быстрому так как кириллические(русские) символы в файле .RTF храняться в шестнадцатеричном формате, для поиска латина трудностей нет таких.
C++
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define  isRus(a) ((a >= 'а' && a <= 'я' || a >= 'А' && a <= 'Я'))
 
// функция проверки окончания кир-слова
int  isTest(const char* str);
 
// функция для поиска кириллического слова в файле-RTF, возвращает результат слово найдено = 1, 0 - нет
int  isFileWordRus(const char* filename, const char* _word);
 
 
int  main(void) {
 
       if(isFileWordRus("D:\\test.rtf", "привет"))
             puts("YES...");
       else
             puts("NO !!!");
 
 
        getchar();
      return 0;
}
 
 
int  isTest(const char* str) {
    for(; *str != '\\' && *str; *str++);
    if(*str) {
        if( *(char*) ((str) + 1) != '\'')
        return 1;
    } 
     return 0;
}
 
 
 
int  isFileWordRus(const char* filename, const char* _word) {
 
    long          len, res;
    char*         buf, *ptr, ch;
    char          str[128], fs[3];
    const char*   iter;
    FILE* fp;
    
    if(!(fp = fopen(filename, "r")))
         return 0;
 
    fseek(fp, 0L, SEEK_END);
    len = ftell(fp);
    fseek(fp, 0L, SEEK_SET);
 
    buf = new char[len + 1];
    if(buf == NULL) {
                    fclose(fp);
       return 0;
    } 
    fread((void*)buf, (size_t)len, 1u, fp);
    fclose(fp);
    buf[len] = '\0';
 
    iter = buf;
    ptr  = str;
    res  = 0L;
 
    while( *iter ) {  // процесс парсирования и преобразования
                 if( *iter == '\\' ) {
                        if( *(char*) ((iter) + 1) == '\'') {
                                iter += 2;
                                if(strlen(iter) > 2u) {
                                       memset(fs, '\0', sizeof(fs));
                                       strncpy(fs, iter, 2u);
                                       ch    = (char) strtol(fs, NULL, 16);
 
                                       if(isRus(ch)) {
                                               *ptr   = ch;
                                               ++ptr;
                                        }
                                        iter += 2;
                                        if(! isRus( *iter ) && *iter != '\\' || isTest(iter)) {
                                                  *ptr = '\0';
                                                  if(! strcmp(str, _word)) {
                                                           res = 1L;
                                                           break;
                                                  }
                                                  str[0] = '\0';
                                                   ptr    = str;
                                         } else
                                                continue;
                                 }
                             }
                        }
 
                      *iter++;
             }
 
       delete[] buf;
       buf = NULL;
       return res;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2011, 20:59

Курсовая по теме "Структура файлов *.bmp"
Нужна помощь в написании курсовой. Не совсем понимаю что нужно написать по этой...

Вызов окна "Свойства файлов" напрямую
Нет ли способа вызова окна &quot;Свойства&quot; напрямую, а не через контекстное меню...

Что есть "С++" в Visual Studio?
Здравствуйте! Сама форум посещаю уже давно (но не регистрировалась до данного...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru