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

  • Автор темы Автор темы Арман
  • Дата начала Дата начала

Арман

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

Вложения

  • Аннотация 2020-02-25 150139.png
    Аннотация 2020-02-25 150139.png
    20,5 KB · Просмотры: 315
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
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); // Или дописываем в конец файла.

Привет пробую не работает
 

Вложения

  • Аннотация 2020-02-25 150139.png
    Аннотация 2020-02-25 150139.png
    31,4 KB · Просмотры: 263
C#:
Развернуть Свернуть Копировать
string txtPath = @"C:\Users\User\Desktop\Запись.txt"; // Путь к файлу
 
перезапишит ведь всё ваше решение
 
  • Оценить
Реакции: TwistDanceR
[QUOTE = "RoyalBank, должность: 504990, участник: 10701"]
[CODE = csharp] string txtPath = @ "C: \ Users \ Пользователь \ Desktop \ Запись.txt"; // Путь к файлу [/ CODE]
[/ QUOTE]

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

Вложения

  • Аннотация 2020-02-26 135936.png
    Аннотация 2020-02-26 135936.png
    30 KB · Просмотры: 244
  • Аннотация 2020-02-26 135937.png
    Аннотация 2020-02-26 135937.png
    31,1 KB · Просмотры: 245
неужели чтобы запись в файл сделать надо писать такую лабуду кодп *?()
 
  • Оценить
Реакции: TwistDanceR
не получается и по первому скриншоту и по второму
На будущее, прикладывай скрин ошибки, я писал код по памяти, не проверял его в 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); // Или дописываем в конец файла.
 
  • Оценить
Реакции: Арман
даже если путь правильный нах мне строка кода такая ???
 
  • Оценить
Реакции: TwistDanceR
Огромное спасибо всё работает. Хорошо теперь буду знать что нужно прикладывать скрин с ошибкой
 
твоя програма уже должна знать что создала и с какого числа начинать
 
чтобы меньше ресурсов жрало. убери проверку

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

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

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

1000 циклов.png
 
давай милиард в 100 потоков
 
проверим твою технику
 
ставь код в конце обработки шаба
 
он есть на сайте
 
Проверка необходима для корректности дописывания файла, в случае когда файл может быть изначально без строк. А такое часто практикуется, когда в многопотоке мы берем по кругу данные доступа или прокси, с дописыванием их в конец после обработки, соответственно получаем ситуацию, когда в файле могут заканчиваться строки и при возврате строки, необходимо предусмотреть отсутствие лишней создаваемой пустой строки.
C#:
Развернуть Свернуть Копировать
File.AppendAllText(txtPath, txtInfo);
File.AppendAllText(txtPath, Environment.NewLine + txtInfo);


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

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

Посмотреть вложение 50845
а на это отвечу так, так для чего проверка ???
 
давай милиард в 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

И если работа с файлом будет по кругу в многопотоке, то мы будем получать ситуацию, когда в файле не будет оставаться строк и возвращая строку (проксю например), у нас будет создаваться пустая строка. Чтобы этого не происходило необходима проверка.

Иными словами, этот код для отладки ситуации, которую я описал. Но если ты знаешь, более простое решение в коде, для отладки данной ситуации, то можешь поделиться им.
 
а не проще их хранить в памяти и потом один раз выложить
 
милиард ду
Напиши код, чтобы нормально дописывало в конец файла, без проверки. Соответственно, у нас две ситуации, когда файл изначально пустой, и когда в файле уже есть строки и необходимо дописать в конец.
а ктто такое просил ? вы иногда зарываетесь люди
 
аа с тобой посоперничать, да я не против
 
поммню как 12 лямоов за секундны сделал, тоже было типо твоего
 
мне похую что у тебя записывает
 
кто записывакт
 
ты согласен выйти на свой респект которого нет
 
а вообще скажу так, ни разу с этим проблем не было, даже при 5000 потоков
 

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