Я хотел бы использовать TStringList для анализа выходных данных из «ipconfig / all».
Если я использую AddStrings, вся возвращаемая строка заканчивается в первом элементе. Я пытался использовать LoadFromStream, но компилятор дает мне
нет соответствующей функции-члена для вызова LoadFromStream
а также
функция-кандидат недопустима: нет известного преобразования из ‘String’ (он же ‘System :: UnicodeString’) в ‘System :: Classes :: TStream *’ для первого аргумента
Любые идеи о том, как я могу получить строку в потоке, или другой способ получить возвращаемую строку в моем TStringList?
TStringList *IPConfig = new TStringList;
IPConfig->AddStrings(ExecuteExternalFile("ipconfig", "/all", false)); //everything returned ends up in one element defeating the purpose of using a TStringList
IPConfig->LoadFromStream(ExecuteExternalFile("ipconfig", "/all", false)); //won't compile
Спасибо, что отвез меня обратно в Delimiter
имущество. Я вернулся к нему и обнаружил, что в нем есть ошибка, которая требует от вас установить StrictDelimiter
в противном случае это всегда будет разделять ваш текст через пробел. Теперь все отлично работает. Спасибо!
IPConfig->StrictDelimiter = true;
IPConfig->Delimiter = '\n';
IPConfig->DelimitedText = ExecuteExternalFile("ipconfig", "/all", false);
Вы можете использовать TStringStream
с LoadFromStream()
:
TStringList *IPConfig = new TStringList;
TStringStream *Strm = new TStringStream(ExecuteExternalFile("ipconfig", "/all", false));
IPConfig->LoadFromStream(Strm);
delete Strm;
...
delete IPConfig;