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

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

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

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

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

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


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

Если из файла надо вытащить отдельно цифры и отдельно текст - как? - 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++
Тоесть считывать строку по одному символу и его сохранить в массив.

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

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

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

Считываем текст из файла - C++
Ребят, вот такой вопрос Есть файл in.txt, надо считать из него текст и отредактировать Всё хорошо работает, но считывает только 1...

Считать текст из файла - C++
Как можно считать текст из файла?? ifstream fin(&quot;test.txt&quot;, ios::in|ios::nocreate ); if (!fin) {cout&lt;&lt;&quot;ERROR! &quot;&lt;&lt;endl; return 1;} ...

не считывает текст из файла - C++
Добрый вечер всем. вот собсна код, который не хочет работать из файла. #include &quot;iostream&quot; #include &quot;time.h&quot; #include &quot;conio.h&quot; ...

Текст и числа из файла c++ - C++
Нужно сделать таблицу в которой будут отображаться первые 2 столбца футбольные команды и вторые 2 столбца результат игры и определить...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
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;
}
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.07.2010, 10:07  [ТС]     Вытащить текст из файла #3
программа не реагирует если вставить чтото другое не <body> а например <div>
и символы вконце не дочитывает и видимо режет строку
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
25.07.2010, 10:10     Вытащить текст из файла #4
Выкладывайте файлы на которых программа обломалась.

Цитата Сообщение от Egeni Посмотреть сообщение
если вставить чтото другое не <body> а например <div>
Программа не рассчитана на <div>.
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
31.07.2010, 00:18  [ТС]     Вытащить текст из файла #5
я заменил <body> на <div> и не прокатило
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;
}
Yandex
Объявления
01.08.2010, 14:58     Вытащить текст из файла
Ответ Создать тему
Опции темы

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