Получение значения внутри файла и помещение значения в переменную с помощью CreateFile - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь создать код, который будет читать несколько URL-адресов и помещать каждое значение URL-адресов в переменные, используя Windows API ReadFile.

Например,

Переменные

string urlone;

string urltwo;

Внутриurl.txt

www.stackoverflow.com

www.reddit.com

Меня беспокоит то, что можно получить значения и поместить их в переменные, используя ReadFile или какие-либо функции Windows API?

из приведенного выше примера, что произойдет, если stackoverflow.com станет значением переменной urlone, то же самое со следующим URL-адресом, который reddit.com станет значением переменнойurltwo.

Я знаю, что использование fstream поможет мне решить эту проблему, но я просто хочу знать, есть ли другой способ, например, использование Windows API.

Примечание: я пыталсяиспользовать ReadFile, и он получает все URL и помещает значение в 1 переменную.

//reading url.txt
openFile = CreateFile(L"C:\\Documents and Settings\\Administrator\\My Documents\\url.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

//reading the content, on this code, all the URLs will be inside of strVal
rewriFile = ReadFile(openFile, strVal, fSize, &dwNoBytetoRead, NULL);
cout << "The URL is " << strVal << endl;

Любой совет?Заранее спасибо!

Ура!

1 Ответ

0 голосов
/ 15 ноября 2018

Да, вы можете решить это, используя ReadFile, если хотите. Используя ReadFile, простой подход может быть:

  1. прочитать весь файл, используя ReadFile в буфер (я предлагаю использовать std::string и resize)

  2. используйте все, что нужно для разбора строки, для синтаксического анализа, std::istringstream можно использовать

По совпадению, если std::istringstream достаточно хорош для анализа вашего формата (я уверен на 99%, что это так), то это может быть тот случай, когда потоковые классы std действительно светятся с тех пор, как вы могли бы использовать std::ifstream сделать оба!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...