C# запись из переменой в файл

Арман

Client
Регистрация
04.07.2019
Сообщения
137
Благодарностей
32
Баллы
28
Пожалуйста, помогите мне написать код. всё тоже самое только С# код, и если можно подпишите строки кода за что отвечают
 

Вложения

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
C#:
string txtPath = Path.Combine(project.Directory, "файл с доступами.txt"); // Путь к файлу
string txtInfo = string.Join(Environment.NewLine, project.Variable["Login"].Value, project.Variable["Password"].Value); // Создаем строку

if (File.ReadAllLines(txtPath).Where(arg => !string.IsNullOrWhiteSpace(arg)).Count() < 1) File.AppendAllText(txtPath, txtInfo); // Записываем если файл пустой.
else File.AppendAllText(txtPath, Environment.NewLine + txtInfo); // Или дописываем в конец файла.
 
  • Спасибо
Реакции: impul5e и BAZAg

Арман

Client
Регистрация
04.07.2019
Сообщения
137
Благодарностей
32
Баллы
28
C#:
string txtPath = Path.Combine(project.Directory, "файл с доступами.txt"); // Путь к файлу
string txtInfo = string.Join(Environment.NewLine, project.Variable["Login"].Value, project.Variable["Password"].Value); // Создаем строку

if (File.ReadAllLines(txtPath).Where(arg => !string.IsNullOrWhiteSpace(arg)).Count() < 1) File.AppendAllText(txtPath, txtInfo); // Записываем если файл пустой.
else File.AppendAllText(txtPath, Environment.NewLine + txtInfo); // Или дописываем в конец файла.
Привет пробую не работает
 

Вложения

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
C#:
string txtPath = @"C:\Users\User\Desktop\Запись.txt"; // Путь к файлу
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
перезапишит ведь всё ваше решение
 
  • Спасибо
Реакции: TwistDanceR

Арман

Client
Регистрация
04.07.2019
Сообщения
137
Благодарностей
32
Баллы
28
[QUOTE = "RoyalBank, должность: 504990, участник: 10701"]
[CODE = csharp] string txtPath = @ "C: \ Users \ Пользователь \ Desktop \ Запись.txt"; // Путь к файлу [/ CODE]
[/ QUOTE]

не получается и по первому скриншоту и по второму
 

Вложения

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
неужели чтобы запись в файл сделать надо писать такую лабуду кодп *?()
 
  • Спасибо
Реакции: TwistDanceR

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
не получается и по первому скриншоту и по второму
На будущее, прикладывай скрин ошибки, я писал код по памяти, не проверял его в PM. Ошибка была в синтаксисе project.Variables.
Так же, проверяй правильность пути к файлу, а именно имя пользователя.

C#:
string txtPath = @"C:\Users\Имя твоего пользователя\Desktop\Запись.txt"; // Путь к файлу
string txtInfo = string.Join(Environment.NewLine, project.Variables["Login"].Value, project.Variables["Password"].Value); // Создаем строку

if (File.ReadAllLines(txtPath).Where(arg => !string.IsNullOrWhiteSpace(arg)).Count() < 1) File.AppendAllText(txtPath, txtInfo); // Записываем если файл пустой.
else File.AppendAllText(txtPath, Environment.NewLine + txtInfo); // Или дописываем в конец файла.
 
  • Спасибо
Реакции: Арман

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
даже если путь правильный нах мне строка кода такая ???
 
  • Спасибо
Реакции: TwistDanceR

Арман

Client
Регистрация
04.07.2019
Сообщения
137
Благодарностей
32
Баллы
28
Огромное спасибо всё работает. Хорошо теперь буду знать что нужно прикладывать скрин с ошибкой
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
чтобы меньше ресурсов жрало. убери проверку
 
  • Спасибо
Реакции: TwistDanceR и Арман

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
твоя програма уже должна знать что создала и с какого числа начинать
 

Арман

Client
Регистрация
04.07.2019
Сообщения
137
Благодарностей
32
Баллы
28
чтобы меньше ресурсов жрало. убери проверку

Ок Спасибо
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
Напиши код, чтобы нормально дописывало в конец файла, без проверки. Соответственно, у нас две ситуации, когда файл изначально пустой, и когда в файле уже есть строки и необходимо дописать в конец.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
а для чего вообще проверка, не вижу чтобы ТС это просил, вы придумали на ходу пока ветер дул ??
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
а для чего вообще проверка, не вижу чтобы ТС это просил, вы придумали на ходу пока ветер дул ??
Проверка необходима для корректности дописывания файла, в случае когда файл может быть изначально без строк. А такое часто практикуется, когда в многопотоке мы берем по кругу данные доступа или прокси, с дописыванием их в конец после обработки, соответственно получаем ситуацию, когда в файле могут заканчиваться строки и при возврате строки, необходимо предусмотреть отсутствие лишней создаваемой пустой строки.
C#:
File.AppendAllText(txtPath, txtInfo);
File.AppendAllText(txtPath, Environment.NewLine + txtInfo);
чтобы меньше ресурсов жрало. убери проверку
Вроде шаблоны не на калькуляторах запускают, чтобы это отражалось на ресурсах.

Сделал 1000 циклов записи файла, разница в 1 секунду.

1000 циклов.png
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
давай милиард в 100 потоков
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
проверим твою технику
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ставь код в конце обработки шаба
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
он есть на сайте
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Проверка необходима для корректности дописывания файла, в случае когда файл может быть изначально без строк. А такое часто практикуется, когда в многопотоке мы берем по кругу данные доступа или прокси, с дописыванием их в конец после обработки, соответственно получаем ситуацию, когда в файле могут заканчиваться строки и при возврате строки, необходимо предусмотреть отсутствие лишней создаваемой пустой строки.
C#:
File.AppendAllText(txtPath, txtInfo);
File.AppendAllText(txtPath, Environment.NewLine + txtInfo);

Вроде шаблоны не на калькуляторах запускают, чтобы это отражалось на ресурсах.

Сделал 1000 циклов записи файла, разница в 1 секунду.

Посмотреть вложение 50845
а на это отвечу так, так для чего проверка ???
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
давай милиард в 100 потоков
У тебя уже пошли запросы не имеющие отношения к текущему посту. Я тебе привел конкретный пример, что работа с проверкой, занимает на одну миллисекунду дольше. И для ТС, в работе его шаблона это не имеет никакого значения, особенно с точки зрения оптимизации и нагрузки.

Поэтому, я считаю твое заявление в пожирании ресурсов, не относящимся к данной теме. Очевидно, без if, будет работать быстрее, как минимум на эту проверку, даже кЭпа звать не нужно!

Что касается смысла проверки, то еще раз распишу:

Этот код:
C#:
File.AppendAllText(txtPath, txtInfo);
В случае, если в файле нет строк, то он запишет наш текст, но при последующей итерации, текст записывается в конец последней строки.
Вот результат пяти последовательных циклов, как видно, каждая новая запись встает в конец последней строки предыдущей записи.
По этой причине, мы не можем использовать этот код, если в файле уже имеются строки.
Код:
Login
PasswordLogin
PasswordLogin
PasswordLogin
PasswordLogin
Password
Этот код:
C#:
File.AppendAllText(txtPath, Environment.NewLine +  txtInfo);
Записывает каждую итерацию с новой строки, но при этом, если файл изначально не содержит строк, то в начало файла встает пустая строка.
Нам подходит этот код, если в файле уже есть строки, но при этом если файл пустой, то этот код будет создавать одну пустую строку.
Код:
 - пустая строка
Login
Password
Login
Password
Login
Password
Login
Password
Login
Password
И если работа с файлом будет по кругу в многопотоке, то мы будем получать ситуацию, когда в файле не будет оставаться строк и возвращая строку (проксю например), у нас будет создаваться пустая строка. Чтобы этого не происходило необходима проверка.

Иными словами, этот код для отладки ситуации, которую я описал. Но если ты знаешь, более простое решение в коде, для отладки данной ситуации, то можешь поделиться им.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
а не проще их хранить в памяти и потом один раз выложить
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
милиард ду
Напиши код, чтобы нормально дописывало в конец файла, без проверки. Соответственно, у нас две ситуации, когда файл изначально пустой, и когда в файле уже есть строки и необходимо дописать в конец.
а ктто такое просил ? вы иногда зарываетесь люди
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
аа с тобой посоперничать, да я не против
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
поммню как 12 лямоов за секундны сделал, тоже было типо твоего
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
мне похую что у тебя записывает
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
кто записывакт
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ты согласен выйти на свой респект которого нет
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
а вообще скажу так, ни разу с этим проблем не было, даже при 5000 потоков
 

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