Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
#1

Вытащить текст из файла - C++

25.07.2010, 02:29. Просмотров 1213. Ответов 5
Метки нет (Все метки)

как в массив закинуть содержимое body?
я делаю без регулярных выражений, у меня получается вытянуть body, только если body открывается и закрывается в одной строке
до этого читал посимвольно и тот вариант пропускал не то что нужно


у меня вопрос: как читая построчно файл, удалить в нем не целую строку, а оставить часть
файл состоит из нескольких строк
<HTML><HEAD>
<title>Название</title></HEAD>
<body>многострочный текст
Текст текст текст
3 текст</body>
</HTML>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2010, 02:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вытащить текст из файла (C++):

Если из файла надо вытащить отдельно цифры и отдельно текст - как? - C++
Допустим дан файл: blablabla 1 2 5 4 1 2 lol 12 2 text 12 4 5

Вытащить текст между тегов html - C++
Здравствуйте, форумчане! Нужно вытащить текст между тегами. Из этого: &lt;html&gt; &lt;tag1&gt;Текст 1&lt;/tag1&gt; &lt;html&gt; Должно получиться:...

Вытащить нужные данные из файла - C++
Здравствуйте. Такая ситуация: Нужно 'выцыпить ' нужные данные из файла. Например: Текст файла: 34?Вася 56?Петя 78?Коля ...

Как вытащить информацию с файла в массив - C++
Тоесть считывать строку по одному символу и его сохранить в массив.

Как правильно считать текст из файла? Весь текст, со всеми знаками, пробелами - C++
подскажите, чет затупил как правильно считать текст из файла(весь текст со всеми знаками пробелами и т.д.), чтобы поработать с этим текстом...

Вытащить функцию распаковки файла из исходников UPX - C++
мне в проге на делфи нужно реализовать распаковку файла запакованного upx. тоскать с прогой upx.exe считаю плохой идеей. скачал исходник...

5
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
25.07.2010, 03:54 #2
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main()
{
    FILE* fp;
    char *str, *ptr, c;
    int size, bodysize, first, last, i=0;
    
    fp=fopen("input.html", "r");
    
    if (fp==NULL)
    {
        printf ("Couldn't open file\n");
        return 0;
    }
    
    fseek(fp, 0, SEEK_END);
    size=ftell(fp);
    
    if (size==0)
    {
        printf ("File is empty\n");
        fclose(fp);
        return 0;
    }
    
    str=(char*)malloc((size+1)*sizeof(char));
    if (str==NULL)
    {
        printf ("Malloc error\n");
        fclose(fp);
        return 0;
    }
    
    fseek(fp, 0, SEEK_SET);
    fread(str, 1, size, fp);
    
    while (str[i])
    {
        str[i]=tolower(str[i]);
        i++;
    }
 
    ptr=strstr(str,"<body>");
    if (ptr==0)
    {
        printf("body tag not found\n");
        fclose(fp);
        return 0;
    }
    first=ptr-str;
    
    ptr=strstr(str,"</body>");
    if (last==0)
    {
        printf("body tag not closed\n");
        fclose(fp);
        return 0;
    }
    last=ptr-str;
    
    free(str);
    
    if (last-first<0)
    {
        printf("wtf?\n");
        fclose(fp);
        return 0;
    }
    
    first+=6;
    last--;
    
    if (first-1==last)
    {
        printf("body tag is empty\n");
        fclose(fp);
        return 0;
    }
    
    bodysize=last-first+1;
    str=(char*)malloc((bodysize+1)*sizeof(char));
    
    fseek(fp, first, SEEK_SET);
    fread(str, 1, bodysize, fp);
    
    puts(str);
    
    fclose(fp);
    free(str);
    
    return 0;
}
1
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.07.2010, 10:07  [ТС] #3
программа не реагирует если вставить чтото другое не <body> а например <div>
и символы вконце не дочитывает и видимо режет строку
0
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
25.07.2010, 10:10 #4
Выкладывайте файлы на которых программа обломалась.

Цитата Сообщение от Egeni Посмотреть сообщение
если вставить чтото другое не <body> а например <div>
Программа не рассчитана на <div>.
0
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
31.07.2010, 00:18  [ТС] #5
я заменил <body> на <div> и не прокатило
0
rrrFer
Заблокирован
01.08.2010, 14:58 #6
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
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include <fstream>
using std::ifstream;
 
int main () {
    char    bStr[] = "<H1>",
            eStr[] = "</H1>",
            ifName[] = "in.txt";
    ifstream ifst;
    int i;
 
    ifst.open(ifName);
    if(!ifst)
        exit(-1);
 
    for(;!ifst.eof();){
        for(i=0;!ifst.eof()&&ifst.get()==bStr[i];i++);
        ifst.unget();
        if(!bStr[i]){
            for(;;){
                for(i=0;!ifst.eof()&&ifst.get()==eStr[i];i++);
                if(!eStr[i])
                    break;
                for(;i>=0;i--)
                    ifst.unget();
                cout<<(char)ifst.get();
            }
            cout<<endl<<"--------------------------------"<<endl;
        }
        else
            ifst.get();
    }
    cin.get();
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2010, 14:58
Привет! Вот еще темы с ответами:

Вытащить имя файла и расширение используя regex - C++
В общем стоит задача проверить относительную часть ссылки на валидность и при этом вытащить нужные части из нее, такие как, уровни...

Написать программу, которая считывает текст из файла и выводит на экран количество гласных букв в строке текст - C++
Написать программу, которая считывает текст из файла и выводит на экран количество гласных букв в строке текста

Текст из файла - C++
Привет всем !! Кто нибудь может помочь написать прогу которая считывает текст из файла и выводит на экран только строки, содержащие...

Английский текст из файла - C++
Здравствуйте! Не могли бы вы помочь с задачей? Вот условие - Написать программу, которая считывает английский текст из файла и выводит на...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
01.08.2010, 14:58
Ответ Создать тему
Опции темы

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