Проблема создания файла с использованием в переменной .txt в конце [РЕШЕНО]

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
UPDATE: Проблема в виртуальном баге переменных зенно, которые не отображают перенос строки.
Тут дело не в макросе, а в баге зенки, которая не отображает реальный перенос


Если бы бага не было, то бы был такой возврат:
Посмотреть вложение 91222
А возвращает так:
Посмотреть вложение 91223
Тут образец бага.
@ibred Подскажите, пожалуйста, это баг (визуальный баг - в котором не отображается перенос строки после .txt в переменной зенно) такой или как это обьяснить? Пример прикрепил.

1. Открываем проект (Тестировал только на 7.7.0 релиз)
2. Запускаем кубик - Установка пути
3. В переменную Path - вносятся данные из Установка пути
4. Копируем вручную сформированное значение из Path (в буфер обмена с помощью CTRL+C) и вручную вставляем его блокнот (CTRL+V).
5. В результате получаем такой результат с переносом строки:
Посмотреть вложение 91218
6. И в таком случае мы не можем адекватно создать блокнот, о котором идет речь выше в топике, так как имя в пути имеет перенос строки, хотя физически его нету.
Доброго времени. Подскажите, пожалуйста, как починить код? У меня в переменной находится конкретный путь с конкретным расширением, которое бот должен создать, либо через C#, либо через кубик создания файла:

Вот рабочий вариант, если путь создается конкретно в C# и прописывается только текстом
C#:
string Path = @"D:\02 Proxy.txt";
File.Create(Path);
А вот не рабочий вариант, который вызывает ошибку: Выполнение действия CSharp OwnCode. Путь содержит недопустимые знаки.

C#:
// project.Variables["Path"].Value = D:\02 Proxy.txt
string Path = project.Variables["Path"].Value;
File.Create(Path);
Понятное дело, что если самому прописать вручную в пути .txt, вместо того, что бы взять из переменной, код заработает, но как починить, что бы целиком с любой переменной я мог вставить полностью путь вместе с расширением и код создал файл с нужным расширением из переменной?
 

Вложения

Последнее редактирование:

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
@ibred Подскажите, пожалуйста, это баг (визуальный баг - в котором не отображается перенос строки после .txt в переменной зенно) такой или как это обьяснить? Пример прикрепил.

1. Открываем проект (Тестировал только на 7.7.0 релиз)
2. Запускаем кубик - Установка пути
3. В переменную Path - вносятся данные из Установка пути
4. Копируем вручную сформированное значение из Path (в буфер обмена с помощью CTRL+C) и вручную вставляем его блокнот (CTRL+V).
5. В результате получаем такой результат с переносом строки:
91218

6. И в таком случае мы не можем адекватно создать блокнот, о котором идет речь выше в топике, так как имя в пути имеет перенос строки, хотя физически его нету.
 

Вложения

  • 9,5 КБ Просмотры: 53
Последнее редактирование:

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Макросы нельзя использовать в C# коде.
Макросы нельзя использовать в тексте (файла и др.).
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
в переменной "B0_ImyaSozdanieDannyh" есть перенос строки, но его визуально не видно. Можно в этом убедиться, если скопировать слово в notepad++ (или просто нажать backspace и он удалится). Вероятно, это можно назвать графическим багом (то, что PM никак не намекает на существование переноса)
 
  • Спасибо
Реакции: Gunjubasik и Ilshakin

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93
в переменной "B0_ImyaSozdanieDannyh" есть перенос строки, но его визуально не видно. Можно в этом убедиться, если скопировать слово в notepad++ (или просто нажать backspace и он удалится). Вероятно, это можно назвать графическим багом (то, что PM никак не намекает на существование переноса)
бага там нет, просто у него изначально значение "по-умолчанию" переменной B0_ImyaSozdanieDannyh - идет с переносом строки
если посмотреть прошлую тему ТС'а с передачей тела в json - то он тоже на "баги" зенки ссылается, хотя невооруженным глазом видно,
что само тело неправильно передает
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
Макросы нельзя использовать в C# коде.
Макросы нельзя использовать в тексте (файла и др.).
Тут дело не в макросе, а в баге зенки, которая не отображает реальный перенос


Если бы бага не было, то бы был такой возврат:
91222

А возвращает так:
91223
 

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 228
Благодарностей
784
Баллы
113
А вот не рабочий вариант, который вызывает ошибку: Выполнение действия CSharp OwnCode. Путь содержит недопустимые знаки.
C#:
// project.Variables["Path"].Value = D:\02 Proxy.txt
string Path = $@"{project.Variables["Path"].Value}";
File.Create(Path);
Так тут какая то белиберда написана
Правильно вот так:
C#:
// project.Variables["Path"].Value = D:\02 Proxy.txt
string Path = project.Variables["Path"].Value;
File.Create(Path);
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
Так тут какая то белиберда написана
Правильно вот так:
C#:
// project.Variables["Path"].Value = D:\02 Proxy.txt
string Path = project.Variables["Path"].Value;
File.Create(Path);
Там все корректно написано(по крайней мере как минимум отработать может) - так написал от безысходности (До этого вставлял без этих замутов - как положено в вашем примере), пока искал проблему, но проблема оказалась в том, что в зенке не отобразился перенос. Что бы убедится в баге, вот тут тестовый шаб прикрепил, по которому видно визуальный баг - в котором не отобразился перенос в переменной зенно.
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
В чем проблема то ? Столько написали про неработающий код.... который работает... :bk:

Посмотреть вложение 91226
Вот в чем была проблема https://zennolab.com/discussion/threads/problema-sozdanija-fajla-s-ispolzovaniem-v-peremennoj-txt-v-konce-resheno.102519/post-679757

В переменную вносился путь создания файла с отдельной переменной - но непонятно откуда, брался перенос строки перед .txt, что переносило .txt на вторую строку, как указано в тестовом шабе закрепленном по ссылке
 

Вложения

  • 10,2 КБ Просмотры: 56

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
В переменную вносился путь создания файла с отдельной переменной - но непонятно откуда, брался перенос строки перед .txt, что переносило .txt на вторую строку, как указано в тестовом шабе закрепленном по ссылке
Почему не понятно ? Очень даже понятно откуда. В переменной B0_ImyaSozdanieDannyh находится текст с переносом строки. и при контагенации с .txt перенос естественно срабатывает.
А так как эта переменная определена вручную, то значит проблема лишних невидимых символов, это не баг зенки, а недосмотр того кто внес туда эти данные. :bk:
Вообще как раз для таких случаев есть Trim, что бы не возникало лишних проблем с данными.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Перенос должен быть \r\n, в иных случаях он может не отображаться в UI, а в некоторых случаях не засчитаться (списки/таблицы, но тут как сами укажите разделитель).
 
  • Спасибо
Реакции: Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
Вообще как раз для таких случаев есть Trim
Он не помог в данной ситуации. Можно даже проверить на шаблоне который я прикрепил, тоже сначала до публикации это проверил.

В переменной B0_ImyaSozdanieDannyh находится текст с переносом строки
В том то и дело, что получал строку из списка в переменную - как строка из списка могла иметь подстроку в первой строке?

Перенос должен быть \r\n
А я из входных настроек (из переменной) перенес данные в список через \n только. Но спасибо, буду знать, что такой визуальный баг присутствует и нужно проверять текст - как сделал - скопировав в блокнот. Но все равно, не понятно как строка в списке может иметь невидимую подстроку, что бы при получении получился такой бред.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Он не помог в данной ситуации. Можно даже проверить на шаблоне который я прикрепил, тоже сначала до публикации это проверил.
Добавил Trim и все сразу заработало. Не знаю что там может не сработать....

91233
 
  • Спасибо
Реакции: Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
Добавил Trim и все сразу заработало. Не знаю что там может не сработать....

Посмотреть вложение 91233
Да, сейчас с trim заработало чудным образом, но вот без trim и получение из списка строки (если вместо \r\n использовать только \n при переносе в список) - происходит беда.
 

Вложения

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)