Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 Считать из файла строки в вектор  [new]
Александр Божко
Member

Откуда:
Сообщений: 32
Казалось бы не сложный вопрос, но мозги уже сломал. Сохраняю вектор юникодовых строк в файл таким образом.

void SaveVec()
{
    fstream file;
    basic_string<TCHAR> awsReturn = L"\r";
    TCHAR pszTemp[MAX_PATH];

    vector <basic_string<TCHAR>> awsList = { _T("xxx&#9398;&#9399;&#9400;&#9401;&#9402;&#9403;&#9404;&#9405;&#9406;&#9432;&#9407;&#9408;&#9409;&#9410;&#9411;&#9412;&#9413;&#9414;&#9415;&#9416;&#9417;&#9418;&#9419;&#9420;&#9421;&#9422;&#9423;"), _T("Merhaba d&#252;nya!"), _T("&#12371;&#12435;&#12395;&#12385;&#12399;&#19990;&#30028;&#65281;") };
    file.open(_T("C:\\Users\\info\\AppData\\Roaming\\ArcticLine\\Folder Marker\\Menu\\test2.ini"), ios::out);

    if (file.is_open()) {
        for (UINT i = 0; i < awsList.size(); i++) {
            
            file.write((char*)awsList[i].c_str(), awsList[i].length() * sizeof(wchar_t));
            // Добавляем перевод строки
            file.write((char*)awsReturn.c_str(), awsReturn.length() * sizeof(wchar_t));

        }
        file.close();
    }
}



А как сделать обратную операцию? Т. е. считать из файла строки в вектор.
17 сен 19, 01:29    [21972073]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко,
Почему не использовать std::string?
17 сен 19, 07:23    [21972091]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
Cerebrum
Member

Откуда: Омикрон Персей 8
Сообщений: 7894
Александр Божко
А как сделать обратную операцию? Т. е. считать из файла строки в вектор.

http://www.cplusplus.com/reference/string/string/getline/
17 сен 19, 07:59    [21972105]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
а wstring не для таких случаев?
17 сен 19, 08:08    [21972108]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
полудух,
Если у него китайский там.
17 сен 19, 08:22    [21972116]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
а string обычный двух-байтовый UTF автоматом обработает и даже char* не помешает?
17 сен 19, 11:21    [21972296]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
полудух,
Мне вопрос?
Если выкинуть весь код выше и написать новый на srd::string то ничего не помешает.
Но автор уже ушел переписывать.
IMHO
17 сен 19, 12:02    [21972372]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
mayton
Member

Откуда: loopback
Сообщений: 42915
Кодировки и сериализация. Блин вечная непотопляемая тема.
17 сен 19, 12:16    [21972394]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
mayton,
Мне интересно, зачем ему в ini файле вот такое Ⓑ?
17 сен 19, 12:46    [21972440]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
Александр Божко
Member

Откуда:
Сообщений: 32
PetroNotC Sharp,

Да чего вы наезжаете? Я вообще делфист (выражаясь вашим синтаксисом - говнокодер-формошлёп). Мне просто чужую dll надо подправить. Для меня то, что она вообще собираться начала, уже подвиг.
17 сен 19, 12:46    [21972441]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко,
Совсем не наезжал. Я тоже дельфист))
17 сен 19, 12:48    [21972445]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко
просто чужую dll надо подправить
рассказывай подробнее и тебе лучше будут помогать.
17 сен 19, 12:49    [21972447]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко,
21972440
17 сен 19, 12:50    [21972451]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
Александр Божко
Member

Откуда:
Сообщений: 32
PetroNotC Sharp
mayton,
Мне интересно, зачем ему в ini файле вот такое Ⓑ?


Собственно, есть dll - расширение shell. В ini-шник там пишется список файлов.
Файлы, естественно могут содержать в названиях символы Unicode.
Чтобы никого не грузить подробностями работы dll, я просто вынес код сохранения данных в отдельную ф-цию.
Здесь я просто запихнул в вектор тестовые данные.
Вообще, ini-шник должен считываться в Delphi примерно таким кодом

var
 sl: TStrings;
begin
 sl:= TStringList.Create;
 try
   sl.DefaultEncoding:= TEncoding.Unicode;
   sl.LoadFromFile('...\test.ini');

 finally
   sl.Free;
 end;
end;


И считывается, и прекрасно работает.
Но вдруг возникла обратная задача - считать из ini-шника имена файлов в dll.
17 сен 19, 14:34    [21972580]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко
Файлы, естественно могут содержать в названиях символы Unicode.
можете дать пример символа из названия файла. Так как операционка тоже накладывает ограничения на такие хотелки.
17 сен 19, 14:38    [21972582]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко
И считывается, и прекрасно работает.
приаттачьте сюда кусок инишника
17 сен 19, 14:41    [21972588]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
Dima T
Member

Откуда:
Сообщений: 14093
Для работы с ini в юникоде есть специальные функции WritePrivateProfileStringW() и GetPrivateProfileStringW()
17 сен 19, 14:42    [21972589]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко,
Вся тема строится на спецсимволе в имене файла.
Поэтому лично мне трудно дальше двигаться).
Что за символ?
Удачи!
17 сен 19, 14:49    [21972596]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
Александр Божко
Member

Откуда:
Сообщений: 32
PetroNotC Sharp
Александр Божко,
Вся тема строится на спецсимволе в имене файла.
Поэтому лично мне трудно дальше двигаться).
Что за символ?
Удачи!


Такой вот ini может быть

К сообщению приложен файл (Main.ini - 1Kb) cкачать
17 сен 19, 15:31    [21972630]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко
PetroNotC Sharp
Александр Божко,
Вся тема строится на спецсимволе в имене файла.
Поэтому лично мне трудно дальше двигаться).
Что за символ?
Удачи!


Такой вот ini может быть

Приложенный файл (Main.ini - 1Kb)
Мама родная!!!
17 сен 19, 15:51    [21972652]     Ответить | Цитировать Сообщить модератору
 Re: Считать из файла строки в вектор  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2475
Александр Божко,
Запиши в двоичный файл и в дельфи прочитай.
Удачи!
ЗЫ
Имя файла пример то дай, скрином или чем.... с этими символами
17 сен 19, 15:56    [21972655]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить