Jochen Arndt
Ваш код должен фактически записывать (и добавлять) отдельные строки из массива в файл.
Но вы должны подумать о том, как читатель может различать строки. Это можно сделать, написав новую последовательность строк (стиль" \r\n "Windows или стиль" \n " Unix), создав обычный текстовый файл (который может быть закодирован в Юникоде) или добавив конечные нулевые байты:
// New line separated
file.Write((LPCTSTR)str, str.GetLength() * sizeof(TCHAR));
file.Write(_T("\r\n"), 2 * sizeof(TCHAR));
// With null byte
file.Write(str.GetString(), (str.GetLength() + 1) * sizeof(TCHAR));
Но самый простой метод - это использование сериализации, которая поддерживается
CStringArray
:
CFile file(_T("Test1.txt"), CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file, CArchive::store);
RegKeys.Serialize(ar);
Какой метод использовать, зависит от вас, но вы должны использовать соответствующий метод чтения.
Если вы не используете сериализацию, вы также должны переместить Открытие и закрытие файла из цикла:
CFile file;
if (file.Open(_T("Test1.txt"), CFile::modeWrite))
{
// Loop to write strings goes here
file.Close();
}