Поиск имени поля в текстовом файле и возврат всех последующих строк в консоль - C ++

0

Я пытаюсь создать функцию, которая сканирует текстовый файл для определенного имени поля и возвращает все последующие строки текста на консоль.

Текстовый файл выглядит так:

----8896484051606557286
Content-Type: text/html;
Content-Transfer-Encoding: 7Bit

<html>
<body bgcolor="#ffffff">
<div style="border-color: #00FFFF; border-right-width: 0px; border-bottom-   width: 0px; margin-bottom: 0px;" align="center">
<table style="border: 1px; border-style: solid; border-color:#000000;"  cellpadding="5" cellspacing="0" bgcolor="#CCFFAA">
<tr>
<td style="border: 0px; border-bottom: 1px; border-style: solid; border-color:#000000;">
<center>

----8896484051606557286--

Я хочу найти имя поля "Content-Type: text/html или Content-Type: text/plain" и вернуть текст, следующий за пограничным маркером (---- 8896484051606557286--).

Вот что я до сих пор придумал:

int main(int argc, char *argv[])
{
    string path = "C:/TEST/";
    string common = "SPAM";

    for (int count = 1; count <= 100; ++count) {
        //Convert count to an string.
        stringstream ss;
        ss << count;
        string numstring = ss.str();
        string filename = path + common + numstring + ".txt.";

        ifstream infile(filename.c_str());
        string line;
        string CT1 = "Content-Type: text/html";
        string CT2 = "Content-Type: text/plain";

        while (!infile.eof()) {
            getline(infile, line);
            int index = fileStr.find("Content-Type:", 0)

            if (index >= 0) {
                index += 13;
            } //(just add the size of Content - Type:)
            int endIndex = fileString.find(";", index)
                           string contentType = fileString.subString(index, endIndex index);
            if (contentType.compare("text/html") == 0) {
                // then parse as text / html //
            } else if (contentType.compare("text/plain") == 0) {
                 //parse as the text/html'
            }
        }
    }
}

Как исправить мой код для поиска Content-Type (текст/html или text/plain) и вернуть все последующие строки между маркерами границы?

  • 1
    спасибо за то, что поделились вашей попыткой написания кода, но с чем конкретно вам нужна помощь - здесь нет актуального вопроса
  • 0
    И твой вопрос? - Я предполагаю, что вы не спрашиваете «Может ли кто-нибудь написать код в //, а затем проанализировать как text / html», поскольку это не «служба записи кода», а сайт с вопросами и ответами.
Показать ещё 1 комментарий
Теги:
string

1 ответ

1
#include <string>
#include <iostream>
// ...
std::string keyword;
std::string word;

getline(file, keyword);
do
{
    std::cin >> word;
}
while (keyword.find(word) == std::string::npos);
  • 0
    Я не хочу использовать cin, поскольку мне нужно сканировать каталог с более чем 70 000 файлов. Мне нужна функция, чтобы прочитать каждый файл в каталоге найти либо «Content-Type: text / html» или «Content-Type: text / plain» и вернуть весь текст между маркером границы и игнорировать весь другой текст в файле. В конечном итоге программа будет разбивать все строковые данные между граничными маркерами и сохранять их в векторе / массиве, готовом к соединению с базой данных SQlite. Я просто борюсь с первым препятствием. Спасибо
  • 0
    @TheBlueNile find . -type f -exec yourapp '{}' \;
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню