Чтение текстового файла и извлечение слов из файла и помещение их в массив из const char*
. Однако мое требование заключается в преобразовании этих const char*
переменных в различные типы данных, как DWORD,LPBYTE, WORD,ULONG
и т.д.Преобразование типа данных C++
В настоящее время моей реализации для преобразования выглядит следующим образом:
DWORD GetDword(const char* msg)
{
if (int strcmp(msg, "MyRequiredData") > 0)
{
return MyRequiredData ;
}
}
Предположим «MSG» является одной из строк данных массива , Чтобы я получил необходимые данные в типе DWORD
в обратном порядке с помощью этого метода. И та же реализация для других типов тоже.
Здесь меня беспокоят почти данные жесткого кодирования. Есть ли лучший способ сделать это? Могу ли я преобразовать свои строки в типы данных, которые я хочу?
Я не совсем уверен, что именно вы пытаетесь достичь (ваш пример псевдокода немного обогащен «псевдо» и немного отсутствует в «примере». Но похоже, что вы хотите реализовать парсер, есть различные способы сделать это. Традиционный [Bison] (https://www.gnu.org/software/bison/), современный и более мощный [Boost.Spirit] (http: //www.boost .org/doc/libs/release/libs/spirit/doc/html/index.html). Ни одно из «быстрых» решений, поскольку они требуют привыкания к технологии и, вероятно, также потребуют полной перезаписи того, что вы – DevSolar
Спасибо за ответ @DevSolar. То, чего вы пытаетесь достичь, это, как вы сказали, разбор. В настоящее время мы изучаем различные способы, включая Boost.Spirit и Lexical_cast. Просто пытаюсь понять, есть ли менее сложные способы реализации синтаксического анализа – Rajagopal