9 / 1 / 3
Регистрация: 15.06.2016
Сообщений: 224

Выражение должно быть доступным для изменения левосторонним значением

21.04.2018, 18:43. Показов 2653. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Записываю имена подкаталогов в динамическую память globalfolders (WCHAR *globalfolders = new WCHAR[1000])
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private: void getfolders(){
            // получает в массив SUKABLYAT указатели на имена папок в каталоге base/
            int fl = 0;
            WIN32_FIND_DATA FindFileData;
            WCHAR *ukaz = &globalfolders[0];
            HANDLE hf;
            hf = FindFirstFile(L"base/*", &FindFileData);
            if (hf != INVALID_HANDLE_VALUE)
            {
                do
                {
                    if (fl > 1) {
                        ukaz = FindFileData.cFileName;
                        ukaz++;
                    }
                    else fl++;
                } while (FindNextFile(hf, &FindFileData) != 0);
                FindClose(hf);
            }
        }
Теперь хочу делать примерно следующее.
ifstream f("base/"+*globalfolders+"/anyfile.txt");

Но как реализовать это без понятия.
вероятно нужно привести значение по адресу globalfolders[0]
Проблема именно в приведении *globalfolders из WCHAR.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2018, 18:43
Ответы с готовыми решениями:

Выражение должно быть допустимым для изменения левосторонним значением
Вот код: a ^ 2 = a*a; a ^ 4 = a^2 * a^2; a ^ 8 = a^4 * a^4; a ^ 16 = a^8 * a^8; Ошибки находятся тут: a ^ 4 и т.д. Не знаю что...

Выражение должно быть допустимым для изменения левосторонним значением
День добрый просветите пожалуйста что ему не нравится ? #include <iostream> #include <cstdlib> #include <ctime> using...

Выражение должно быть допустимым для изменения левосторонним значением
struct ITEM { struct { char N; char A; char S; } NAS; char vers; }; struct LIST {

23
9 / 1 / 3
Регистрация: 15.06.2016
Сообщений: 224
22.04.2018, 15:44  [ТС]
Студворк — интернет-сервис помощи студентам
в temp получить L"base/foldername/anyfile.txt");
где foldername полученная папка.

ofstream f(temp);
f << "Any text" << endl;

В самой задаче мне необходимо получить куда-то все папки из директории base/ , после чего найти в каждой папке файл anyfile.txt и сделать в каждой папке такого файла запись изи взять из него тект.

Добавлено через 3 минуты
запись "any text" это я хочу писать путь temp .
Тут скорее будет так:
wofstream f(temp);
f << temp << endl;

Добавлено через 44 секунды
Думаю сначала пути в файл записать, а потом последовательно из файла. Ну, а вообще, мне главное получить путь так, что бы по нему можно было открыть...
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
22.04.2018, 15:46
Лучший ответ Сообщение было отмечено Roulen как решение

Решение

C++
1
2
3
WCHAR temp[256] = L"base/";
wcscat(temp, globalfolders);
wcscat(temp, L"/anyfile.txt");
Roulen, тогда вам нужно в цикле это делать, а не вне цикла, как вы сделали.

C++
1
ukaz = FindFileData.cFileName;
Тут вы зачем то копируете указатель, а нужно скопировать значение. Для юникода wcscpy() для копирования строк.

C++
1
ukaz++;
И зачем то этот указатель увеличиваете, хотя он всегда должен указывать на вашу временную строку (&globalfolders[0]).
1
9 / 1 / 3
Регистрация: 15.06.2016
Сообщений: 224
22.04.2018, 15:57  [ТС]
Немного переделал все, много глупого сотворил, пока уставший делал.
решил что куда проще будет во всем этом цикле получать файл и одной из других функций проверять файл на нужные мне данные, в месте где сейчас идет запись. Огромное спасибо что помогли с кодировками и склейкой строки, я первый раз работал с другими кодировками...
Хорошего вам дня, и, еще раз, - большое спасибо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private: void getfolders(){
            // получает в массив globalfolders указатели на имена папок в каталоге base/
            int fl = 0;
            WIN32_FIND_DATA FindFileData;
            HANDLE hf;
            hf = FindFirstFile(L"base/*", &FindFileData);
            if (hf != INVALID_HANDLE_VALUE)
            {
                WCHAR temp[256];
                do
                {
                    if (fl > 1) {
                        wcscat(temp, L"base/");
                        wcscat(temp, FindFileData.cFileName);
                        wcscat(temp, L"/anyfile.txt");
                        ofstream f(temp);
                        f << "HELLO" << endl;
                        f.close();
                    }
                    else fl++;
                } while (FindNextFile(hf, &FindFileData) != 0);
                FindClose(hf);
            }
        }
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
22.04.2018, 16:01
Лучший ответ Сообщение было отмечено Roulen как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <Windows.h>
 
using namespace std;
 
int main()
{
    WCHAR temp[256];
    WIN32_FIND_DATA FindFileData;
    HANDLE hf;
    hf = FindFirstFile(L"C:/*", &FindFileData);
    if (hf != INVALID_HANDLE_VALUE)
    {
        do
        {
            wcscpy(temp, L"base/");
            wcscat(temp, FindFileData.cFileName);
            wcscat(temp, L"/anyfile.txt");
            wcout << temp << endl;
        } while (FindNextFile(hf, &FindFileData) != 0);
        FindClose(hf);
    }
 
    system("pause");
    return 0;
}
Добавлено через 3 минуты
Roulen, temp обнуляйте, а то переполнение будет. Или wcscpy используйте.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2018, 16:01
Помогаю со студенческими работами здесь

Выражение должно быть допустимым для изменения левосторонним значением
Выдает ошибку на P = s; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; using namespace std; void main() { ...

Выражение должно быть допустимым для изменения левосторонним значением
Здравствуйте! Подскажите, пожалуйста, в чем заключается ошибка и как ее исправить &quot;Выражение должно быть допустимым для изменения...

Выражение должно быть допустимым для изменения левосторонним значением
Получаю ошибку в переменной х в if (0 &lt; x &amp;&amp; x &lt; 100) { if ( x == 1 || x == 21 || x == 31 || x = 41 || x == 51 || x == 61 || x == 71...

Выражение должно быть допустимым для изменения левосторонним значением
Писал программу для вывода массива в виде спирали, но при обработке условий движения спирали выдало ошибку на переменной x1 ( Выражение...

Выражение должно быть допустимым для изменения левосторонним значением
Есть структура: struct Airport_Pass { int Distance; char Departur; char Destination; }; Чтобы инициализировать её в начале...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

Новые блоги и статьи
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru